<?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[zugriff auf form, wenn man schon das handle hat...]]></title><description><![CDATA[<p>hallo ihr,<br />
ich habe den wunsch (bzw. muss es irgendwie hinkriegen), dass sich beim zweiten starten meiner anwendung die schon laufende und im systray minmierte instanz wieder anzeigt. per mutex findet man ja schon schön das entsprechende (haupt)fenster, aber leider eigentlich nur sein Handle:</p>
<pre><code class="language-cpp">HWND hWnd;
HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, 0, APPLICATION_NAME );
if( hMutex ){
    hWnd = FindWindow(&quot;TForm&quot;, APPLICATION_NAME);
    if( hWnd ){
        // z.B. SetForegroundWindow(hWnd);
    }
}
</code></pre>
<p>Da ich meine anwendung aber über nur über eine passwortabfrage in einem entsprechenden fenster öffnen lassen will, bräuchte ich eben nicht nur das fensterhandle sondern das fenster selbst (um dann eine elementfunktion aufrufen zu können).<br />
hat jemand eine idee? ich wäre sehr dankbar, denn die letzten zwei stunden suche waren leider erfolglos.</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/77404/zugriff-auf-form-wenn-man-schon-das-handle-hat</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 07:10:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/77404.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jun 2004 00:05:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zugriff auf form, wenn man schon das handle hat... on Mon, 21 Jun 2004 00:05:29 GMT]]></title><description><![CDATA[<p>hallo ihr,<br />
ich habe den wunsch (bzw. muss es irgendwie hinkriegen), dass sich beim zweiten starten meiner anwendung die schon laufende und im systray minmierte instanz wieder anzeigt. per mutex findet man ja schon schön das entsprechende (haupt)fenster, aber leider eigentlich nur sein Handle:</p>
<pre><code class="language-cpp">HWND hWnd;
HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, 0, APPLICATION_NAME );
if( hMutex ){
    hWnd = FindWindow(&quot;TForm&quot;, APPLICATION_NAME);
    if( hWnd ){
        // z.B. SetForegroundWindow(hWnd);
    }
}
</code></pre>
<p>Da ich meine anwendung aber über nur über eine passwortabfrage in einem entsprechenden fenster öffnen lassen will, bräuchte ich eben nicht nur das fensterhandle sondern das fenster selbst (um dann eine elementfunktion aufrufen zu können).<br />
hat jemand eine idee? ich wäre sehr dankbar, denn die letzten zwei stunden suche waren leider erfolglos.</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/544584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/544584</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Mon, 21 Jun 2004 00:05:29 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf form, wenn man schon das handle hat... on Mon, 21 Jun 2004 06:18:07 GMT]]></title><description><![CDATA[<p>Wozu brauchst Du da mehr als den Mutex? Ist doch irrelevant, welches Form in der App. gerade aktive ist und ob Du schon angemeldet bist oder nicht.</p>
<p>Zumindest in meinen Apps. funktioniert das nur mit dem Mutex wunderbar. Inklusive Splash-Screen und DB-Login vor dem Anzeigen des Hauptformumlars.</p>
<p>Beschreib das Problem doch bitte etwas genauer.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/544620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/544620</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Jun 2004 06:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf form, wenn man schon das handle hat... on Tue, 22 Jun 2004 02:57:05 GMT]]></title><description><![CDATA[<p>hallo joe_M,</p>
<blockquote>
<p>Zumindest in meinen Apps. funktioniert das nur mit dem Mutex wunderbar. Inklusive Splash-Screen und DB-Login vor dem Anzeigen des Hauptformumlars.</p>
</blockquote>
<p>das klingt ja ziemlich genau nach dem was ich suche. ich habe das ganze vielleicht nicht so professionell gelöst und deshalb dieses problem...<br />
was ich nämlich mache ist, ich starte die anwendung, create das hauptformular aber mit</p>
<pre><code class="language-cpp">ShowWindow(Application-&gt;Handle,SW_HIDE);
Application-&gt;ShowMainForm = false;
Application-&gt;Run();
</code></pre>
<p>wie ich es im forum gelernt habe, und dann öffne ich über das TrayIcon einen Passwortdialog zum benutzen des programms. nun soll halt bei einem aufruf des programms, wenn eine instanz schon läuft, halt genau dieses passwortfenster angezeigt werden, damit man dann die anwendung benutzen kann.</p>
<p>hast du nen tipp (oder sonst jemand)?</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545418</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Tue, 22 Jun 2004 02:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf form, wenn man schon das handle hat... on Tue, 22 Jun 2004 05:56:38 GMT]]></title><description><![CDATA[<p>Hallo oli,</p>
<p>ich verstehe nicht. Wieso möchtest Du bei einem erneuten Startversuch erneut das Passwort abfragen. Entweder ist der Benutzer zu diesem Zeitpunkt angemeldet oder nicht. Aber darauf muss die Applikation entsprechend reagieren.</p>
<p>Ich habe das bei mir sehr simpel gelöst. In der OnCreate des Datenmoduls wird die Passwortabfrage durchgeführt (zu diesem Zeitpunkt ist das Hauptformular noch nicht sichtbar). Scheitert die Abfrage 3 Mal, wird die Applikation geschlossen. Ist die Abfrage erfolgreich, wird die Anwendung weiter ausgeführt. Somit ist es nicht möglich das Programm zu starten, ohne das Passwort einzugeben. Somit ist ein späteres erneutes Abfragen des Passwortes nicht notwendig.</p>
<p>Wenn Du aber unbedingt bei jedem Versuch das Programm zu starten erneut die Passwortabfrage duchführen willst, definiere eine Botschaft in der Applikation und sende sie an die bereits laufende Instanz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545442</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 22 Jun 2004 05:56:38 GMT</pubDate></item></channel></rss>