Hvordan kommunisere med konsollen i Visual Basic

Visual Basic inkluderer ikke en enkel måte å kommunisere direkte med konsollen, den svarte skjermen du tilgang i Vista ved å skrive inn "cmd" i "Start Søk" boksen eller kjører "Ledetekst" link fra "Program Tilbehør". Microsoft gjør gi instruksjoner for en involvert work-rundt, som er beskrevet i dette eksempel, ved å bruke noen av de bestemte godkjente kommandoer. Likevel er kommunikasjonen begrenset uten avansert kunnskap om programmering og kompliserte programmeringsrutiner.

Bruksanvisning

1 Åpne Visual Basic og starte et nytt prosjekt, ved hjelp av "Standard EXE" mal funnet under "File", "New Project". Klikk på "Project" i menyen øverst og "Legg Module" fra rullegardinlisten.

2 Skriv inn følgende linjer i module1 vinduet, som ifølge Microsoft inneholder den eneste kode som vil tillate direkte kommunikasjon med konsollen i Visual Basic. Den understrek på slutten av noen linjer indikerer at teksten på neste linje er en videreføring av gjeldende linje. Ikke ta med understrek når du taster inn denne koden; bare fortsette å skrive på en linje:

Option Explicit
Erklærer Funksjon AllocConsole Lib "kernel32" () As Long
Erklærer Funksjon FreeConsole Lib "kernel32" () As Long
Erklærer Funksjon CloseHandle Lib "kernel32" (ByVal hObject As Long)

Så lenge
Erklærer Funksjon GetStdHandle Lib "kernel32" (ByVal
nStdHandle As Long) As Long
Erklærer Funksjon WriteConsole Lib "kernel32" Alias ​​"WriteConsoleA"
ByVal hConsoleOutput så lenge, lpBuffer som noen, ByVal
nNumberOfCharsToWrite så lenge, lpNumberOfCharsWritten As Long, _
lpReserved som enhver) så lenge
Offentlig Const STD_OUTPUT_HANDLE = -11 &

3 Dobbeltklikk på Form1 i prosjekt listen til høyre for å åpne dette skjemaet. Klikk på "View" og deretter "Code" fra listen. Skriv inn disse linjene:

Dim hConsole som Long
Private Sub Form_Load ()
Hvis AllocConsole () Deretter
hConsole = GetStdHandle (STD_OUTPUT_HANDLE)
Hvis hConsole = 0 Then MsgBox "Kunne ikke allokere STDOUT"
Ellers

MsgBox "Kunne ikke allokere konsoll"
Slutt om
End Sub

Private Sub Form_Unload (Cancel As Integer)
CloseHandle hConsole
FreeConsole
End Sub

4 Hold nede Shift og F7 for å gå tilbake til objektet syn på Form1. Den angitte så langt kode gir tilgang til konsollen. Skriv inn noen kode for å gi instruksjoner til konsollen. Legg en OptionButton til skjemaet ved å bruke Option-ikonet fra listen over Generelle kontroller i verktøykassa kolonnen til venstre. Dra knappen øverst til venstre i skjemaet. Gjenta denne handlingen tre ganger, avstand knappene i to kolonner og to rader. Legg en siste kontroll, en Command fra Toolbox.

5 Gjør følgende endringer i Properties panelet til høyre for å Bildetekst tilhører hver kontroll, endre standard Alternativ 1, Alternativ 2 og så videre til nye bildetekster lesing "Disk Directory", "ipconfig / all", "Vis nettverksbrukere" og " Clear Screen ". Endre Commandbildeteksten til "Go".

6 Bruk Notisblokk til å opprette fire tekstfiler med en "bat" suffiks i stedet for ".txt". Gjør forsiktig oppmerksom på hvor du lagrer disse filene. Hver fil inneholder bare en linje som følger:

Filename: dirw.bat Innhold: DIR / W
Filename: ip.bat Innhold: IPCONFIG / ALL
Filename: netuser.bat Innhold: NET USER
Filename: clear.bat Innhold: CLS

7 Dobbeltklikk på "Go" -knappen på skjemaet for å åpne kodevinduet. Skriv inn denne koden mellom "Private Sub Go_Click ()" og "End Sub":

Private Sub Go_Click ()
Hvis Alternativ 1 = True Deretter
Shell "[erstatning her plasseringen av den lagrede bat fil] /dirw.bat"
Slutt om
Hvis Alternativ 2 = True Deretter
Shell "[erstatning her plasseringen av den lagrede bat fil] /ip.bat"
Slutt om
Hvis Alternativ 3 = True Deretter
Shell "[erstatning her plasseringen av den lagrede bat fil] / netuser.bat"
Slutt om
Hvis Alternativ 4 = True Deretter
Shell "[erstatning her plasseringen av den lagrede bat fil] /clear.bat"
Slutt om
End Sub

Trykk F5 for å kjøre programmet. Velg ett av alternativene, og klikk "Go". Dette åpner et konsoll vindu og utfører den valgte kommandoen.

Hint

  • Legg til eller erstatte eksempel instruksjon knappene til grunnleggende form for å matche hva du ønsker å kommunisere, skape batch (BAT) filer med hoved instruksjon.
  • Spør brukeren om en konsoll kommando og inneholde kode som automatisk oppretter en batch-fil og deretter Shells ut til konsollen.
  • I å utvikle din egen versjon, ikke bare lukke konsollvinduet ved å klikke på "Close" (X) boksen øverst til høyre på konsollen. Dette vil lukke Visual Basic i tillegg, og kan føre til konsollvinduet til å henge. Enten stoppe henrettelsen av rutinen ved å klikke på Form "Close" alternativ eller i Visual Basic utvikling skjermen selv.