[VisualBasic.net] Executing command

Plaats reactie
Gebruikersavatar
aikon
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 14 maa 2004, 20:56
Locatie: Rotselaar - Leuven
Contacteer:

Ik wil dus met VB.net het volgende command executen

Code: Selecteer alles

systeminfo /FO CSV /NH


Nu heb ik het geprobeerd met de volgende code
zonder parameters doet hij het dus perfect, maar met parameters geeft hij gewoon al output het command zelf

Ook Shell() heeft geen soelaas gebracht.
Heeft iemand ervaring met uitvoering van (DOS) commands?

Code: Selecteer alles

Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem5.Click
    TextBox1.Text = ExecuteApp("systeminfo")
        FileOpen(1, "c:\output.txt", OpenMode.Output)
        PrintLine(1, TextBox1.Text)
        FileClose(1)
    End Sub

    Public Function ExecuteApp(ByVal cmd As String) As String

        Dim output As String
        Dim errors As String

        'create a tempfilecollection for output and error messages
        Dim tf As New System.CodeDom.Compiler.TempFileCollection()

        'execute the command
        System.CodeDom.Compiler.Executor.ExecWaitWithCapture(cmd, tf, output, errors)

        'read the file with the output of the command and return its content
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(output)
        ExecuteApp = sr.ReadToEnd
        sr.Close()

        'Delete the temporary files
        System.IO.File.Delete(output)
        System.IO.File.Delete(errors)

    End Function
su root
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Wijzig de command-call naar

Code: Selecteer alles

System.CodeDom.Compiler.Executor.ExecWaitWithCapture(Chr(34) & "systeminfo" & Chr(34) & " /FO CSV /NH", tf, "output", "errors")


Op deze manier maak je duidelijk onderscheid tussen het commando op zich en de parameters, je krijgt dan "systeminfo" /FO CSV /NH, anders wordt het command "systeminfo /FO CSV /NH" als 1 opdracht beschouwd, en dat programma bestaat natuurlijk niet.

Als je geen voorstander bent van chr(34) (hoewel ik dit leesbaarder vind), wijzig je dit maar naar

Code: Selecteer alles

System.CodeDom.Compiler.Executor.ExecWaitWithCapture("""systeminfo" & """ /FO CSV /NH", tf, "output", "errors")
Gebruikersavatar
aikon
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 14 maa 2004, 20:56
Locatie: Rotselaar - Leuven
Contacteer:

Hé danku, dat ik daar zelf niet aan gedacht heb.

Nu nog een klein schoonheidsfoutje ;)
output en errors zijn variabelen en moeten bijgevolg niet ingesloten worden door aanhalingstekens

Code: Selecteer alles

System.CodeDom.Compiler.Executor.ExecWaitWithCapture(Chr(34) & "systeminfo" & Chr(34) & " /FO CSV /NH", tf, output, errors)


Is er trouwens ergens een volledige lijst van Char(xx) te vinden?
Want heb me als eens rotgegoogled en ook de msdn brengt niet veel soeps.
su root
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Oeps, die quotes stonden daar nog omdat ik daar rechtstreeks "c:\output.txt" en "c:\errors.txt" had gezet om ff te testen.

De Chr(xx) lijst kan je gemakkelijk zelf reproduceren:

Code: Selecteer alles

Dim i As Integer
        For i = 0 To 255
            System.Diagnostics.Debug.WriteLine("Chr(" & i & ") = '" & Chr(i) & "'")
        Next


De karakters kleiner dan 32 kunnen niet afgebeeld worden.
8 = backspace
9 = tab
10 = linefeed
13 = carriage return
Gebruikersavatar
aikon
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 14 maa 2004, 20:56
Locatie: Rotselaar - Leuven
Contacteer:

die laatste moest ik hebben thx ;)

Kan ik weer heel wat verder :P
su root
Foenne
Starter
Starter
Berichten: 16
Lid geworden op: 25 okt 2003, 12:46
Locatie: Zemst / Antwerpen

Of je kan ff op google 'Ascii table' intypen en dan vind je onder andere de volgende http://www.asciitable.com/, daar vind je een lijst met alle tekens en hun overeenkomstige decimaal, hexadecimaal en octaal cijfer!
Stino
Plus Member
Plus Member
Berichten: 163
Lid geworden op: 03 jan 2004, 13:49

