<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem nach Logoff mit ExitWindowsEx]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin neu hier und habe nun schon 2 Stunden gegoogelt ohne Erfolg. Ich hoffe es kann mir jemand helfen.</p>
<p>Ich schreibe gerade mit Borland C++ 5 ein Programm, daß durch einen Registry-Eintrag in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce<br />
gestartet wird, d.h. es soll laufen, bevor alle anderen Programme und Prozesse anlaufen. Das Programm verlangt ein Passwort. Wenn das Programm beendet wird bevor der Benutzer das Passwort eingegeben hat soll der Benutzer abgemeldet werden.<br />
Das Abmelden habe ich mit ExitWindowsEx realisiert, für Windows 9x vorher den Explorer-Prozeß beendet und auch die Privilegien geändert, um auf Nummer sicher zu gehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Wenn das Programm nun, angestoßen durch das Ereignis von onDestroy, ExitWindowsEx ausführt, so wird der Benutzer abgemeldet und man landet in der Benutzerauswahl.<br />
Soweit so gut, jetzt kommt das Problem:</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Man kann nun (bei Windows XP Home SP2) nicht mehr das Passwort eingeben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Das Passworteingabefeld erscheint aber der Textcursor wird nicht gesetzt. Woran liegt das? Welche andere Möglichkeit habe ich den Benutzer abzumelden, bevor der Systemstart fortgesetzt wird?</p>
<p>Ich hoffe jemand hat eine Idee, ich bin jedenfall recht ratlos! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Danke schon mal für eure Zeit und Hilfe.</p>
<p>MfG</p>
<p>Darkwind</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166867/problem-nach-logoff-mit-exitwindowsex</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 16:49:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166867.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Dec 2006 23:05:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem nach Logoff mit ExitWindowsEx on Sun, 03 Dec 2006 23:05:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin neu hier und habe nun schon 2 Stunden gegoogelt ohne Erfolg. Ich hoffe es kann mir jemand helfen.</p>
<p>Ich schreibe gerade mit Borland C++ 5 ein Programm, daß durch einen Registry-Eintrag in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce<br />
gestartet wird, d.h. es soll laufen, bevor alle anderen Programme und Prozesse anlaufen. Das Programm verlangt ein Passwort. Wenn das Programm beendet wird bevor der Benutzer das Passwort eingegeben hat soll der Benutzer abgemeldet werden.<br />
Das Abmelden habe ich mit ExitWindowsEx realisiert, für Windows 9x vorher den Explorer-Prozeß beendet und auch die Privilegien geändert, um auf Nummer sicher zu gehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Wenn das Programm nun, angestoßen durch das Ereignis von onDestroy, ExitWindowsEx ausführt, so wird der Benutzer abgemeldet und man landet in der Benutzerauswahl.<br />
Soweit so gut, jetzt kommt das Problem:</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Man kann nun (bei Windows XP Home SP2) nicht mehr das Passwort eingeben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Das Passworteingabefeld erscheint aber der Textcursor wird nicht gesetzt. Woran liegt das? Welche andere Möglichkeit habe ich den Benutzer abzumelden, bevor der Systemstart fortgesetzt wird?</p>
<p>Ich hoffe jemand hat eine Idee, ich bin jedenfall recht ratlos! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Danke schon mal für eure Zeit und Hilfe.</p>
<p>MfG</p>
<p>Darkwind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1186530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186530</guid><dc:creator><![CDATA[Darkwind]]></dc:creator><pubDate>Sun, 03 Dec 2006 23:05:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem nach Logoff mit ExitWindowsEx on Sun, 03 Dec 2006 23:22:09 GMT]]></title><description><![CDATA[<p>Damit hab ich nicht befasst, aber ein Versuch: Beendet sich dein Programm direkt nach dem Aufruf von ExitWindowsEx? Weil wenn nein empfängt es vielleicht noch die Benutzereingaben... Oder sonst evtl mit SetFocus( GetForegroundWindow() ) oder so den Focus an ein anderes &quot;Fenster&quot; weiterleiten?<br />
Andererseits müsste das Textfeld ja den Focus haben... Verzwickt...</p>
<p>Achso, ne, das Eingabefeld erhält ja anscheinend nicht den Focus, daran wirds wohl liegen. Mal probiert ob du was mit EnumWindows rauskriegst? K.A. wie man da ne Ausgabe machen kann (Datei?), aber das Edit-Feld (falls es eins ist) muss ja den Focus bekommen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1186535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186535</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 03 Dec 2006 23:22:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem nach Logoff mit ExitWindowsEx on Mon, 04 Dec 2006 00:16:49 GMT]]></title><description><![CDATA[<p>Hallo Badestrand,</p>
<p>danke für deine schnelle Antwort. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Es wird wohl so sein, daß das System noch Benutzereingaben empfängt, denn das System meldet den Benutzer, da ExitWindowsEx ja asynchron läuft, erst etwa 1 bis 1,5 Sekunden nach dem Schließen des Programmfensters ab. In dieser Zeit baut sich der Desktop auf und andere Programme und Prozesse starten.<br />
Auf Grund dieser Asynchronität ist das auch ein verflixt tückischer Fehler, denn von etwa 3 Versuchen ist immer einer dabei wo alles normal läuft, d.h. das Passwort-Eingabefeld für den Benutzer erhält den Focus. Sonst gibt es zum Glück noch den &quot;Affengriff&quot; (Strg+Alt+Entf), um sich mit dem alten Anmeldeverfahren im Win2k-Fenster-Style einzuloggen.<br />
Vielleicht ist der Start im HKLM&gt;...&gt;RunOnce für dieses Programm nicht so klug. Kennt jemand eine Alternative? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Mir schwebt so etwas vor wie das Aktivierungsfenster von MS WinXP, das ebenfalls direkt nach dem Einloggen kommt und den Benutzer auch abmeldet, wenn er sich nicht aktivieren kann. :p Weiß einer wie das dann gestartet wird?</p>
<p>Gehe jetzt erstmal schlafen. :xmas1: Grüble morgen weiter.<br />
Danke<br />
MfG</p>
<p>Darkwind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1186545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186545</guid><dc:creator><![CDATA[Darkwind]]></dc:creator><pubDate>Mon, 04 Dec 2006 00:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem nach Logoff mit ExitWindowsEx on Mon, 04 Dec 2006 10:28:51 GMT]]></title><description><![CDATA[<p>Zwischenstandsmeldung:</p>
<p>Habe das Abmelden jetzt so programmiert, daß es so aussieht.</p>
<pre><code class="language-cpp">ExitWindowsEx(EWX_LOGOFF,NULL);
  MessageBox(NULL,&quot;Benutzer wird abgemeldet.&quot;,&quot;Warnung&quot;,MB_OK);
</code></pre>
<p>Der Vorteil ist, daß andere Prozesse nicht mehr angestoßen werden können, da HKLM&gt;...&gt;RunOnce die Eigenschaft hat Prozesse nur einzeln laufen zu lassen und MessageBox auf eine Benutzereingabe wartet, so dass das Programm also nicht beendet wird. Somit wäre das Problem der Asynchronität von ExitWindowsEx erledigt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Was bleibt ist das Problem mit der XP-Benutzer-Anmeldung im XP-Style. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Eine Not-Lösung wäre natürlich in der Registry das Flag für die Art der Anmeldung in der Registry auf die klassische Anmeldung zu setzen. Also<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]<br />
LogonType = 0<br />
Aber das will ich eigentlich nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Wenn man das Programm den Benutzer nach abgeschlossenem Systemstart abmelden läßt, funktioniert alles problemlos.<br />
Imho muß es ein Problem mit der Startreihenfolge der Prozesse von XP sein. Irgendein Prozeß muß noch angestoßen werden bevor mein Programm den Benutzer abmelden kann. Wenn das stimmt, welcher?<br />
Ich werde mal mit enumWindows schauen was noch so läuft, aber die Implementierung der Ausgabe wird wohl was dauern.<br />
Ich melde mich wieder.<br />
MfG</p>
<p>Darkwind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1186693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186693</guid><dc:creator><![CDATA[Darkwind]]></dc:creator><pubDate>Mon, 04 Dec 2006 10:28:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem nach Logoff mit ExitWindowsEx on Mon, 04 Dec 2006 22:03:50 GMT]]></title><description><![CDATA[<p>So, habe ein bisschen an dem Problem rumgebastelt und getestet. Es läuft jetzt, aber optimal ist das wahrscheinlich nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<pre><code class="language-cpp">ShellExecute(NULL, NULL, &quot;explorer.exe&quot;, NULL, NULL, SW_SHOWMINNOACTIVE);
  ExitWindows(EWX_LOGOFF,NULL);
//  MessageBox(NULL,&quot;Benutzer wird abgemeldet.&quot;,&quot;Warnung&quot;,MB_OK);
  exit(EXIT_SUCCESS);
</code></pre>
<p>Die Sache ist die, dass wenn der explorer-Prozeß vorm Abmelden gestartet wird das Edit-Feld in der Benutzer-Anmeldung wieder einen Focus hat. Na ja, zumindest in 95% der Fälle. Das soll mir reichen. Die Rest-5% kommen halt in die Anleitung, daß man notfalls auch die klassische Anmeldung wählen kann. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Wie sinnvoll ein exit() in einer onDestroy()-Methode des Hauptfensters ist sei mal dahingestellt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Danke an den verbrauchten Gehirnschmalz.</p>
<p>MfG</p>
<p>Darkwind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1187146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1187146</guid><dc:creator><![CDATA[Darkwind]]></dc:creator><pubDate>Mon, 04 Dec 2006 22:03:50 GMT</pubDate></item></channel></rss>