ShutdownBlockReasonCreate funktioniert nicht Errorcode 5
-
Also erstes nein ich will diese Funktion nicht für ein dem Benutzer schadendes Programm benutzen. Es ist um einen Computer per usb-stick zu sperren und entsperren.
Nun zu meinem Problem:
Ich habe alle items aus dem strg alt entf screen gelöscht um nicht mehr groß herumpfuschen zu können. Jedoch gibt es noch ein Probem und das wäre nun mal leider man kann das System noch herunterfahren.
Also wie kann man das unterbinden. Ich habe folgende Funktion ausprobiert:
ShutdownBlockReasonCreate(NULL, (LPCWSTR)_T("System ist gesperrt. Verwenden Sie ihren USB-Stick um zu entsperren");
Jedoch bekomme ich immer einen Fehler und GetLastError spukt 5 aus was so viel wie das hier heißt:
// // MessageId: ERROR_ACCESS_DENIED // // MessageText: // // Access is denied. // #define ERROR_ACCESS_DENIED 5L
Nun ist meine Frage wieso?
Ich habe es versucht als Administrator auszuführen selbes Problem.An was liegt es?
-
MSDN gelesen?
> This function can only be called from the thread that created the window specified by the hWnd parameter. Otherwise, the function fails and the last error code is ERROR_ACCESS_DENIED.
http://msdn.microsoft.com/en-us/library/aa376877(VS.85).aspx
-
Das habe ich bereits probiert. Jedoch habe eine Konsole und wenn ich dann mit FindWindow(...) das Konsolenhandle hol geht das noch immernich (Errorcode: 5)
-
ach ja nochwas. Das komische daran ist, dass ich nicht FALSE zurück bekomme sondern true. Jedoch wenn ich auf herunterfahren gehe kann ich noch in diesem Bildschirm welcher Fragt ob man ein paar programme sofort beenden will nein drücken.
-
shutdown cancel schrieb:
Das habe ich bereits probiert. Jedoch habe eine Konsole und wenn ich dann mit FindWindow(...) das Konsolenhandle hol geht das noch immernich (Errorcode: 5)
Selbst wenn Du das Fenster-Handle holst, heißt das nicht, dass Du genau in dem Thread Deinen Code ausführst, der das Konsolen-Fenster angelegt hat. IMHO geht das bei einer Konsole nicht.