<?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[CreateProcessW geht nicht immer]]></title><description><![CDATA[<p>Hi,</p>
<p>schreibe gerade eine MFC Applikation wo ich mit CreateProcessW<br />
ein anderes Programm aufrufen muss.</p>
<p>Ich habe zwei verschiedene Applikationen getestet.<br />
Die eine funktioniert, wurde ebenfalls von mir in MFC (VS 8.0) geschrieben.<br />
Die andere,fremde, Applikation ebenfalls eine MFC (VC++ 6) kann ich mit CreateProcessW nicht anzeigen.</p>
<p>Mit anzeigen meine ich dass CreateProcessW nicht false liefert, jedoch das Programm nicht anzeigt.</p>
<p>Woran könnte es liegen?</p>
<p>Näheres zum fremden Programm:</p>
<p>Es besteht nur aus MessageBox Meldungen...hat sozusagen kein richtiges Dialog Fenster. Vielleicht hat es damit was zu tun.</p>
<pre><code class="language-cpp">....
	SECURITY_ATTRIBUTES secur;
	STARTUPINFO si;
	PROCESS_INFORMATION piProc;

	ZeroMemory(&amp;si, sizeof(si));
	si.cb = sizeof(si);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOWNORMAL;
	ZeroMemory(&amp;piProc, sizeof(piProc));

	secur.nLength = sizeof(secur);
	secur.lpSecurityDescriptor = NULL;
	secur.bInheritHandle = true;

	if(!CreateProcessW(_T(&quot;D:\\bla\\Application.exe&quot;),NULL,&amp;secur,NULL,TRUE,0,NULL,NULL,&amp;si,&amp;piProc))
{
			msg.Format(_T(&quot;%d&quot;),GetLastError());
			MessageBoxW(msg,0,0);
}

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/166549/createprocessw-geht-nicht-immer</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 18:55:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166549.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Nov 2006 12:54:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Thu, 30 Nov 2006 12:54:47 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>schreibe gerade eine MFC Applikation wo ich mit CreateProcessW<br />
ein anderes Programm aufrufen muss.</p>
<p>Ich habe zwei verschiedene Applikationen getestet.<br />
Die eine funktioniert, wurde ebenfalls von mir in MFC (VS 8.0) geschrieben.<br />
Die andere,fremde, Applikation ebenfalls eine MFC (VC++ 6) kann ich mit CreateProcessW nicht anzeigen.</p>
<p>Mit anzeigen meine ich dass CreateProcessW nicht false liefert, jedoch das Programm nicht anzeigt.</p>
<p>Woran könnte es liegen?</p>
<p>Näheres zum fremden Programm:</p>
<p>Es besteht nur aus MessageBox Meldungen...hat sozusagen kein richtiges Dialog Fenster. Vielleicht hat es damit was zu tun.</p>
<pre><code class="language-cpp">....
	SECURITY_ATTRIBUTES secur;
	STARTUPINFO si;
	PROCESS_INFORMATION piProc;

	ZeroMemory(&amp;si, sizeof(si));
	si.cb = sizeof(si);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOWNORMAL;
	ZeroMemory(&amp;piProc, sizeof(piProc));

	secur.nLength = sizeof(secur);
	secur.lpSecurityDescriptor = NULL;
	secur.bInheritHandle = true;

	if(!CreateProcessW(_T(&quot;D:\\bla\\Application.exe&quot;),NULL,&amp;secur,NULL,TRUE,0,NULL,NULL,&amp;si,&amp;piProc))
{
			msg.Format(_T(&quot;%d&quot;),GetLastError());
			MessageBoxW(msg,0,0);
}

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1184488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1184488</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Thu, 30 Nov 2006 12:54:47 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Thu, 30 Nov 2006 21:26:14 GMT]]></title><description><![CDATA[<p>Warum verwendest Du &quot;CreateProcessW&quot; zusammen mit dem _T Makro?<br />
Das macht nun mal gar keinen Sinn.<br />
Entweder &quot;CreateProcessW&quot; und L&quot;...&quot;<br />
oder &quot;CreateProcess&quot; und _T Makro.</p>
<p>Auch würde ich den ersten Parameter auf &quot;NULL&quot; setzen und den Pfad zur EXE im zweiten übergeben. Einige Programme kommen nicht ganz klar damit, wenn gar keine Kommandozeilen-Parameter vorhanden sind (i.d.R. ist immer argv[0] vorhanden (Prozessname), was bei Dir aber nicht der Fall ist).<br />
Wenn Du es aber im 2.Parameter übergibst, musst Du einen &quot;beschreibbaren&quot; String übergeben! (also kein String-Literal!).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1184953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1184953</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 30 Nov 2006 21:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Fri, 01 Dec 2006 15:12:42 GMT]]></title><description><![CDATA[<p>danke,</p>
<p>habs korrigiert.<br />
Ich hätte da ne andere Frage.. kann ich ein fremdes MFC Programm welches ich mit createprocess starte, direkt beim starten verstecken ?</p>
<p>Habe folgendes probiert, geht aber leider nicht.</p>
<pre><code class="language-cpp">...
STARTUPINFO si;
...

si.wShowWindow = SW_HIDE;
...
</code></pre>
<p>So wie ich das gerade mache ist meiner Meinung nach die unschöne variante.<br />
Ich mache ein FindWindowW, wenn nötig ein GetParent() dann wende ich<br />
ShowWindow(SW_HIDE) auf alle auftauchenden Fenster an.</p>
<p>Man sieht hierbei dass irgendwelche Fenster für Bruchteile von Sekunden aufgebaut und wieder versteckt werden. Ist nicht so schön.</p>
<p>Geht es auch anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185364</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Fri, 01 Dec 2006 15:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Fri, 01 Dec 2006 22:20:50 GMT]]></title><description><![CDATA[<p>Das mit der Startup-Info geht nur, wenn es das Programm auch unterstüzt! Also es muss &quot;GetStartupInfo&quot; aufrufen und dann auch das machen was dort steht... die meisten ignorieren es aber oder rufen explizit ShowWindow(SW_SHOW) auf...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185583</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 01 Dec 2006 22:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Fri, 01 Dec 2006 23:26:28 GMT]]></title><description><![CDATA[<p>also ne andere möglichkeit gibt es nicht?</p>
<p>schade , ich finde es einfach blöd dass die fenster immer kurz &quot;aufflackern&quot; und wieder versteckt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185600</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Fri, 01 Dec 2006 23:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Sat, 02 Dec 2006 07:46:50 GMT]]></title><description><![CDATA[<p>Wenn Du das Fenster gar nicht haben willst, dann starten den Prozess doch auf einem anderen (unsichtbaren) Desktop / oder einer anderen Session...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185650</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 02 Dec 2006 07:46:50 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Sat, 02 Dec 2006 09:35:14 GMT]]></title><description><![CDATA[<p>die beiden methoden kenn ich garnicht.<br />
könntest du mir Beispiele zeigen wie man die beiden umsetzt.<br />
Das wäre super.</p>
<p>vielen dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185670</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Sat, 02 Dec 2006 09:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Mon, 04 Dec 2006 12:19:55 GMT]]></title><description><![CDATA[<p>habe mich für die createdesktop variante entschieden.<br />
Jedoch klappt FindWindow in zusammenhang mit dem Desktop handle nicht.</p>
<p>Wie suche ich in diesem neuen Desktop nach Fenstern ohne SwitchDesktop zu machen.<br />
Ich will schon im alten Desktop bleiben nur das Progrämmchen im zweiten Desktop laufen lassen.</p>
<p>Zum suchen könnt ich FindWindowEx nehmen, der jedoch ein window handle braucht der auf dem zweiten Desktop ist.</p>
<p>Wie kriege ich diesen window Handle (hwndParent) um FindWindowEx benutzen zu können?</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1186671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186671</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Mon, 04 Dec 2006 12:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcessW geht nicht immer on Mon, 04 Dec 2006 15:34:43 GMT]]></title><description><![CDATA[<p>soo jetzt läuft es endlich:</p>
<p>Kann sein dass ich es etwas chaotisch gemacht habe. Falls es einfacher/besser geht sagt mir ruhig bescheid.</p>
<pre><code class="language-cpp">WCHAR strDesk[] = L&quot;NewDesk&quot;;

	HDESK hdesk = CreateDesktopW(strDesk,NULL,NULL,DF_ALLOWOTHERACCOUNTHOOK,GENERIC_ALL,&amp;secDesk);
.
.
.
brc = EnumDesktopWindows(hdesk,EnumWindowsProc,(LPARAM) &amp;wi);
.
.
.
if(wi.hWnd)
{
	CWnd* pWnd1 = CWnd::FromHandle( wi.hWnd );
	wnd_a = pWnd1;
}
.
.
.
pstatic = FindWindowExW(wnd_a-&gt;GetSafeHwnd(),temphnd-&gt;GetSafeHwnd(),L&quot;Static&quot;,NULL);
</code></pre>
<p>EnumWindowsProc:</p>
<pre><code class="language-cpp">BOOL CALLBACK CProgDlg::EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
  WNDINFO*    pWndInfo = (WNDINFO*)(lParam);
  DWORD       dwProcessID;

  ::GetWindowThreadProcessId(hwnd, &amp;dwProcessID);
  if (dwProcessID == pWndInfo-&gt;dwProcessID)
  {
    pWndInfo-&gt;hWnd = hwnd;
    return false;
  } 
	return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1186998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1186998</guid><dc:creator><![CDATA[ThaMubber]]></dc:creator><pubDate>Mon, 04 Dec 2006 15:34:43 GMT</pubDate></item></channel></rss>