Using the Free CutePDF Writer without User Intervention
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.
[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);
}