Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Using the Free CutePDF Writer without User Intervention

4.33/5 (3 votes)
3 May 2012CPOL 18.8K  
This is an alternative for Using the Free CutePDF Writer without User Intervention

Introduction

The free CutePDF utility doesn't allow you to interact with it, the following article will explain how to overcome this limitation. 

Using the code 

The following snippet will illustrate how to get the main thread to press the enter button as soon as the PDF Save File dialogue is shown. 

C#
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
private static void ConfirmPDFDialog()
{
    bool found = false; //bool to hold if I have found the process yet
    while (!found)
    {
        Process[] processes = Process.GetProcessesByName("CPWSave"); //Grab the PDF Dialog process
        if (processes.Length > 0) //length will be greater than 0 when it has spawned
        {
            if(processes[0].MainWindowHandle != IntPtr.Zero) //If the IntPtr == Zero, the window hasn't been displayed
            {
                IntPtr pFoundWindow = processes[0].MainWindowHandle; //Grab a handle to the window
                PostMessage(pFoundWindow, 0x100, (int)Keys.Enter, 0); //Press the enter key and send the message to the window
                found = true; //Window has been found so exit the while
            }
        }
    }
    //give it some room to breath so that the files are actually created
    Thread.Sleep(500);
}  

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)