![]() |
Beim runterfahren automatisch Prozesse beenden?
Hi,
mal wieder ne kleine Frage: Wenn ich nach ![]() Ich will mir nämlich nen "Dimmer" für den PC machen. Da ich alle Musik auf dem PC hab und beim Abends-im-Bett-liegen gerne noch Musik höre, könnte ich dann einen Countdown einstellen, und dann würde der PC die offenen Programme beenden und runterfahten! Danke für Infos, MfG Matthias Volland |
Re: Beim runterfahren automatisch Prozesse beenden?
Mit Hilfe von WinAPI-FUnktionen kannst du Prozess-IDs herausfinden und diese dann beenden. Falls du dich nicht mit WinAPI auskennst, kann ich helfen.
|
Re: Beim runterfahren automatisch Prozesse beenden?
Danke, also ich kenn mich damit nicht wirklich aus :)!
Naja, hast du irgendwie ein tut, einen Quelltext o.ä.? MfG Matthias Volland |
Re: Beim runterfahren automatisch Prozesse beenden?
wenn du EWX_FORCE als parameter nimmst, brauchst du dich nicht darum kümmern!! da müsste er theroretisch alle progs von alleine abschießen!
andererseits könntest du alle handles beenden, da glaube ich laufen die prozesse aber im hintergrund noch weiter [bin aber nicht ganz sicher] |
Re: Beim runterfahren automatisch Prozesse beenden?
@Illuminator-23-5: könntest du vielleicht etwas präziser werden??? :roll: Ich bin hier grad informationstechnisch ganz auf der Höhe!!!
MfG Matthias Volland |
Re: Beim runterfahren automatisch Prozesse beenden?
Mit OpenProcess(PROCESS_ALL_ACCESS, False, Proc_ID) kannst du einen Prozess öffnen. Dann mit ExitProcess(0) den Prozess beenden.
Dazu musst du aber zuerst die ganzen Prozess-IDs in einer Liste eingeben, sorry, ich weiß auch nicht wie man diese findet. |
Re: Beim runterfahren automatisch Prozesse beenden?
@alcaeus: Jo danke, ich werd mich noch mal weiter umschauen! Irgendwie hab ich mir das unkomplizierter vorgestellt!!!
Aber trotzdem Danke für die Mühe! MfG Matthias Volland |
Re: Beim runterfahren automatisch Prozesse beenden?
du könntest
1. ExitWindowsEx(EWX_FORCE, 0); dadurch schaltet er den PC einfach ab[eine art reset ohne neu zu starten) 2. du könntest durch folgenden source alle handles herausfinden: var H: HWnd; begin h := Application.Handle; while h > 0 do begin SetLength(handleList, length(handleList) + 1); HandleList[Length(HandleList)-1] := h; h := getnextwindow(h,GW_HWNDNEXT); end; end; die dann alle beenden und dann mit ExitWindowsEx(EWX_SHUTDOWN, 0) herunterfahren, bin mir aber nicht sicher, dass das klappt ich persönlich würde das 1. nehmen |
Re: Beim runterfahren automatisch Prozesse beenden?
Ist es nicht "ungesund" den PC quasi immer zu resetten?
MfG Matthias Volland P.S.: Ich hab auch noch grad was in der Code-Library von Luckie gefunden... -> ![]() |
Re: Beim runterfahren automatisch Prozesse beenden?
Ja,du könntest diesen Code verwenden, die Prozesse in einer CheckListBox auflisten und dann alle markierten in einer Timer-ROutine "abschießen". Das müsste auf alle Fälle funktionieren.
|
Re: Beim runterfahren automatisch Prozesse beenden?
Liste der Anhänge anzeigen (Anzahl: 1)
Vor kurzem hat mich ein Freund gefragt ob ich ihm genau so ein Tool schreiben kann (Rechner zu bestimmter Zeit runterfahren). Hab natürlich in der DP gesucht und auch den Eintrag gefunden, ein bisschen rumgestümpert und rausgekommen ist ein kleines Programm (ShutMeDown). Dabei hab ich mich gar nicht um die laufenden Prozesse gekümmert aber es scheint ihn nicht zu stören. Er fährt ganz normal runter und auch wieder rauf(ohne Scandisk,...). Ich hab irgendwie gedacht: "Soll Windoof sich darum kümmern" und es scheint zu klappen
|
Re: Beim runterfahren automatisch Prozesse beenden?
Danke für den Code, ich werds mal testen!
MfG Matthias Volland P.S.: Bin leider grad damit beschäftigt msblast vom System zu entfernen! |
Re: Beim runterfahren automatisch Prozesse beenden?
Hallo Mathias!
Es gibt 2 Arten von Programmen: Die einen beenden sich, wenn Windows die Shutdown-Nachricht sendet, ganz automatisch. Die sind harmlos und brauchen zum Runterfahren nicht beendet werden. Die anderen laufen dann noch auf eine Ende-Frage. Z.B. fragen sie, ob die Daten nicht doch gespeichert werden sollen oder ob man das Programm wirklich beenden will. Diese Programme bereiten ein Problem, da sie auch beim Schicken einer Close-Nachricht in die entsprechende Abfrage gehen und damit das Herunterfahren so oder so wirksam verhindern können. Fazit: in eigenen Programmen MIT END-RÜCKFRAGE sollte die Nachricht "WM_QUERYENDSESSION" oder "WM_ENDSESSION" abgefangen und zum rückfragelosen Beenden des Programmes benutzt werden, da man sich sonst Probleme einfängt. Programme, die auf Ende oder Schließkreuz oder ALT-F4 ohne Frage terminieren, braucht man nicht abzusichern. Zu Deinem Problem: Du mußt halt alle eventuell laufenden Programme daraufhin testen, wie sie beim Runterfahren reagieren. Normalerweise beendet Windows die Programme (über die Endsession-Nachricht) selber. "Widerspenstige" Programme erfordern ggf. Maßnahmen. Fazit: Egal, wie sauber man selber arbeitet, der Müll der Anderen kann alles versauen! Gruß Dietmar Brüggendiek |
Re: Beim runterfahren automatisch Prozesse beenden?
Also ich erklär mal etwas vereinfacht Logoff und Shutdown:
Deine Frage ist also müßig, weil exakt dies gemacht wird. Oder stell sie anders, falls ich einen Aspekt übersehen hab. |
Re: Beim runterfahren automatisch Prozesse beenden?
Ich hab mir auch schon so ein Programm programmiert, das nach einer eingegebenen Zeit herunterfährt. Falls du es dir mal anschauen willst, kannst du ja mal zu
![]() |
Re: Beim runterfahren automatisch Prozesse beenden?
Danke @Moyyer! Nettes Programm, sieht sehr gut aus. Dann werd ich jetzt in Zukunft deins nehmen!
MfG Matthias Volland |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz