Shutdown.exe funktioniert nicht

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von FuFu^^.

    Shutdown.exe funktioniert nicht

    Haii Leute :thumbsup:
    Ich möchte gerne mit dem Timer eine automatische Abmeldung des Benutzers erzwingen. Dazu habe ich ff. Code verwendet:
    Schau hier den Code an..

    VB.NET-Quellcode

    1. If time.Text = "00" Then
    2. Timer3.Stop()
    3. MsgBox("Benutzer abmelden")
    4. Process.Start("shutdown.exe -l")

    Leider kommt es hierbei zu einem Fehler. Die Win32 Exception wurde nicht behandelt, da das System die Datei nicht finden kann.

    Wie kann ich diesen Fehler beheben?

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

    Hermann schrieb:

    OK,
    das wusste ich nicht
    Wenn Du Dir nicht sicher bist, klick auf den entsprechenden Befehl und lass Dir die Definition anzeigen.

    Wenn Du im Namespace Microsoft.VisualBasic landest, ist das eine alte VB6-Funktion, die (nur) aus Kompatibilitätsgründen in .NET enthalten ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @joscha999
    Aber wenn Shell auch funktioniert, warum soll man dann Process.Start verwenden?
    Ich verwende ja auch lieber Process.Start, aber manchmal kommt Shell eben doch noch zum Einsatz. Also warum ist man dann im "falschen Film" wenn man das immer noch benutzt?
    Solang es funktioniert, ist es doch egal, oder? Oder hat Process.Start irgendwelche Vorteile gegenüber Shell?
    Klärt mich mal bitte auf, danke! :D

    Knato schrieb:

    Solang es funktioniert, ist es doch egal, oder?
    Das ist einfach eine Frage des guten Stils.
    Wenn Du einen Benz fährst, machst Du auch keine Reifen vom Trabbi dran, nur weil sie passen und sie vor den richtigen Reifen liegen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    schlechtes Beispiel mit den Felgen, denn 1.) sie werden nicht passen (4 Loch, Trommelbremse etc.) und 2.) wäre es unzulässig (vorgesehene Lasten, Geschwindigkeiten und Reifenmaße).


    Bei VB6-Methoden in .Net bekommt man (leider) keine "Strafzettel" von der Polizei.
    Einen sinnvollen Grund es dennoch nicht zu tun gibt's hier: [VB 2010] Böses aus VB6/VB2003 - und die richtigen VB.NET-Alternativen

    SeriTools schrieb:

    Warum sollte man die VB6-Funktionen nicht weiterverwenden?
    Sie sind veraltet. Sie verhalten sich anders. Sie sind nicht standardkonform in der .NET-Umgebung (sie sind standardkonform zu VB6) und lassen sich daher nicht einfach in C# konvertieren. Sie führen zu Code, welcher grundlegende Gesetze der objektorientierten Programmierung verletzt.