Standbyprozess abfangen
Übersicht

![]() |
FreetimeCoderBetreff: Standbyprozess abfangen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich schreib mal hier rein, weil ich atm noch nichts habe und mir auch nicht sicher bin, ob ich das mit BB bzw Bmax umsetzen kann, bzw ob es überhaupt nötig ist ![]() Es geht nicht um das Nerven von Benutztern. Ich bin bei uns in der Schule für die PCs zuständig. Jeder kann als eingeschränkter Nutzer ran. Ich kann den Administratoraccount benutzten. Mein Problem: Jeder kann an die PCs, dass heißt auch an die Labtops. Leider kommt es häufig vor, dass diese gar nicht ausgeschaltet werden, sondern nur zugeklappt, bzw der Knopf für den Standby gedrückt wird. Die Labtops werden außerdem nicht selten gar nicht wieder an das Stromnetz angeschlossen. Das Ergebnis: Diese Labtops sind gar nicht zu gebrauchen, da deren Netzteile fest installiert sind. Der Labtop hat keinen Strom und kann nicht mobil benutzt werden. Meine Frage: Kann ich den Standby verhindern, und entweder einen Warnhinweis bzw ein Bestätigenfenster erscheinen lassen, bevor der PC in den Standby wechselt? Und dann, falls 30 Sekunden keine Eingabe gemacht wird, automatisch runterfahren? Ich weiß, es gibt bei Windows die Möglichkeit, einfach beim Drücken des Standbyknopfes, bzw dem Zuklappen des Deckels herunterzufahren, oder einfach nichts zu unternehmen, aber ich bevorzuge meine Idee, da man dadurch den Benutzer auf auf sein Fehlverhalten hinweisen kann. Jemand eine Idee? MfG FTC |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Unter den Energieoptionen kann man bei Windows die Deckelschließaktion eines Laptos einstellen. Also könnte man diese auf Herunterfahren einstellen. Wie das mit dem Standbyknopf ist weis ich nicht, bei meinem Laptop kann ich das auch einstellen, ich weis aber nicht wie das bei anderen ist. | ||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ihr schulsysteme habt, handelt es sich dabei ja gewiss um "NT" Abkömmlinge, das heisst entweder Windows 2000 Pro oder XP Pro
In beiden Fällen musst du einfach dafür sorgen, das user nur auf eingeschränkten useraccounts rein gehen können und die dann als admin so konfigurieren das jede reaktion zu shutdown führt (anstatt standby / ruhezustand). das wars ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei den energieoptionen kann man auch die reaktion auf den standby knopf einstellen.
Allerdings verbannt es nicht den eintrag im startmenü ![]() |
||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
![]() |
Elvis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um eine Meldung bei Ausfürung eines Interrupts anzeigen zu lassen, wirst du dich wohl um die Registry kümmern müssen, wenn es überhaupt möglich ist. Vermutlich wird dir aber keiner aus diesem Forum bei diesem Thema detailiertere Lösungsvorschläge geben können, da wohl die meisten, wenn nicht gar alle, nur auf den höchsten Ebenen ihres Betreibssystems arbeiten.
Grüße, Elvis |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt tools die noch weitere eingriffe erlauben ohne grosse Probleme.
Aber wie gesagt, wenn man dem User die möglichkeit nimmt, standby etc überhaupt zu nutzen in den Rechteeinstellungen ist das kein Problem. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
FreetimeCoder hat Folgendes geschrieben: Ich weiß, es gibt bei Windows die Möglichkeit, einfach beim Drücken des Standbyknopfes, bzw dem Zuklappen des Deckels herunterzufahren, oder einfach nichts zu unternehmen, aber ich bevorzuge meine Idee, da man dadurch den Benutzer auf auf sein Fehlverhalten hinweisen kann.
Aber ich glaub ihr habt mich trotzdem überzeugt. Das mit den Einstellungen ist wohl einfacher ![]() MfG |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Standby abzufangen ist ganz einfach. Das Programm hab ich in BlitzMax geschrieben. Es zeigt eine Meldung an, wenn der User den Standby-Modus benutzen will. Du könntest dann zusätzlich noch einen Counter einbauen, der Windows nach 30 Sekunden herunterfahren lässt. So wie ist jetzt ist, wird der Standby einfach abgebrochen.
Code: [AUSKLAPPEN] ' Standby abfangen
SuperStrict Framework brl.win32maxgui Import brl.eventqueue Import pub.win32 Extern "Win32" Function SetWindowProc:Byte Ptr( hwnd:Int, id:Int, proc:Byte Ptr ) = "SetWindowLongA@12" End Extern Global PrevWndProc:Byte Ptr Function SubclassProc:Int( hwnd:Int, msg:Int, wparam:Int, lparam:Int ) Select msg Case $0218 ' WM_POWERBROADCAST If wparam = 0 Notify "Bitte benutze nicht den Standby-Modus, sondern fahre den PC herunter.", True Return $424d5144 End If End Select Return CallWindowProcA( PrevWndProc, hwnd, msg, wparam, lparam ) End Function AppTitle = "Standby" Local win:TGadget = CreateWindow( "", 0, 0, 0, 0, Null, WINDOW_HIDDEN ) PrevWndProc = SetWindowProc( QueryGadget( win, QUERY_HWND ), GWL_WNDPROC, SubclassProc ) While True WaitEvent Wend |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey danke!
Hätte nicht gedacht, dass das so "einfach" ist. Thx! |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
Arrangemonk |
![]() Antworten mit Zitat ![]() |
---|---|---|
du könntest auch einach das runterfahren um 7 abends erzwingen (so is das bei mir an der fh)
so kann ein laptop wenn er nicht ausgeschaltet wird ab 7 laden^^ |
||
ingeneur |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist ja, dass die Labtops teilweise gar nicht mehr angeschlossen werden. Und damit man zumindest noch ein wenig Restenergie hat sollen die dann Zwangsabgeschaltet werden ![]() Bei der FH kann man denke ich davon ausgehen, dass mit den Geräten ordentlich umgegangen wird, aber bei einem Gymnasium wo auch 5 Klässler drankönnen ist das leider nicht der Fall. MfG |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
lässt sich "shutdown -a" nicht irgendwie auf den Ausknopf binden? dadrauf dann noch n "shutdown -s -t 60" und dann fährt der pc in 60 sek runter... n blizprog/batch könnte aufn ok vom user warten und den countdown mit "shutdown-a" wieder abbrechen.. | ||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wen es interessiert:
Code: [AUSKLAPPEN] SuperStrict
Framework brl.win32maxgui Import brl.eventqueue Import brl.timer Import pub.win32 Extern "Win32" Function SetWindowProc:Byte Ptr( hwnd:Int, id:Int, proc:Byte Ptr ) = "SetWindowLongA@12" Function WinExec(lpCmdLine:Byte Ptr,nCmdShow:Int) End Extern AppTitle = "stb.app" Global NoteWindow:TGadget=CreateWindow("Achtung!",400,300,400,100,Null,WINDOW_TITLEBAR|WINDOW_HIDDEN) Local NoteLabel:TGadget=CreateLabel("Bitte benutze nicht den den Standby-Modus, sondern fahre den PC herunter.",10,10,GadgetWidth(NoteWindow)-20,15,NoteWindow) Local TimeLabel:TGadget=CreateLabel("",10,25,GadgetWidth(NoteWindow)-20,15,NoteWindow) Global OKButton:TGadget=CreateButton("OK",GadgetWidth(NoteWindow)/2-80,40,40,20,NoteWindow) Global AbButton:TGadget=CreateButton("Abbrechen",GadgetWidth(NoteWindow)/2-20,40,100,20,NoteWindow) HideGadget(NoteWindow) Global CurTime:Int=MilliSecs() Global PrevWndProc:Byte Ptr Local Timer:TTimer=CreateTimer(15) Local LeftTime:Int=30 Function SubclassProc:Int( hwnd:Int, msg:Int, wparam:Int, lparam:Int ) Select msg Case $0218 ' WM_POWERBROADCAST If wparam = 0 ShowGadget(NoteWindow) CurTime=MilliSecs() Return $424d5144 End If End Select Return CallWindowProcA( PrevWndProc, hwnd, msg, wparam, lparam ) End Function Function Shutdown(parm:String=" -s -t 0") WinExec("shutdown.exe"+parm$,1) End Function PrevWndProc = SetWindowProc( QueryGadget( NoteWindow, QUERY_HWND ), GWL_WNDPROC, SubclassProc ) While True WaitEvent If GadgetHidden(NoteWindow)=False Select EventID() Case EVENT_TIMERTICK SetGadgetText(TimeLabel,"In "+(LeftTime+((Curtime-MilliSecs())/1000))+" Sekunden wird der Computer automatisch beendet.") If (LeftTime+((Curtime-MilliSecs())/1000))<=0 Shutdown EndIf Case EVENT_WINDOWCLOSE HideGadget(NoteWindow) Case EVENT_GADGETACTION Select EventSource() Case OKButton HideGadget(NoteWindow) Shutdown Case AbButton HideGadget(NoteWindow) EndSelect EndSelect EndIf Wend Bitte ![]() Bmax. Klaptt ganz gut. Wenn man es als Gui-App kompiliert, dann kriegt der User kaum was mit, außer über den Taskmanager. MfG |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die WinExec-Funktion ist ein Überbleibsel aus 16-Bit Zeiten und ist nur noch aus Kompatibilitätsgründen in der WinAPI.
Du solltest besser ShellExecute benutzen: Code: [AUSKLAPPEN] Function ShellExecuteA( hwnd:Int, op:Byte Ptr, file:Byte Ptr, param:Byte Ptr, dir:Byte Ptr, show:Int )
und so der Aufruf der Funktion: Code: [AUSKLAPPEN] ShellExecuteA( 0, "open", "shutdown.exe", "-s -t 0", Null, 1 )
Geht natürlich auch mit der alten Funktion, aber wer weiß, wie lange WinExec noch unterstützt wird? ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Thx, aber auf den Rechnern läuft Win XP Pro. Und was anderes wird nicht drauf kommen.
MfG |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
KddC |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool...dass hat auch mir sehr geholfen...danke...ich hab nämlich das gleiche problem gehabt...Der unterschied ist nur dass man an unserer schule erst ab der 11. ran darf...dass die leute dann trotzdem so schlecht mit den pc#s umgehen sollte einem aber schon zu denken geben ![]() auf jeden fall danke |
||
Mfg Kddc
Macbook Pro 13" 2,66Ghz |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group