| |
|
|
| CompileMarkSeparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Programme: Externe Programme starten und beenden
PRFellow-Vorlage
Autor: Thomas Hölzer
Grundgerüst für CreateProcess und Terminierung eines ext. Prozesses
(Standardfunktion in Win32 zum Starten externer Prozesse
Für zahlreiche Optionen und Auswertungsmöglichkeiten
siehe win32.hlp zu CreateProcess)
Die Funktion FillStringNull$ ist ein Behelf für
Versionen unter 6.5, die den CLEAR-Befehl nicht haben
Def CreateProcess(10) !KERNEL32,CreateProcessA
Def GetExitCodeProcess(2) !KERNEL32,GetExitCodeProcess
Def TerminateProcess(2) !KERNEL32,TerminateProcess
Def FillStringNull$(1) Translate$(Space$(%(1)),Chr$(32),Chr$(0))
Declare Command#,StartupInfo#,ProcessInfo#,ExitCode#
Proc CreateProcess
Parameters command$
Declare handle&
Dim Command#,Add(Len(command$),1)
Dim StartupInfo#,1068
String startupinfo#,0=FillStringNull$(68)
Clear startupinfo# gibt mit 6.5 Schutzverletzung!
Long StartupInfo#,0=68
Dim ProcessInfo#,16
Clear ProcessInfo#
String startupinfo#,0=FillStringNull$(16)
String Command#,0=command$
CreateProcess(0,Command#,0,0,0,0,0,0,StartupInfo#,ProcessInfo#)
Let handle&=Long(ProcessInfo#,0)
Dispose Command#
Dispose StartupInfo#
Dispose ProcessInfo#
Return handle&
EndProc
Proc KillProcess
Parameters hprocess&
Dim exitcode#,4
GetExitCodeProcess(hprocess&,exitcode#)
TerminateProcess(hprocess&,Long(exitcode#,0))
Dispose exitcode#
EndProc
Beispiel
Declare processhandle&
CreateProcess Add$($WinPath,NOTEPAD.EXE)
Let processhandle&=&(0)
Print Nach beliebiger Eingabe wird Notepad wieder abgeschossen!
WaitInput
KillProcess processhandle&
Repaint
WaitInput
|
|
|
| |
|
|