Det finns två sätt att starta ett separat körbara program inifrån ett Visual Basic-program . Ett sätt är att använda Visual Basic " Shell " -kommandot . Det andra är att använda " CreateProcess " Windows programmeringsgränssnitt ( API ) . Båda kommer framgångsrikt lansera den externa körbara program , men " CreateProcess " ger programmeraren mer kontroll över hur operativsystemet hanterar programmet . Instruktioner
skalkommando
1
Starta ett nytt Visual Basic Standard -EXE-projekt . På " Form1 " som skapas som standard , lägg till en kommandoknapp och namnge den " cmdNotepad . "
2
kod klicket händelse av kommandoknapp i " cmdNotepad_Click ( ) " händelse . Deklarera en variabel av typen lång för att hålla returvärdet från Shell kommandot. För att starta Windows Notepad , skriv " lngReturn = Shell : " . ( " C \\ Windows \\ System32 \\ Notepad.exe ) " Addera 3
Ange hur du vill att programmet Anteckningar för att öppna i Shell -kommandot . Alternativen är : vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus och vbNormalNoFocus . Ange ett av dessa alternativ som den andra parametern till Shell kommando som " Shell ( " C : \\ Windows \\ System32 \\ Notepad.exe " , vbNormalFocus ) . "
4
Få process-ID från returnera värdet av Shell -kommandot . Som visas i Steg 2 , " lngReturn " kommer att innehålla Windows tilldelade process-ID för programmet Anteckningar som bara lanserades från Shell kommandot . Med process-ID , kan du utföra andra arbetsuppgifter i ditt program t.ex. kontroll av att processen fortfarande är igång innan du stänger Visual Basic-program . Addera CreateProcess
5
Start ett nytt Visual Basic Standard -EXE-projekt . På " Form1 " som skapas som standard , lägg till en kommandoknapp och namnge den " cmdNotepad . " Lägg användardefinierade typer som heter " PROCESS_INFORMATION " och " STARTUPINFO " i " förklaringarna " i " Form1 . " Dessa strukturer används för att gruppera data och krävs parametrar för " CreateProcess " funktionen .
6
Lägg två konstanter som är också parametrar för " CreateProcess " funktionen .
Const SYNKRONISERA = 1048576
Const NORMAL_PRIORITY_CLASS = & H20 & Spa
Deklarera funktioner för att skapa processen instans ( " Deklarera " CreateProcess " fungerar som " Private Declare Function CreateProcess Lib " Kernel32 " Alias " CreateProcessA " " ) , öppna processen ( " Private Declare Function OpenProcess Lib " kernel32.dll " " ) , avsluta processen ( " Private Declare Function TerminateProcess Lib " Kernel32 " " ) och att stänga handtaget ( " Private Declare Function CloseHandle Lib " Kernel32 " " ) .
7
kod klicket händelse av kommandoknapp i " cmdNotepad_Click ( ) . " Definiera en variabel av typen PROCESS_INFORMATION , STARTUPINFO , en sträng för att representera null och två längtar efter returvärden . Passera Anteckningar . exe till " CreateProcess " -funktion : .
CreateProcess ( sNull , " Notepad.exe " , ByVal 0 & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , Sinfo , pinfo )
8
avsluta processen med " TerminateProcess ( pInfo.hProcess , 0 & ) . " Stäng handtaget till tråden med " CloseHandle ( pInfo.hThread ) " och i den processen med " CloseHandle ( pInfo.hProcess ) . "
Addera ditt