Autor Beitrag
kad_we
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 78


D6; Turbo Delphi 2006
BeitragVerfasst: Mo 01.12.03 12:45 
wie lasse ich per buttonklick das ausschalten menü einblenden?
(bei win 2000) oder NT oder am besten bei beiden...

thx 4 help kad_we
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.12.03 13:00 
Hi Kad_we

nutze dazu ShellExecute und die entsprechenden Befehle der RunDLL.

DenShutdawn-Dialog habe ich jetzt nicht parat, deshalb für weitere -> Google.

Beispiele für Rundll - Kommandos:

· rundll32.exe user,exitwindowsexec - Windows neustarten

· rundll32.exe user,exitwindows - Windows herunterfahren

· rundll32.exe krnl386.exe,exitkernel - Windows herunterfahren

· rundll32.exe Shell32.dll,SHExitWindowsEx - aktiven Benutzer abmelden

· rundll32.exe user,wnetconnectdialog - Netzlaufwerke verbinden

· rundll32.exe user,wnetdisconnectdialog - Netzlaufwerke trennen

· rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl - Netzlaufwerke konfiguratieren

· rundll32.exe shell32.dll,Control_RunDLL password.cpl - Kennwortkonfiguration

· rundll32.exe shell32.dll,SHFormatDrive - Diskette formatieren

· rundll32.exe user,repaintscreen - Aktualisiert den Bildschirminhalt

· rundll32.exe shell32.dll,Control_RunDLL - Systemsteuerung aufrufen

· rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 - Anzeige-Eigenschaften

· rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 - Sound-Eigenschaften

· rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 - System-Eigenschaften

· rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3 - Leistungsmerkmale
(System- Eigenschaften)

· rundll32.exe shell32.dll,Control_RunDLL joy.cpl - Joystic/Gamepad Eigenschaften

· rundll32.exe shell32.dll,Control_RunDLL modem.cpl - Modem Eigenschaften

· rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl - Software Eigenschaften
kad_we Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 78


D6; Turbo Delphi 2006
BeitragVerfasst: Mo 01.12.03 15:02 
aja kannst du mir nen beispiel geben, oder es mir nochmal auf deutsch erklären???
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.12.03 16:29 
nun dann habe ich halt mal für dich gegoogelt:

Runndll32-befehl für Shutdown von win2k ist:

Shell32.dll,SHExitWindowsEx 1

Aufruf:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
//ShutDown:
ShellExecute(Application.Handle, 'open' ,PChar('rundll32.exe'),
               PChar('Shell32.dll,SHExitWindowsEx 1'),nil, sw_ShowNormal)
//Uhrzeit einstellen:
ShellExecute(Application.Handle, 'open' ,PChar('rundll32.exe'),
               PChar('shell32.dll,Control_RunDLL timedate.cpl,,0'),nil, sw_ShowNormal)
usw.

Vergiss nicht die ShellApi einzubinden.

Die Befehle sind OS abhängig, also vorhert prüfen.

eine kleine Auflistung:
www.faqweb.de/tip0564.htm
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.12.03 20:50 
Getestet unter 98, 2000 und XP, also so gut wie OS-unabhängig, damit siehst du den Dialog, den du bei Start->Beenden siehst:
ausblenden Delphi-Quelltext
1:
PostMessage(findwindow('Shell_TrayWnd',nil),WM_CLOSE,0,0);					



@Simon: Es gibt vernünftige Befehle zum Beenden von Windows und zum Abmelden. Der Weg über die RunDLL ist -wie du selbst bemerkt hast!- ein wenig unsicher. Die FAQs enthalten mehr Informationen dazu.
Quisius
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 10.10.05 10:28 
Hallo allerseits

ausblenden Delphi-Quelltext
1:
PostMessage(findwindow('Shell_TrayWnd',nil),WM_CLOSE,0,0);					

dieser Befehl funktioniert bei mir
ausblenden Delphi-Quelltext
1:
2:
ShellExecute(Application.Handle, 'open' ,PChar('rundll32.exe'),
      PChar('Shell32.dll,SHExitWindowsEx 1'),nil, sw_ShowNormal);

allerdings leider nicht.
Bekomme folgende Fehlermeldung:
Fehler in Shell32.dll
Folgender Eintrag fehlt SHExitWindowsEx

Kennt einer die Lösung für mein Problem ? Ist meine DLL unvollständig bzw. lässt sie sich um den betroffenen Eintrag erweitern oder gibt es einen weiteren Befehl bzw. Möglichkeit den PC herunterzufahren?

By the way, benutze Win2k und Delphi 7

Bin dankbar für jede Hilfe

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Quisius
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 10.10.05 14:49 
Habe die Lösung selbst gefunden.
Es liegt an Win2k.

Wer ein ähnliches Problem hat, siehe msdn.microsoft.com/l...tesystemshutdown.asp
Da wird man geholfen ;-D
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.10.05 14:59 
Äh und warum nicht Suche in: Delphi-Forum, Delphi-Library EXITWINDOWSEX? Diese Funktion hättest du übrigens gefunden, wenn du den Hinweis beachtet hättest, dass es besseren Code gibt, als es mit der run32.dll zu tun.