AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Konsolenprogramm und Shutdown verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenprogramm und Shutdown verhindern

Offene Frage von "xpmd"
Ein Thema von xpmd · begonnen am 28. Jul 2008 · letzter Beitrag vom 29. Jul 2008
 
xpmd

Registriert seit: 8. Jul 2008
9 Beiträge
 
#10

Re: Konsolenprogramm und Shutdown verhindern

  Alt 29. Jul 2008, 11:00
Zitat von new32:
Zitat von Luckie:
Warum schon wieder eine undokumentierte API-Funktion?
Sorry mir is in dem Moment keine andere Lösung eingefallen.
Aber ich hab ja auch davon noch abgeraten; ich wollte es nur nicht komplett löschen, weil es ja auch ne Lösung ist.

Aber was spricht gegen die Methode mit winlogon?
Hmm alle Winlogon-Threads schlafen lassen? Ist das nicht etwas brachial? Der PC sollte in der Zeit eigentlich ganz normal weiter arbeiten können. Im Hintergrund läuft währenddessen eine Software-Installation.


Zitat von new32:
Unter nt4-xp:

mit NtSetInformationProcess (und NtCreateToken) allen Prozessen das SeShutdownPrivilege entziehen.

Achtung: Die Funktion ist nicht von ms dokumentiert und funktioniert nicht mehr unter vista!


Und noch ne Lösung [einfacher und besser]:

Mit SuspendThread alle Threads von winlogon auf eis legen. dann dürfte das system erst runterfahren, wenn winlogon wieder mit ResumeThread aufgetaut wird.
Wär für XP ne Lösu8ng. Undokumentierte API-Funktionen will ich aber eigentlich vermeiden. Für Vista gibts ja die neue Shutdown-API. Mit der könnt ich mir schon ne Lösung vorstellen. Aber Vista hat auch eine undokumentierte CancelShutdown Funktion




Zitat von Zacherl:
Die Lösung über WM_QUERYENDSESSION geht doch nicht, weil er einen Service verwendet.

Mach doch einen Hook auf ExitWindowsEx.
Hab mich noch überhaupt nicht mit Hooks beschäftigt. Wär evtl ne Lösung aber wie gesagt noch ein absolut unberührtes Thema für mich.


Zitat von Apollonius:
Was spricht gegen einen zusätzlichen Thread mit einem Fenster, über das man die Nachricht erhält?
Hatte ich schon probiert. Komischerweise erhielt das Fenster keine Message. Lags evtl daran dass das Konsolenprogramm eben von einem Dienst unter SYSTEM gestartet wurde, und das Fenster unsichtbar ist.? Oder hab ich da was im Code verpeilt, werds mir nochmal anschaun.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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