FenrisC0de Skrevet 13. november 2005 Del Skrevet 13. november 2005 Vel, holder fortsatt på med å lære meg VB.NET, og driver å lager et lite program som, ved å trykke på en knapp, utfører en kommando i cmd.exe (command prompten i windows). Så vil jeg gjerne at den teksten som blir generert i command prompten blir sent til selve programmet, en tekst boks i form'et for eksempel.. Dim WSHShell, rcmd, MyBox, p1, q1 Dim jobfunc Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WSHShell = CreateObject("WScript.Shell") rcmd = "chkdsk" WSHShell.Run(rcmd) End Sub Er det mulig eller er alt bare feil? Takk Lenke til kommentar
Moskus Skrevet 14. november 2005 Del Skrevet 14. november 2005 (endret) Jeg vil tro det enkleste er å kjøre programmet med vanlig shell eller System.Diagnistic.Start, slik: Shell(chkdsk >>tekstfil.txt) slik at man etterpå kan hente inn tekstfilen i programmet (StreamReader). EDIT: Leif... Endret 14. november 2005 av moskus Lenke til kommentar
Manfred Skrevet 15. november 2005 Del Skrevet 15. november 2005 Sånn til informasjon, så må du nok ha med " i shell-funksjonen din. Hvis du skal løse det som moskus her foreslår, så blir det Shell("chdisk >> filename.txt", AppWinStyle.Hide) AppWinStyle.Hide for at cmd-vinduet ikke skal vises Så kan du jo bruke File-namespacet til å slette filen etterpå. Kan være greit om du ikke vil ha masse temporære filer liggende rundt Det er en veldig enkel løsning, og ikke særlig elegant, men den fungerer. Likevel er det vel anbefalt å bruke full filepath til filen som skal kjøres. Eks: Shell("C:\Windows\system32\calc.exe"). Her kan man jo bruke Environment-klassen for å finne frem til systemkatalogen, for ikke å programmere denne statisk (System.Diagnostic.Start eksisterer ikke så langt jeg kan se) Lenke til kommentar
Moskus Skrevet 15. november 2005 Del Skrevet 15. november 2005 Sånn til informasjon, så må du nok ha med " i shell-funksjonen din. (System.Diagnostic.Start eksisterer ikke så langt jeg kan se) 5156098[/snapback] Riktig. " må med. System.Diagnostic.Start ekstisterer ikke, men System.Diagnostics.Process.Start("path eller filnavn") eksisterer. Lenke til kommentar
GeirGrusom Skrevet 16. november 2005 Del Skrevet 16. november 2005 Private outpt As System.Threading.Thread Private na As System.Diagnostics.Process Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Dim si As New System.Diagnostics.ProcessStartInfo("ipconfig.exe") si.CreateNoWindow = True si.RedirectStandardOutput = True si.UseShellExecute = False na = System.Diagnostics.Process.Start(si) outpt = New System.Threading.Thread(AddressOf WriteOutput) outpt.Start() End Sub Private Sub WriteOutput() Do While Not na.HasExited TextBox1.Text &= na.StandardOutput.ReadToEnd() Loop End Sub Sånn skal det gjøres Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå