Zum Inhalt springen

VB.Net Lokalen PC herunterfahren


User-Root

Empfohlene Beiträge

    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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...