Er zijn twee manieren om een aparte uitvoerbaar programma starten vanuit een Visual Basic -programma . Een manier is om de Visual Basic "Shell " commando gebruiken . De andere is om de " CreateProcess " Windows application programming interface ( API ) te gebruiken . Beide zullen met succes de externe uitvoerbare programma te starten , maar " CreateProcess " geeft de programmeur meer controle over hoe het besturingssysteem behandelt het programma . Instructies Shellcommando 1 Start een nieuwe Visual Basic Standard EXE-project . Op " Form1 " dat wordt standaard gemaakt , voeg een opdracht knop en noem deze " cmdNotepad . " Code 2 van de gebeurtenis click van de opdracht knop in de " cmdNotepad_Click ( ) " event . Verklaren een variabele van het type lang om de return waarde van de opdracht Shell houden . Om het Windows Kladblok programma te starten , voert u " lngReturn = Shell : " . ( " C \\ Windows \\ System32 \\ Notepad.exe ) " 3 Geef op hoe u wilt dat de toepassing Notepad te openen in de opdracht van Shell . De opties zijn : vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus en vbNormalNoFocus . Geef op een van deze opties als de tweede parameter om de Shell commando als "Shell ( " C : \\ Windows \\ System32 \\ Notepad.exe " , vbNormalFocus ) . " 4 Haal het proces-ID van de terugkeer waarde van de opdracht Shell . Zoals aangegeven in stap 2 , " lngReturn " zal de Windows toegewezen proces-ID voor de Notepad applicatie die net werd gelanceerd vanaf de command Shell bevatten . Met het proces-ID , kunt u andere taken uitvoeren in uw programma bijvoorbeeld of het proces nog loopt vóór het sluiten van de Visual Basic-toepassing . CreateProcess Start 5 een nieuwe Visual Basic Standard EXE-project . Op " Form1 " dat wordt standaard gemaakt , voeg een opdracht knop en noem deze " cmdNotepad . " Voeg de gebruiker gedefinieerde typen genaamd " PROCESS_INFORMATION " en " STARTUPINFO " in de sectie " verklaringen " van " Form1 . " Deze structuren worden gebruikt om gegevens te groeperen en vereist parameters van de functie " CreateProcess " . 6 Voeg twee constanten die ook de parameters van de functie " CreateProcess " . Const SYNCHRONIZE = 1048576 Const NORMAL_PRIORITY_CLASS = & H20 & Verklaar functies om het proces bijvoorbeeld te creëren ( " functie als " CreateProcess " Verklaar " Private Declare Function CreateProcess Lib " kernel32 " alias " CreateProcessA " " ) , Open het proces ( " Private Declare Function OpenProcess Lib " kernel32.dll " " ) , beëindigen het proces ( " Private Declare Function TerminateProcess Lib " kernel32 " " ) en aan de hendel te sluiten ( " Private Declare Function CloseHandle Lib " kernel32 " " ) . Code 7 de gebeurtenis click van de opdracht knop in " cmdNotepad_Click ( ) . " Definieer een variabele van het type PROCESS_INFORMATION , STARTUPINFO , een string aan null vertegenwoordigen en twee longs voor terugkeer waarden . Passeer het Kladblok . exe om de " CreateProcess " functie : . CreateProcess ( sNull , " Notepad.exe " , ByVal 0 & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , Sinfo , pinfo ) op Twitter 8 Beëindig het proces met " TerminateProcess ( pInfo.hProcess , 0 & ) . " Sluit de hendel om de draad met " CloseHandle ( pInfo.hThread ) " en om het proces met " CloseHandle ( pInfo.hProcess ) . " < br >
|