<?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[Informationen über einen Prozess ?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe jetzt hier schon ein paar Dinge gefunden, bin mir aber nicht ganz sicher ob dass Passt.<br />
Ich möchte über ein kleine tool einen laufenden Prozess überwachen.</p>
<p>Ich habe von diesem nur den name, z.b. notpad.exe und möchte wiessen, wie lange er immer in benutzung ist.<br />
Ist dieser z.b. länger als 1 Stunde nicht benutzt worden Prozessauslastung &lt; als 1% dann möchte ich diesen Prozess killen.</p>
<p>Hat dazu jemand eine Idee ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75473/informationen-über-einen-prozess</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 03:57:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75473.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Jun 2004 07:36:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 07:36:15 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe jetzt hier schon ein paar Dinge gefunden, bin mir aber nicht ganz sicher ob dass Passt.<br />
Ich möchte über ein kleine tool einen laufenden Prozess überwachen.</p>
<p>Ich habe von diesem nur den name, z.b. notpad.exe und möchte wiessen, wie lange er immer in benutzung ist.<br />
Ist dieser z.b. länger als 1 Stunde nicht benutzt worden Prozessauslastung &lt; als 1% dann möchte ich diesen Prozess killen.</p>
<p>Hat dazu jemand eine Idee ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530668</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 07:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 07:52:11 GMT]]></title><description><![CDATA[<p>Handle auf das window holen, und beenden message schicken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530670</guid><dc:creator><![CDATA[eierbär]]></dc:creator><pubDate>Tue, 01 Jun 2004 07:52:11 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 08:01:14 GMT]]></title><description><![CDATA[<p>Vielen Dank,</p>
<p>hast Du eventuell auch ein kleines Beispiel ??<br />
Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530679</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 08:17:31 GMT]]></title><description><![CDATA[<p>such mal in der msdn nach FindWindow, bzw. FindWindowEx, und Post- bzw. SendMessage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530693</guid><dc:creator><![CDATA[eierbär]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 08:20:36 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>Bsp.:</p>
<pre><code class="language-cpp">CWnd * pWnd = FindWindow(0, &quot;Unbenannt&quot;);
pWnd-&gt;PostMessage(WM_CLOSE);
</code></pre>
<p>Wenn ein Fenster jetzt unbenannt heisst, dann schließt er nun das Fenster.</p>
<p>Ansonsten mit EnumWindowProc() arbeiten.</p>
<p>Bsp.:</p>
<pre><code class="language-cpp">HWND handle;

BOOL CALLBACK CDeinDlg::EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
	TCHAR szBuffer[256];
	memset(szBuffer,0,sizeof(szBuffer));

	::GetWindowText(hwnd, szBuffer, sizeof(szBuffer));
	if (szBuffer[0] == 'U' &amp;&amp; szBuffer[1] == 'n' 
		&amp;&amp; szBuffer[2] == 'b' &amp;&amp; szBuffer[3] == 'e'
		&amp;&amp; szBuffer[4] == 'n' &amp;&amp; szBuffer[5] == 'a' 
		&amp;&amp; szBuffer[6] == 'n' &amp;&amp; szBuffer[7] == 'n'
		&amp;&amp; szBuffer[8] == 't')	
	{
		((CDeinDlg *)lParam)-&gt;handle = hwnd;			
	}

	return TRUE;
}

//Aufruf
::EnumWindows(EnumWindowsProc, (LPARAM)this);
CWnd *pWnd = FromHandle(handle);

pWnd-&gt;PostMessage(WM_CLOSE);
</code></pre>
<p>Ich hoffe ich konnte dir weiterhelfen.</p>
<p>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530696</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 08:37:18 GMT]]></title><description><![CDATA[<p>MMhhh...</p>
<p>vielen Dank,</p>
<p>ich brauche aber nicht das eigene Fenster, sondern suche ein geöffnetes Programm was ich auf die max. Dauer an in Arbeit überprüfen möchte, und entsprechend reagieren möchte.</p>
<p>Es soll kein Dialo oder so geöffnet sein sondern im Hintergrund laufen.</p>
<p>Wie bekomme ich eigentlich den Handle von einem Prozess ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530706</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:37:18 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 09:36:53 GMT]]></title><description><![CDATA[<p>Servus,</p>
<pre><code class="language-cpp">HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
PROCESSENTRY32 proc; 
proc.dwSize = sizeof(PROCESSENTRY32); 
Process32First(snapshot, &amp;proc); 

do 
{ 
    if (proc.szExeFile == &quot;ZiehderKatzeamSchwanz&quot;)
       MachWas;                 
}while (TRUE == Process32Next(snapshot, &amp;proc) );
</code></pre>
<p>Damit kanns du schonmal den Prozess suchen <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="😃"
    /> . Vielleicht ist dir damit schonmal ein wenig weitergeholfen. Der Rest k.A...........</p>
<p>Vielleicht: Wenn du den Prozess gefunden hast, kannst du einen Timer starten der den Prozess alle 5sek &quot;überwacht&quot; (ob er vorhanden ist, ggf. Auslastung) und dann darauf reagieren.....</p>
<p>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530752</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Tue, 01 Jun 2004 09:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 10:10:15 GMT]]></title><description><![CDATA[<p>He, super...<br />
vielen Dank,</p>
<p>habe den Source mal eingebracht, leider findet er keine exe.</p>
<p>Habe es mit verschiedenen geöffneten Programmen brobiert.<br />
Aber er schruppt in der Schleiffe einfach drüber...</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530790</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 10:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 10:29:28 GMT]]></title><description><![CDATA[<p>Oh sorry,</p>
<p>er geht doch in die Schleiffe, war nur zu schnell um es zu erkennen.</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530808</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 10:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 11:13:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>jetzt habe ich dennoch nocheinmal eine Frage,<br />
der Source funkt ja richtig super, man bekommt die ID heraus usw.<br />
Jetzt benötige ich aber die CPU-Zeit dieses Prozesses, habs mit Handle probiert, aber kein erfolg...</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530827</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 11:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 11:27:34 GMT]]></title><description><![CDATA[<p>Schuß ins blaue....</p>
<p>Wenn du das Handle des Prozesses hast, dann könntest du GetProcessTimes() (glaube ich) die Entstehungszeit bekommen und dann diese mit der aktuellen Zeit verrechnen, um dann auf die tatsächliche aktive Zeit zu kommen. Hab mir aber nicht alles in der MSDN dazu durchgelesen. Musst du mal gucken:</p>
<pre><code class="language-cpp">BOOL GetProcessTimes(
  HANDLE hProcess,
  LPFILETIME lpCreationTime,
  LPFILETIME lpExitTime,
  LPFILETIME lpKernelTime,
  LPFILETIME lpUserTime
);
</code></pre>
<p>*winke*<br />
Hellsgore</p>
<p>EDIT:<br />
Hab hier gerade noch was gefunden, damit kann man die geschriebenen und gelesenen Daten an und von einem Prozess ermitteln -&gt; GetProcessIoCounters() vielleicht kannst du das auch gebrauche..... <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="🙂"
    /></p>
<p>EDIT2:<br />
Prozess beenden / killen mit: ExitProcess() / TerminateProcess()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530834</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Tue, 01 Jun 2004 11:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 12:04:13 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Hilfe,</p>
<p>wie bekomme ich eigentlich jetzt die Zeiten heraus ??</p>
<pre><code class="language-cpp">FILETIME CreationTime; 
FILETIME ExitTime; 
FILETIME KernelTime; 
FILETIME UserTime; 
GetProcessTimes(snapshot, &amp;CreationTime, &amp;ExitTime, &amp;KernelTime, &amp;UserTime);
</code></pre>
<p>wie gehts jetzt weiter ?? <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="😕"
    /></p>
<p>GRuß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530877</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 12:18:48 GMT]]></title><description><![CDATA[<p>Du kannst z.B. die Klasse CTime benutzen:</p>
<pre><code class="language-cpp">FILETIME CreationTime;

CTime tZeit = CTime(CreationTime);
int iH = tZeit.GetHour();
int iM = tZeit.GetMinute();

//usw.
</code></pre>
<p>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530899</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:18:48 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Tue, 01 Jun 2004 12:49:42 GMT]]></title><description><![CDATA[<p>Vielen Dank,</p>
<p>trotzdem muß ich nochmals nachfragen,</p>
<pre><code class="language-cpp">if (m_strEXE == &quot;notepad.exe&quot;) // System Prozess
{
GetProcessTimes(snapshot, &amp;CreationTime, &amp;ExitTime, &amp;KernelTime, &amp;UserTime);

CTime tZeit = CTime(CreationTime); 
int iH = tZeit.GetHour(); 
int iM = tZeit.GetMinute();
int iS = tZeit.GetSecond();

cout &lt;&lt; m_strEXE &lt;&lt; &quot; &quot; &lt;&lt; proc.th32ProcessID &lt;&lt; &quot; &quot; &lt;&lt; iH &lt;&lt; iM &lt;&lt; iS &lt;&lt; endl;
}
</code></pre>
<p>es kommt aber immer nur für<br />
iH = 1<br />
iM = 0<br />
iS = 0<br />
heraus.</p>
<p>MAche ich was falsch ??</p>
<p>GRuß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530922</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Wed, 02 Jun 2004 07:47:26 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>also ich habe jetzt mal ne Funktion (mit Hilfe von MSDN) erstellt, welche dir die Zeit aller Prozesse auflistet. Naja zumindestens erstmal in eine Variable reinschreibt.</p>
<pre><code class="language-cpp">FILETIME CreationTime; 
	FILETIME ExitTime; 
	FILETIME KernelTime; 
	FILETIME UserTime; 

	HANDLE hProcess; 
	HANDLE hProcessSnap = NULL; 
    PROCESSENTRY32 pe32      = {0}; 
	DWORD dwPriorityClass; 

    //Einen Snapshot über alle Prozesse erstellen
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 

    if (hProcessSnap == INVALID_HANDLE_VALUE) 
        return; 

    //Zuerst füllen... 

    pe32.dwSize = sizeof(PROCESSENTRY32); 

	//Alle Process durchlaufen

    if (Process32First(hProcessSnap, &amp;pe32)) 
    { 
        do 
        { 
			hProcess = OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pe32.th32ProcessID); 
			dwPriorityClass = GetPriorityClass (hProcess); 
			GetProcessTimes(hProcess, &amp;CreationTime, &amp;ExitTime, &amp;KernelTime, &amp;UserTime);

			//Wenn eine Falsche CreationTime kommt dann abfangen....
			TRY
			{
				CTime tZeit = CTime(CreationTime);
				int iDay = tZeit.GetDay();
				int iMonth = tZeit.GetMonth();
				int iYear = tZeit.GetYear();
				int iHour = tZeit.GetHour();
				int iMinute = tZeit.GetMinute();
				int iSecond = tZeit.GetSecond();

				CString strProcess;

				strProcess.Format(&quot;%s - %02d.%02d.%d - %02d:%02d:%02d&quot;,
									pe32.szExeFile,			
									iDay,
									iMonth,
									iYear, 
									iHour, 
									iMinute, 
									iSecond);

				//Hier kannst du jetzt noch die Threads vom Handle herausfinden oder
				//die ID oder was du gerade für Information von deinem Prozess brauchst.
				//Das Handle zu dem Prozess ist &quot;hProcess&quot; damit kannst du im Prinzip
				//jede Schweinerei anfangen.... Viel Spass *g*

				CloseHandle (hProcess); 
			}
			CATCH_ALL(e)
			{

			}
			END_CATCH_ALL;

        } 
        while (Process32Next(hProcessSnap, &amp;pe32)); 
    } 
    CloseHandle (hProcessSnap);
</code></pre>
<p>Im strProcess steht dann immer der Prozessname und die Erstellungszeit. Ist aber unsauber mit CATCH_ALL programmiert. Solltest du nochmal drüberschauen und ausbessern. Ist ja nur ein Beispiel. Aber ich denke mal damit kannst du einiges anfangen...</p>
<p>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531386</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Wed, 02 Jun 2004 07:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Wed, 02 Jun 2004 08:38:29 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wow, vielen Dank, das muß ich mir mal rein ziehen, sieht ziemlich gut aus.<br />
Bin alerdings gerade an einer anderen Ecke beschäftigt würde mich dann gerne nochmals Melden falls es wo hängt..</p>
<p>Gruß und Danke<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531434</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Wed, 02 Jun 2004 08:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Informationen über einen Prozess ? on Sun, 06 Jun 2004 10:01:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>jetzt habe ich doch noch ein paar schwirigkeiten,</p>
<p>Habe mir mal mit cout den wert ausgeben lassen:</p>
<pre><code class="language-cpp">GetProcessTimes(hProcess, &amp;CreationTime, &amp;ExitTime, &amp;KernelTime, &amp;UserTime); 

CTime tZeit = CTime(CreationTime); 
int iDay = tZeit.GetDay(); 
int iMonth = tZeit.GetMonth(); 
int iYear = tZeit.GetYear(); 
int iHour = tZeit.GetHour(); 
int iMinute = tZeit.GetMinute(); 
int iSecond = tZeit.GetSecond(); 

CTimeSpan m_tsProzessZeit(NULL,iHour,iMinute,iSecond); 

CString strProcess; 

strProcess.Format(&quot;%s - %02d.%02d.%d - %02d:%02d:%02d&quot;, 
pe32.szExeFile,            
iDay, 
iMonth, 
iYear, 
iHour, 
iMinute, 
iSecond);

m_strEXE = pe32.szExeFile;

cout &lt;&lt; m_strEXE &lt;&lt; &quot; &quot; &lt;&lt; strProcess &lt;&lt; &quot; &quot; &lt;&lt; m_tsProzessZeit.GetSeconds() &lt;&lt; endl;
</code></pre>
<p>Das einsige was stimmt ist der Name:<br />
Für cout:<br />
notepad.exe 007C2A7C 23</p>
<p>Auch habe ich versucht den Prozess zu beenden mit:</p>
<pre><code class="language-cpp">WORD dwExitCode = -1;
GetExitCodeProcess(hProcess, &amp;dwExitCode);
TerminateProcess(hProcess,0);
CloseHandle(hProcess);
</code></pre>
<p>aber keines der oben genannten Funktionen hat ne auswirkung gezeigt.</p>
<p>Der Task läuft munter weiter..</p>
<p>Kann mir jemand helfen ??</p>
<p>Gruß und DAnke<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/534094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/534094</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Sun, 06 Jun 2004 10:01:51 GMT</pubDate></item></channel></rss>