Pagina 1 van 1

[VisualBasic.net] Executing command

Geplaatst: 04 jun 2004, 17:54
door aikon
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

Geplaatst: 05 jun 2004, 13:26
door khsw
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")

Geplaatst: 06 jun 2004, 11:44
door aikon
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.

Geplaatst: 06 jun 2004, 14:02
door khsw
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

Geplaatst: 06 jun 2004, 14:06
door aikon
die laatste moest ik hebben thx ;)

Kan ik weer heel wat verder :P

Geplaatst: 08 jun 2004, 10:47
door Foenne
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!

Geplaatst: 09 jun 2004, 09:26
door Stino
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

Geplaatst: 09 jun 2004, 10:53
door meon
Stout Stino, stout :P

Geplaatst: 09 jun 2004, 11:04
door Spock
Het "Wie de bal kaatst mag hem altijd terug verwachten"-principe werkt blijkbaar nog altijd :lol:

Geplaatst: 09 jun 2004, 20:59
door aikon
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.

Geplaatst: 09 jun 2004, 23:11
door Stino
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 ;-)

Geplaatst: 10 jun 2004, 08:08
door aikon
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)