Seite 1 von 2

[Windows] Computer ausschalten

Verfasst: 18.02.2010 19:51
von Little John
Hallo zusammen,

wie kann ein PB-Programm unter Windows (möglichst viele Versionen) den "Computer ausschalten"-Dialog aufrufen?
Also das Fenster, das bei Windows XP so aussieht:

Bild

Gruß, Little John

Re: [Windows] Computer ausschalten

Verfasst: 18.02.2010 19:56
von NicknameFJ
Hallo Little John,

aus dem CodeArchiv

Code: Alles auswählen

Shell_TrayWnd= FindWindow_("Shell_TrayWnd", NULL); 
result = SendMessage_ (Shell_TrayWnd,$111,506,0) 
result = SendMessage_ (Shell_TrayWnd,$111,66042,0)


Grüße NicknameFJ


\EDIT

Hier der Link

http://www.purearea.net/pb/CodeArchiv/W ... Windows.pb

Re: [Windows] Computer ausschalten

Verfasst: 18.02.2010 20:36
von Andreas
Schon mit Win3.1 war es so, dass man Windows beendet, wenn man den Programmanager schliesst.

Code: Alles auswählen

PostMessage_(FindWindow_("ProgMan",0),#WM_CLOSE,0,0)

Re: [Windows] Computer ausschalten

Verfasst: 18.02.2010 20:47
von jojo1541

Code: Alles auswählen

SendMessage_(FindWindow_("Shell_TrayWnd",""),#WM_COMMAND,$1FA,0)
Danke an RSbasic und seine WinAPI Library.

Re: [Windows] Computer ausschalten

Verfasst: 18.02.2010 21:44
von NicknameFJ
@JoJo1541

Nichts für Ungut,

aber das ist das Beispiel aus dem CodeArchiv nur in einer Zeile zusammengefaßt.

Code: Alles auswählen

debug #WM_Command
ist 273 = hex $111

und hex. $1fa = dez. 506

Grüße NicknameFJ

Re: [Windows] Computer ausschalten

Verfasst: 18.02.2010 22:27
von Kaeru Gaman
tja... wenn sich jeder angewöhnen würde benamste Konstanten hinzuschreiben... /:->

Re: [Windows] Computer ausschalten

Verfasst: 19.02.2010 03:26
von jojo1541
@NicknameFJ:
Das kann durchaus sein. <)
Ich habe ja geschrieben, dass ich den Code aus der WinAPI-Library von RSBasic kopiert habe.

Re: [Windows] Computer ausschalten

Verfasst: 19.02.2010 03:32
von ts-soft
Die Variante von Andreas finde ich noch am schönsten, so hab ich das bereits vor Jahrzehnten gemacht
und das funktioniert immer noch!

Re: [Windows] Computer ausschalten

Verfasst: 19.02.2010 09:11
von Little John
Hallo,

vielen Dank an alle für die Codes!
Die verschiedenen Varianten sind ja interessant.

2NicknameFJ
Beim Testen des Codes aus dem CodeArchiv

Code: Alles auswählen

Shell_TrayWnd= FindWindow_("Shell_TrayWnd", NULL); 
result = SendMessage_ (Shell_TrayWnd,$111,506,0) 
result = SendMessage_ (Shell_TrayWnd,$111,66042,0)
passiert bei mir folgendes (Windows XP):

Wenn ich "Abbrechen" anklicke, dann erscheint der Dialog nochmal. Nach dem 2. Mal "Abbrechen" klicken ist dann gut.

Gruß, Little John

Re: [Windows] Computer ausschalten

Verfasst: 19.02.2010 15:05
von RSBasic
Du sollst auch nur eins davon ausführen...
Entweder:

Code: Alles auswählen

result = SendMessage_ (Shell_TrayWnd,$111,506,0)
Oder:

Code: Alles auswählen

result = SendMessage_ (Shell_TrayWnd,$111,66042,0)