<?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[Taskliste ausgeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich möchte in ein CListCtrl die Systemprozesse schreiben.</p>
<p>Habe folgendes Probiert:</p>
<pre><code class="language-cpp">bool ok;
ok=ShellExecute(m_hWnd,&quot;open&quot;,&quot;tasklist.exe&quot;,&quot;-FO CSV &gt; tasklist.txt&quot;,0,SW_SHOW);
</code></pre>
<p>Wenn ich tasklist.exe -FO CSV &gt; tasklist.txt in eine Dos-Box schreibe, kriege ich meine Datei, aus der ich dann die Prozesse lesen kann.<br />
Ich wollte diesen Befehl in einen Timer setzten, um so die Prozesse zu kriegen. Eigentlich wollte ich die Prozessliste direkt ohne die .exe auslesen, aber irgendwie kapiere ich das alles nicht. (Warscheinlich weil mir immer nur ein Codefragment entgegengeworfen wird...:-(( )</p>
<p>ok ist zwar true, aber die Datei wird nicht angelegt (müsste doch im Arbeitsverzeichniss sein, oder?).<br />
Wenn ich einen Pfad zur Ausgabe angebe, z.B. ... -FO CSV &gt; C:\\tasklist.txt kommt auch nix raus.</p>
<p>Habe zwar schon das gefunden, werde aber nicht schlau draus:</p>
<pre><code class="language-cpp">char   psBuffer[10000]; 
  FILE   *chkdsk; 

  if( (chkdsk = _popen( &quot;d:\\php4\\php index.php&quot;, &quot;rt&quot; )) == NULL ) 
                 exit( 1 ); 

  while( !feof( chkdsk ) ) { 
      if( fgets( psBuffer, 128, chkdsk ) != NULL ) { 
      ...dosomething... 
      } 
  }
</code></pre>
<p>Übrigens: Was ist LPCSTR ??<br />
Übrigens 2: Wenn ich folgendes mache:</p>
<pre><code class="language-cpp">GetDiskFreeSpaceEx( str[zaehler-65] + &quot;:&quot;, &amp;m_FreeBytes, &amp;m_TotalBytes, NULL );
			s.Format( &quot;%u MB&quot;, m_FreeBytes.QuadPart/(1024*1024));
			t.Format( &quot;%u MB&quot;, m_TotalBytes.QuadPart/(1024*1024));
</code></pre>
<p>m_FreeBytes ist vom Typ ULARGE_INTEGER. Wie rechne ich jetzt damit weiter?<br />
Kann mir vieleicht mal jemand ein (anfängerfähiges) Tutorial nennen, das sich mit der Konvertierung von Datentypen befasst? Hab CString, will Int. Und Jetzt?<br />
Hab Int, will CString. Und Jetzt?</p>
<p>mfg</p>
<p>trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/51880/taskliste-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 31 May 2026 18:01:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/51880.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Oct 2003 16:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Taskliste ausgeben on Tue, 14 Oct 2003 16:04:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich möchte in ein CListCtrl die Systemprozesse schreiben.</p>
<p>Habe folgendes Probiert:</p>
<pre><code class="language-cpp">bool ok;
ok=ShellExecute(m_hWnd,&quot;open&quot;,&quot;tasklist.exe&quot;,&quot;-FO CSV &gt; tasklist.txt&quot;,0,SW_SHOW);
</code></pre>
<p>Wenn ich tasklist.exe -FO CSV &gt; tasklist.txt in eine Dos-Box schreibe, kriege ich meine Datei, aus der ich dann die Prozesse lesen kann.<br />
Ich wollte diesen Befehl in einen Timer setzten, um so die Prozesse zu kriegen. Eigentlich wollte ich die Prozessliste direkt ohne die .exe auslesen, aber irgendwie kapiere ich das alles nicht. (Warscheinlich weil mir immer nur ein Codefragment entgegengeworfen wird...:-(( )</p>
<p>ok ist zwar true, aber die Datei wird nicht angelegt (müsste doch im Arbeitsverzeichniss sein, oder?).<br />
Wenn ich einen Pfad zur Ausgabe angebe, z.B. ... -FO CSV &gt; C:\\tasklist.txt kommt auch nix raus.</p>
<p>Habe zwar schon das gefunden, werde aber nicht schlau draus:</p>
<pre><code class="language-cpp">char   psBuffer[10000]; 
  FILE   *chkdsk; 

  if( (chkdsk = _popen( &quot;d:\\php4\\php index.php&quot;, &quot;rt&quot; )) == NULL ) 
                 exit( 1 ); 

  while( !feof( chkdsk ) ) { 
      if( fgets( psBuffer, 128, chkdsk ) != NULL ) { 
      ...dosomething... 
      } 
  }
</code></pre>
<p>Übrigens: Was ist LPCSTR ??<br />
Übrigens 2: Wenn ich folgendes mache:</p>
<pre><code class="language-cpp">GetDiskFreeSpaceEx( str[zaehler-65] + &quot;:&quot;, &amp;m_FreeBytes, &amp;m_TotalBytes, NULL );
			s.Format( &quot;%u MB&quot;, m_FreeBytes.QuadPart/(1024*1024));
			t.Format( &quot;%u MB&quot;, m_TotalBytes.QuadPart/(1024*1024));
</code></pre>
<p>m_FreeBytes ist vom Typ ULARGE_INTEGER. Wie rechne ich jetzt damit weiter?<br />
Kann mir vieleicht mal jemand ein (anfängerfähiges) Tutorial nennen, das sich mit der Konvertierung von Datentypen befasst? Hab CString, will Int. Und Jetzt?<br />
Hab Int, will CString. Und Jetzt?</p>
<p>mfg</p>
<p>trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372208</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Tue, 14 Oct 2003 16:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Taskliste ausgeben on Tue, 14 Oct 2003 18:18:11 GMT]]></title><description><![CDATA[<p>Den ersten teil kannste erstmal vergessen... sorry aber EnumWindows (siehe MSDN bzw. forum) ist WESENTLICH eleganter.</p>
<p>LPCSTR -&gt; Long Pointer auf String (Damit macht man Typcast von CString auf char</p>
<p>ULARGE_INTEGER ... naja rechnen? am besten weiter mit ULARGE_INTEGER oder eben LARGE_****, bzw. mit dem HiPart und LoPart dieser Vars.</p>
<p>Konvertierung von Datentypen steht glaub ich in der VC++ FAQ...</p>
<p>Bye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372275</guid><dc:creator><![CDATA[tm]]></dc:creator><pubDate>Tue, 14 Oct 2003 18:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Taskliste ausgeben on Tue, 14 Oct 2003 18:21:04 GMT]]></title><description><![CDATA[<p>noch was zu dem source:</p>
<p>char psBuffer[10000];</p>
<p>FILE *chkdsk;<br />
// datei öffnen, und wenn datei nicht offen dann ende.<br />
if( (chkdsk = _popen( &quot;d:\\php4\\php index.php&quot;, &quot;rt&quot; )) == NULL )<br />
exit( 1 );<br />
// solange dateiende nicht erreicht, 128 Zeichen auf psBuffer lesen<br />
while( !feof( chkdsk ) ) {<br />
if( fgets( psBuffer, 128, chkdsk ) != NULL ) {<br />
...dosomething...<br />
}<br />
}</p>
<p>reicht das?<br />
PS: _popen hab ich noch nie gehört, auch nicht exit(1)... wo haste das denn her??? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/372276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372276</guid><dc:creator><![CDATA[tm]]></dc:creator><pubDate>Tue, 14 Oct 2003 18:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to Taskliste ausgeben on Tue, 14 Oct 2003 19:30:01 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Laut MSDN:<br />
**EnumWindows Function</p>
<p>--------------------------------------------------------------------------------</p>
<p>The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumWindows continues until the last top-level window is enumerated or the callback function returns FALSE.</p>
<p>Syntax</p>
<p>BOOL EnumWindows(<br />
WNDENUMPROC lpEnumFunc,** // &lt;- ?? WAS IST DAS <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="😕"
    /> <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 />
<strong>LPARAM lParam</strong> // &lt;- ?? UND DAS <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="😕"
    /> <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 />
);<br />
Parameters</p>
<p>lpEnumFunc<br />
[in] Pointer to an application-defined callback function. For more information, see EnumWindowsProc.** // &lt;- Cool, wenn da nicht nur lauter **** stehen würde, mit dem ich erst recht nix anfangen kann...<br />
**lParam<br />
[in] Specifies an application-defined value to be passed to the callback function.<br />
Return Value</p>
<p>If the function succeeds, the return value is nonzero.</p>
<p>If the function fails, the return value is zero. To get extended error information, call GetLastError.</p>
<p>If EnumWindowsProc returns zero, the return value is also zero.**</p>
<p>Cool, das hilft mir jetzt sowas von weiter, dass ich das ganze eigentlich garnicht hätte suchen müssen...</p>
<p>Dass ein Pointer ein Zeiger auf ein Objekt ist, ist mir zwar klar, aber<br />
1. Woher nehme ich einen?<br />
pointer* Objekt; oder wie?<br />
und 2. auf Welches Objekt denn?</p>
<p>Was soll das überhaupt? Was will ich mit EnumWindows wenn der Rückgabe wert dann Zero = 0 oder = NULL ist? Da steht doch, das bei Erfolg und Misserfolg entweder NULL oder 0 ausgegeben wird...? *gar nix mehr versteh*</p>
<p>Wenn ich wirklich die 40 Zeilen + 2 Klassen, die da noch vermisst werden, die aber bestimmt in der MSDN abgammeln, ... dann mach ich doch lieber WinExec (1 Zeile + 10 Zeilen Datei verarbeiten) und fertig. Aber warum einfach wenn es auch umständlich geht? Oder versteh ich da was falsch?</p>
<p>[Irgendwie nervt mich die C Comunity. Mache jetzt seit 3 Wochen C und es wird in allen Foren auf MSDN und FAQs verwiesen, die so geschrieben sind, dass sich nur cracks damit auskennen können <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="😞"
    /> . In der PHP / Perl Comunity wird einem wenigstens was erklärt, in der C Comunity gibt es nur einen Haufen Quelltext. Frei nach dem Motto &quot;Friss oder Stirb&quot;. Wüsste gerne, wo der Einsteiger anfangen soll, C zu lernen. Kann aber nach 3 Wochen schon Dialogfenster basteln, und eine MSG-Box aufrufen. Über die GUI natürlich, der Quellcode, der dahinger steckt, ist ja wieder nur in der MSDN dokumentiert. Aber da schau mal nach, wenn du noch nie C++ gemacht hast. Ausserdem: Wass will die MSDN immer mit printf?? Komandozeilenausgabe in Grafischen Programmen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> ]</p>
<p>mfg<br />
trequ</p>
<p>------------<br />
übrigens:</p>
<p>Der Code mit den Fehlern (? oder nur unsauber programmiert) ist mir auch als einzige Lösung für das gleiche Problem in einem Forum entgegengeworfen worden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372305</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Tue, 14 Oct 2003 19:30:01 GMT</pubDate></item><item><title><![CDATA[Reply to Taskliste ausgeben on Wed, 15 Oct 2003 06:13:35 GMT]]></title><description><![CDATA[<p>Hi,<br />
bleib ganz locker, war werder böse noch frech noch irgendwie gemeint.<br />
Ich kann ja nicht wissen das du Einsteiger bist. Es ist nur so das viele Themen hier schonmal behandelt wurden, und damit auch irgendwo zu finden sind.</p>
<p>EnumWindows ist da vielleicht etwas weit oben angesetzt zum selber beibringen. Diese Funktion &quot;enumeriert&quot; alle offenen Fenster. Das ist wohl nicht ganz das was du suchst aber vielleicht reichts ja.<br />
Bei jedem gefundenen Fenster wird ein Event ausgelöst. In der Event-Behandlung kann man dann irgendwas mit dem Fenster machen (du kannst da hwnd und PID bekommen).</p>
<p>PS: Bist hier gerade im MFC Forum, bin mir aber gar nicht so sicher ob es das ist was du willst?</p>
<p>Code zur o.g. Funktion kann ich nachliefern.<br />
PS: In einer ruhigen Minute kannste dir ja mal die Turorials auf der Hauptseite und die FAQ durchlesen... das hilft bei vielen (Software)Problemen</p>
<p>Bye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372426</guid><dc:creator><![CDATA[tm]]></dc:creator><pubDate>Wed, 15 Oct 2003 06:13:35 GMT</pubDate></item><item><title><![CDATA[Reply to Taskliste ausgeben on Wed, 15 Oct 2003 09:41:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>erst mal sorry, war keineswegs als Angriff gemeint. Wenn man nur ewig nicht weiter kommt, wird man halt einfach irgendwann sauer.</p>
<p>Enum Windows bearbeitet die offenen Fenster? Ich weiß nicht, aber mir geht es um die Systemprozesse. Der Befehl Tasklist.exe -FO CSV &gt; tasks.txt liefert fogende Datei tasks.txt:</p>
<p>&quot;Abbildname&quot;,&quot;PID&quot;,&quot;Sitzungsname&quot;,&quot;Sitz.-Nr.&quot;,&quot;Speichernutzung&quot;<br />
&quot;System Idle Process&quot;,&quot;0&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;20 K&quot;<br />
&quot;System&quot;,&quot;4&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;216 K&quot;<br />
&quot;smss.exe&quot;,&quot;292&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;344 K&quot;<br />
&quot;csrss.exe&quot;,&quot;352&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.188 K&quot;<br />
&quot;winlogon.exe&quot;,&quot;376&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.000 K&quot;<br />
&quot;services.exe&quot;,&quot;420&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.060 K&quot;<br />
&quot;lsass.exe&quot;,&quot;432&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.356 K&quot;<br />
&quot;svchost.exe&quot;,&quot;608&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.220 K&quot;<br />
&quot;svchost.exe&quot;,&quot;644&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;19.276 K&quot;<br />
&quot;StyleXPService.exe&quot;,&quot;672&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;2.348 K&quot;<br />
&quot;svchost.exe&quot;,&quot;724&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.840 K&quot;<br />
&quot;svchost.exe&quot;,&quot;748&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.248 K&quot;<br />
&quot;spoolsv.exe&quot;,&quot;864&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;4.556 K&quot;<br />
&quot;explorer.exe&quot;,&quot;1076&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;19.368 K&quot;<br />
&quot;AVGNT.EXE&quot;,&quot;1256&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.900 K&quot;<br />
&quot;ctfmon.exe&quot;,&quot;1264&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;2.132 K&quot;<br />
&quot;AVGUARD.EXE&quot;,&quot;1324&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;5.748 K&quot;<br />
&quot;ati2evxx.exe&quot;,&quot;1336&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.268 K&quot;<br />
&quot;AVWUPSRV.EXE&quot;,&quot;1368&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.060 K&quot;<br />
&quot;inetinfo.exe&quot;,&quot;1408&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;9.712 K&quot;<br />
&quot;mdm.exe&quot;,&quot;1428&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.204 K&quot;<br />
&quot;svchost.exe&quot;,&quot;1512&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;3.448 K&quot;<br />
&quot;OUTLOOK.EXE&quot;,&quot;972&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;15.056 K&quot;<br />
&quot;WINWORD.EXE&quot;,&quot;1124&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;17.612 K&quot;<br />
&quot;iexplore.exe&quot;,&quot;1248&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;18.212 K&quot;<br />
&quot;cmd.exe&quot;,&quot;548&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;1.468 K&quot;<br />
&quot;tasklist.exe&quot;,&quot;248&quot;,&quot;Console&quot;,&quot;0&quot;,&quot;4.144 K&quot;</p>
<p>Und genau diese Liste bräuchte ich (so aktuell wie möglich, hatte so eine Aktualliesierung alle 5 Sek. gedacht) in einer CListCtrl.<br />
Wo wir gerade dabei sind: CListCtrl ist mir zwar klar, aber wie man Icons oder Bitmaps vor den ersten Eintrag kriegt noch nicht so ganz.</p>
<p>Wegen ULARGE_INTEGER: möchte aus m_FreeBytes und m_TotalBytes einen Wert errechnen, zu wieviel % die HDD belegt ist. Diesen möchten ich dann in ein CListCtrl schreiben. (dafür muss es dann CString oder int sein oder?)</p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372574</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Wed, 15 Oct 2003 09:41:35 GMT</pubDate></item></channel></rss>