>* Einige Konstanten >#DEFINE WM_CLOSE 16 >#DEFINE WM_SYSCHAR 262 >#DEFINE WM_CHAR 258 >#DEFINE WM_COMMAND 273 >#DEFINE SW_SHOW 5 >#DEFINE ALT_KEY BitSet(0,29) >#DEFINE IDOK 1 > > >* Wordpad starten >Local lnHWNDVfp, lnHINSTANCE >Declare Integer ShellExecute in Shell32.Dll ; > Long Hwnd, ; > String lpOperation, ; > String lpFile, ; > String lpParameters, ; > String lpDirectory, ; > Integer nShowCmd >Set Library to (Home()+"FoxTools.Fll") ; > Additive >lnHWNDVfp = _WhToHwnd(_WMainWind()) >lnHINSTANCE = ShellExecute( ; > m.lnHWNDVfp, ; > "open", ; > "Write.Exe", ; > "Demo.Doc", ; > Sys(5)+CurDir(), ; > SW_SHOW ; >) >If lnHINSTANCE <= 32 > Return >Endif > > >* Das Fenster suchen, maximal 5 Sekunden >Local lnHWND, lnStart >Declare Integer FindWindow in Win32API ; > String lcClass, ; > String lcTitle >lnStart = Seconds() >lnHWND = 0 >Do While lnHWND == 0 ; > and lnStart+5 > Seconds() > lnHWND = ; > FindWindow( ; > NULL, ; > "demo.doc - WordPad" ; > ) >Enddo >If m.lnHWND == 0 > Return >Endif > > >* File|Print auswählen >Declare Integer PostMessage in Win32API ; > Long nHWND, ; > Long nMessage, ; > Long wParam, ; > Long lParam >PostMessage( ; > m.lnHWND, ; > WM_SYSCHAR, ; > Asc("f"), ; > ALT_KEY ; >) >PostMessage( ; > m.lnHWND, ; > WM_CHAR, ; > Asc("p"), ; > 0; >) > > >* Nun den Drucker bestätigen >Local lnHWNDPrinter, lnStart >lnStart = Seconds() >lnHWNDPrinter = 0 >Do While lnHWNDPrinter == 0 ; > and lnStart+1 > Seconds() > lnHWNDPrinter = ; > FindWindow( NULL, "Print" ) >Enddo >If m.lnHWNDPrinter == 0 > Return >Endif >PostMessage( ; > m.lnHWNDPrinter, ; > WM_COMMAND, ; > IDOK, ; > 0 ; >) > > >* Dem Programm etwas Zeit zum >* Drucken geben... >Inkey(1) > > >* Und zu guter letzt das Programm >* beenden >PostMessage( ; > m.lnHWND, ; > WM_CLOSE, ; > 0, ; > 0 ; >)>Christof