aikon schreef:maar niet om om de haverklap jou simplistische vragen op te lossen :evil: Het valt me op (en ik ben heus niet de enigste) dat je zelf NOOIT zoekwerk verricht. Hef je luie kont eens op (hoeft zelfs niet eens) en verricht wat zoekwerk. Is zelfs dat je teveel, dan kan je beter terug in de zandbak gaan spelen :x

aikon schreef:DIt maak je zo
Admins plz close :evil:

aikon schreef:Misschien kan je in het vervolg beter zelfs eens wat research doen ipv het altijd te vragen :)
Je hebt 2 dingen :
1. Help functie
2. Google
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Stout Stino, stout :P
Spock
Elite Poster
Elite Poster
Berichten: 1591
Lid geworden op: 20 feb 2004, 11:48
Locatie: St-Truiden, Brussel, Utrecht en Capetown
Contacteer:

Het "Wie de bal kaatst mag hem altijd terug verwachten"-principe werkt blijkbaar nog altijd :lol:
Gebruikersavatar
aikon
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 14 maa 2004, 20:56
Locatie: Rotselaar - Leuven
Contacteer:

Ehm

ik heb me rot gezocht op google en op sites zoals psc die HEEL VEEL informatie bevatten!!! En ik spreek hier niet over een uurtje maar over ettelijke UREN... die helaas soms te laat zijn uitgelopen.

Ik ben trouwens een echte googler, ik zit per dag !!!gemiddeld!!! een uur op google!

Dus mij kan men niets verwijten dat ik niets opzoek :twisted:


Ohja , het was dan ook geen vraag van het type
Hoe maak ik het beste een site

Maar een vraag waarvan ik zelf een grootdeel van de grondvesting had gelegd en blijkbaar maar een kleine aanpassing nodig had.
su root
Stino
Plus Member
Plus Member
Berichten: 163
Lid geworden op: 03 jan 2004, 13:49

Stino schreef:Ja, als we zo beginnen kunnen we inneens het hele forum sluiten eh. Als je iets nog niet weet over een onderwerp, kan je nog niet zo efficient dingen er over opzoeken op google.
Maarja, blijkbaar is het tegenwoordig 'in' op alle forums bij elke vraag te antwoorden met: "Kijk op google".
Hiermee ontken ik niet dat er soms te gemakkelijke vragen worden gesteld, maar dit was er zo geen, zoals meon al zei.


Zoals ik dus al eerder zei, je moet niet op iedereen beginnen 'kakken' die een vraag stelt. Voor sommige mensen is het gewoon niet zo simpel, en als je niet weet waarop je moet zoeken, zoals waarschijnlijk het geval was bij 'ascii table' dan is het gewoon niet simpel te vinden wat je zoekt soms. Ik trek je google-zoek-kwaliteiten zeker niet in vraag....

Maar nu genoeg gezeverd over dat google-gedoe....you get my point.

Stino ;-)
Gebruikersavatar
aikon
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 14 maa 2004, 20:56
Locatie: Rotselaar - Leuven
Contacteer:

Stino schreef:
Stino schreef:Ja, als we zo beginnen kunnen we inneens het hele forum sluiten eh. Als je iets nog niet weet over een onderwerp, kan je nog niet zo efficient dingen er over opzoeken op google.
Maarja, blijkbaar is het tegenwoordig 'in' op alle forums bij elke vraag te antwoorden met: "Kijk op google".
Hiermee ontken ik niet dat er soms te gemakkelijke vragen worden gesteld, maar dit was er zo geen, zoals meon al zei.


Zoals ik dus al eerder zei, je moet niet op iedereen beginnen 'kakken' die een vraag stelt. Voor sommige mensen is het gewoon niet zo simpel, en als je niet weet waarop je moet zoeken, zoals waarschijnlijk het geval was bij 'ascii table' dan is het gewoon niet simpel te vinden wat je zoekt soms. Ik trek je google-zoek-kwaliteiten zeker niet in vraag....

Maar nu genoeg gezeverd over dat google-gedoe....you get my point.

Stino ;-)


Jups ... no offense hoor ;) 8)
su root
Plaats reactie

Terug naar “Development”