Cmd Kommando ausführen

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Ich habe das mal so gelöst(auch mit Shell):

    VB.NET-Quellcode

    1. Shell("cmd /c " & Chr(34) & "!HIER DEIN COMMAND!" & Chr(34))
    2. Timer1.Start()


    Timer1:

    VB.NET-Quellcode

    1. Try
    2. Dim p As Process = Process.GetProcessesByName("conhost")(0)
    3. p.Kill()
    4. Catch
    5. Timer1.Stop()
    6. Me.Close()
    7. End Try
    Abgesehen davon, dass Shell in VB.NET nichts zu suchen hat...

    VB.NET-Quellcode

    1. Dim p() As Process = Process.GetProcessesByName("conhost")(0)
    2. If p.Length < 1 Then
    3. Timer1.Stop()
    4. Me.Close()
    5. Else
    6. p(0).Kill()
    7. End If
    So vermeidest du ein unnötiges Try-Catch.

    thefiloe schrieb:

    1. Shell sollte man nicht verwenden siehe oben
    2. was hat der timer mit seiner frage zu tun
    3. wieso immer nen timer?!


    1.Man sollte es nicht verwenden, weil die Konsole sonst eingeblendet wird.
    2.Dass die Konsole dadurch verschwinded!
    3.weil es eine Verzögerung braucht, sonst kann der Befehl nicht ausgeführt werden!!!

    Samus Aran schrieb:

    Weil Timer und Try-Catch-Blöcke bei Anfängern extrem cool anzukommen scheinen.
    (Und weil jeder dahergelaufene Kacknoob in Foren wie elitepvpers diese Dinge "empfiehlt")


    1.Ich bin kein Anfänger, sondern habe mich nur HIER gerade erst angemelded
    2.Timer ist ober erklärt
    3.Try-Catch, einfach damit kein fehler auftritt! OK?

    haiyyu schrieb:

    Abgesehen davon, dass Shell in VB.NET nichts zu suchen hat...

    VB.NET-Quellcode

    1. Dim p() As Process = Process.GetProcessesByName("conhost")(0)
    2. If p.Length < 1 Then
    3. Timer1.Stop()
    4. Me.Close()
    5. Else
    6. p(0).Kill()
    7. End If
    So vermeidest du ein unnötiges Try-Catch.


    1.wenn es Shell in VB.NET gibt verwende ich es auch
    2.Ich finde meins übersichtlicher und dadurch besser!
    1. Shell ist aus VB6 Zeiten, das gibt es noch ebenso wie GoTo damit diejenigen, die es gelernt haben sich auch in >VB2008 zurecht kommen.
    2. Das ganze mit Shell zu lösen und per Timer den prozess zu killen ist... mir fällt kein Wort ein.
    3. Try Catch verwendet man nicht mal eben so um alles abzudecken. Generell sollte man es so gut wie nie benutzen. Wenn Fehler auftreten dann haben diese Meist auch ihre Daseinsberechtigung und man sollte lieber vernünftig programmieren um diese Fehler zu vermeiden.

    Samus Kommentar hat mich herzlich zum Lachen gebracht weil es einfach nur wahr ist, danke an dieser Stelle für die Aufheiterung.
    Ich antworte mal nur auf 2.:
    Leute wie du sind so fortgeschritten, dass sie sich einen 50 Zeilen-Text schreiben, welcher genau das erfüllt, was ich in 5 Zeilen mache und finden ihre lösung besser!
    :thumbdown:
    Ich denke logisch, du programmierst unlogisch.

    Trotzdem:Jeder wie es ihm gegeben! ^^

    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Wie im oberen Post erwähnt finde ich es schöner eine logische denkweise zu haben und keine 200 Zeilen unntig mehr zu schreiben, nur weil man toll seien will!

    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Lagax schrieb:


    Ich denke logisch, du programmierst unlogisch.


    Schnuppi, nichts gegen dich, aber wenn mir mein Tapete nicht mehr gefällt, dann reiß ich nicht gleich mein Haus ab und bau ein neues, sondern ändere die Tapete.
    Und mal ehrlich:

    VB.NET-Quellcode

    1. StartInfo.CreateNoWindow = False


    Ist unlogisch? Weil es exakt das ist was der OP möchte?

    Aber jetzt wo ich darüber nachdenke, ja. Sollte mein Programm das nächste Mal ein Fehler verursachen, dann halte ihc mich an deine Logik und hau über den ganzen Code ein Try-Catch-Block anstatt den FEhler zu suchen, das spart Zeit und Hirn, ergo viel logischer.
    Das programm hat KEINEN fehler ausgespuckt, ich tue dies nur um fehler zu vermeiden, z.B. jemand beendet die konsole früher als das programm es tut, dies führt logischerweise zu einem fehler!

    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Try-Catch beseitigt Fehler nicht, es sorgt nur dafür, dass eventuelle Fehler behandelt werden können.
    Und die Timer-Methode ist lächerlich. Wenn man die richtige Methode verwendet, nämlich die Process-Klasse, kann man das alles mit sauberem OOP machen.
    Ohne Timer. Ohne Try-Catch. Ohne Rumgenoobe.

    z.B. jemand beendet die konsole früher als das programm es tut, dies führt logischerweise zu einem fehler!
    Kein Wunder. Wenn jemand wie du nicht weit genug vorausdenkt, um eben diese Fehler zu vermeiden (z.B. mit der Process-Klasse), muss man halt den unsauberen, falschen Weg gehen.
    Ich sehe nur einen hier der den falschen weg geht: DU!

    Außerdem weiß ich nicht wie du alle kommandos von VB.NET einfach mal so, sondern tuhe es so, wie es logisch, einfac und unkomplizier geht!

    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Ist da jemand beleidigt, dass wir ihm seine Schwächen aufgezeigt haben?
    Ich kenne auch nicht alle "Kommandos" von VB.NET, aber ich beherrsche mehr als die Grundlagen. Du kannst nicht mal die.

    logisch, einfac und unkomplizier
    Made my day. :D
    1.wenn es Shell in VB.NET gibt verwende ich es auch
    Du fährst also einen alten Opel, wenn du in deiner Garage einen Ferrari stehen hast?

    Die Sache ist die, dass es im Moment keine große Rolle spielt, welche der zwei Methoden benutzt und ob man Fehler mit Try-Catch verschluckt oder sie behebt.
    Aber stell dir vor, du sitzt an einem großen Projekt, hast etliche Zeilen Code geschrieben und auf einmal funktioniert etwas nicht so, wie es soll.
    Fehlermeldung gibt's auch keine. Nach etlichen Stunden kommst du drauf, dass du an einer bestimmten Stelle einen fehlerhaften Code hattest, der eine Exception geworfen hat.
    Diese allerdings wurde immer durch einen Try-Catch-Block verschluckt, weshalb du von ihr nichts zu sehen bekamst.

    Du musst so denken: Fehlermeldungen sind nicht die Feinde, die Spaß haben, uns das Programmieren schwer zu machen. Mehr sind sie Freunde, die uns drauf hinweisen sollen, was wir falsch gemacht haben.
    Denn im Endeffekt geht es darum, dass der Rechner versteht, was wir von ihm wollen.

    Bist du beim Arzt, wird auch nicht das Symptom behandelt, sondern die Ursache.
    Gleich solltest du beim Programmieren denken.

    Also Fazit: Im Moment kommt's dir unnötig vor, scheinbar kompliziertere Wege zu gehen, aber später wirst du dankbar sein, wenn du es machst, und merken, dass es eigentlich überhaupt nicht komplizierter, sondern einfacher ist.

    Samus Aran schrieb:

    Ist da jemand beleidigt, dass wir ihm seine Schwächen aufgezeigt haben?
    Ich kenne auch nicht alle "Kommandos" von VB.NET, aber ich beherrsche mehr als die Grundlagen. Du kannst nicht mal die.

    logisch, einfac und unkomplizier
    Made my day. :D


    Tja, ich kann Grundlagen, aber wenn du als Grundlage ein Fenster eines Laufendem Prozesses ausblenden findesr, ist alles eine Grundlage!

    Du benutzt wahrscheinlich sogar Streamreader! :P

    EDIT:@haiyyu

    Ich habe es jetzt 10 mal gesagt:
    Ich habe das Programm laufen lassen(ohne Try) und dann Try hinzugefügt um fehler zu vermeiden, welche durch den Benutzer hergeführt werden!!!!
    Dass er ein Prozess hat, welche andere Programme davon abhält die datei zu speichern!

    Ich und andere klevere Leute benutzen WriteallText!

    Ihr denkt ihr müsst mir die Grundllagen von VB beibringen, ich muss euch die Grundlagen der Logik Beibringen! :thumbsup:

    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()