Det er to måter å starte en egen kjørbart program fra en Visual Basic program . En måte er å bruke Visual Basic " Shell "-kommandoen . Den andre er å bruke " CreateProcess " Windows application programming interface ( API ) . Begge vil kunne lansere den eksterne kjørbart program , men " CreateProcess " gir programmereren mer kontroll over hvordan operativsystemet håndterer programmet . Instruksjoner
Shell Command
en
Start en ny Visual Basic Standard EXE -prosjekt . På " Form1 " som er skapt av standard , legge til en kommandoknapp og gi den navnet " cmdNotepad . "
2
Kode klikket ved kommando -knappen i " cmdNotepad_Click ( ) " hendelse . Erklære en variabel av type lang til å holde returverdien fra Shell -kommandoen . For å starte Windows Notepad program , skriv " lngReturn = Shell : " . ( "C \\ Windows \\ System32 \\ Notepad.exe )"
3
Angi hvordan du vil at Notisblokk til å åpne in the Shell -kommandoen . Alternativene er: vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus og vbNormalNoFocus . Spesifisere en av disse alternativene som andre parameter til Shell kommandoen som " Shell ( " C : \\ Windows \\ System32 \\ Notepad.exe " , vbNormalFocus ) . "
4
Få prosess ID fra returverdien fra Shell kommandoen. Som vist i trinn 2, " lngReturn " vil inneholde Windows tildelt prosess ID for Notepad -programmet som nettopp ble lansert fra Shell -kommandoen . Med prosess ID , kan du utføre andre oppgaver i programmet som sjekker om prosessen fortsatt kjører før du lukker Visual Basic-programmet .
CreateProcess
5
start en ny Visual Basic Standard EXE -prosjekt . På " Form1 " som er skapt av standard , legge til en kommandoknapp og gi den navnet " cmdNotepad . " Legg brukerdefinerte typer heter " PROCESS_INFORMATION " og " STARTUPINFO " i " Erklæringer "-delen av " Form1 . " Disse strukturene blir brukt til å gruppere data og er pålagt parametere for " CreateProcess "-funksjonen .
6
Legg to konstanter som også er parametere for " CreateProcess "-funksjonen .
Konst SYNKRONISERE = 1048576
Konst NORMAL_PRIORITY_CLASS = & H20 og selg
Erklærer funksjoner for å opprette prosessforekomsten ( " Erklærer " CreateProcess "-funksjonen som " Private Declare Function CreateProcess Lib " kernel32 " Alias " CreateProcessA " ") , åpne prosessen ( "Private Declare Function OpenProcess Lib " kernel32.dll "") , avslutte prosessen ( "Private Declare Function TerminateProcess Lib " kernel32 "") og å lukke håndtaket ( "Private Declare Function CloseHandle Lib " kernel32 "") .
7
kode klikket ved kommando -knappen i " cmdNotepad_Click ( ) . " Definer en variabel av typen PROCESS_INFORMATION , STARTUPINFO , en streng for å representere null og to lengter etter retur verdier. Før Notepad . exe til " CreateProcess "-funksjonen : .
CreateProcess ( sNull , " Notepad.exe " , 0 ByVal & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , Sinfo , pinfo )
8
Avslutt prosessen med " TerminateProcess ( pInfo.hProcess , 0 &) . " Lukk håndtaket til tråden med " CloseHandle ( pInfo.hThread )" og til prosessen med " CloseHandle ( pInfo.hProcess ) . "