Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB.Net Lokalen PC herunterfahren

Empfohlene Antworten

Veröffentlicht

Gibt es da einen einfachen Befehl um den Lokalen PC herunterzufahren? Der Befehl sollte von 2000, XP und 2003 unterstützt werden und Nicht dazu führen, das dann "Sie können den PC jetzt ausschalten" auf dem Bildschirm stehen bleibt.

    Private Declare Function ExitWindows Lib "User32" Alias "ExitWindowsEx" _

    (ByVal dwOptions As Integer, _

     ByVal dwReserved As Integer) As Integer


    Private Sub quit()

        ExitWindows(1, &HFFFFS)

    End Sub

	

du könntest shutdown.exe mit entsprechenden parametern von deinem programm aus aufrufen. allerdings weiss ich nicht welche betriebssysteme das unterstützen :)

    Private Sub quit()


        On Error Resume Next


        Dim objWMI As Object

        Dim colItems As Object

        Dim objItem As Object


        objWMI = GetObject( _

              "WinMgmts:{impersonationLevel=impersonate, " & _

              "(Shutdown)}!/root/cimv2")

        colItems = objWMI.ExecQuery( _

              "SELECT * FROM Win32_OperatingSystem")


        For Each objItem In colItems

            objItem.Shutdown()

        Next objItem


    End Sub

Danke, aber wird weder von 2000 noch 2003 ausgeführt.

Und was ist die Fehlermeldung?

Und was ist die Fehlermeldung?

keine! es passiert einfach nix!

wobei der benutzerwechsel mit win2000 klappt!

der zweite code funktioniert mit win2000

  • Autor

Hmm, Also mit der WMI geschichte hab ich zwar den PC unter 2000 runtergefahren, Jedoch blieb er dann beim acpi-Poweroff hängen. Ich hab jetz ein kleines workarround genommen: ein aufruf der psshutdown.exe aus den sysinternals. Klappt wunderbar. Trotzdem Danke.

Hmm, Also mit der WMI geschichte hab ich zwar den PC unter 2000 runtergefahren, Jedoch blieb er dann beim acpi-Poweroff hängen. Ich hab jetz ein kleines workarround genommen: ein aufruf der psshutdown.exe aus den sysinternals. Klappt wunderbar. Trotzdem Danke.

wenn du dich wenigstens ein bißchen eingearbeitet hättest, hättest du herausgefunden, dass man statt shutdown --> Win32Shutdown(12) verwenden kann; und dann klappts auch!

keine! es passiert einfach nix!

GetLastError liefert keine Fehlermeldung?

GetLastError liefert keine Fehlermeldung?

ich meinte, wenn man das ausführt:

    Private Declare Function ExitWindows Lib "User32" Alias "ExitWindowsEx" _

    (ByVal dwOptions As Integer, _

     ByVal dwReserved As Integer) As Integer


    Private Sub quit()

        ExitWindows(1, &HFFFFS)

    End Sub

	

macht windows schlichtweg nix;

was andres hab ich gar ned probiert...

was andres hab ich gar ned probiert...

Ich habe gefragt, ob die API-Funktion ExitWindowsEx einen Fehler signalisiert und was GetLastError, gleich im Anschluss darauf aufgerufen, zurückliefert. "Es geht nicht" ist keine Fehlerbeschreibung, auf die man sinnvoll antworten kann.

Zu dem Code:

Der erste Parameter sollte 0x8 sein, im Fall von 0x1 wird das System nicht ausgeschaltet. Ausserdem braucht Dein Prozess laut Dokumentation im PSDK das SE_SHUTDOWN_NAME Privileg. Dieses musst Du Dir über AdjustTokenPrivileges beschaffen.

Als zweiten Parameter ist eine Auswahl zwischen 0x4 oder 0x10 (und 0, wenn keine weiteren Angaben gemacht werden sollen) dokumentiert, je nach verwendetet OS. Bitte lies die Dokumentation für genauere Angaben selbst nach.

Ich habe gefragt, ob die API-Funktion ExitWindowsEx einen Fehler signalisiert und was GetLastError, gleich im Anschluss darauf aufgerufen, zurückliefert. "Es geht nicht" ist keine Fehlerbeschreibung, auf die man sinnvoll antworten kann.

Zu dem Code:

Der erste Parameter sollte 0x8 sein, im Fall von 0x1 wird das System nicht ausgeschaltet. Ausserdem braucht Dein Prozess laut Dokumentation im PSDK das SE_SHUTDOWN_NAME Privileg. Dieses musst Du Dir über AdjustTokenPrivileges beschaffen.

Als zweiten Parameter ist eine Auswahl zwischen 0x4 oder 0x10 (und 0, wenn keine weiteren Angaben gemacht werden sollen) dokumentiert, je nach verwendetet OS. Bitte lies die Dokumentation für genauere Angaben selbst nach.

ich hab ihm doch schon mitlerweile einen funktionsfähigen code geliefert...

und ich sagte auch, dass ich kein GetLastError gemacht habe...

ich hab ihm doch schon mitlerweile einen funktionsfähigen code geliefert...

Ich beziehe mich nicht auf das Beispiel unter Verwendung von WMI. Der Aufruf von ExitWindowsEx, so wie Du ihn alleine gepostet hast, reicht nicht.

und ich sagte auch, dass ich kein GetLastError gemacht habe...

Hättest Du es getan, wäre aufgefallen, dass GetLastError nach em Aufruf von ExitWindowsEx den Fehlercode 1314 zurückliefert. Dies, zusammen mit der Dokumentation von ExitWindowsEx, sollte ausreichen, um das Problem anzugehen.

Hättest Du es getan, wäre aufgefallen, dass GetLastError nach em Aufruf von ExitWindowsEx den Fehlercode 1314 zurückliefert. Dies, zusammen mit der Dokumentation von ExitWindowsEx, sollte ausreichen, um das Problem anzugehen.

welches nicht meines ist....

wenn er sich nicht selbst die mühe macht ist es mir egal!

ich debugge doch nicht auch noch für jemanden, wenn er 90% schon auf dem teller serviert bekommt

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.