<?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[Alle laufenden Dienste ermitteln]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
und zwar suche ich eine möglichkeit mit der ich alle laufenden Dienste auf dem PC(Betriebssystem ist natürlich Windows) ermitteln kann.<br />
Eine Funktion zum ermitteln der Dienste ist mir nicht bekannt.<br />
Ich hoffe ihr könnt mir etwas weiter helfen.<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/topic/208583/alle-laufenden-dienste-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 11:19:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208583.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Mar 2008 19:46:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Alle laufenden Dienste ermitteln on Wed, 19 Mar 2008 19:46:01 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
und zwar suche ich eine möglichkeit mit der ich alle laufenden Dienste auf dem PC(Betriebssystem ist natürlich Windows) ermitteln kann.<br />
Eine Funktion zum ermitteln der Dienste ist mir nicht bekannt.<br />
Ich hoffe ihr könnt mir etwas weiter helfen.<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/post/1477500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477500</guid><dc:creator><![CDATA[Streetfighter]]></dc:creator><pubDate>Wed, 19 Mar 2008 19:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Alle laufenden Dienste ermitteln on Wed, 19 Mar 2008 21:13:36 GMT]]></title><description><![CDATA[<p>Vielleicht: EnumServicesStatusEx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477534</guid><dc:creator><![CDATA[_Luckie]]></dc:creator><pubDate>Wed, 19 Mar 2008 21:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Alle laufenden Dienste ermitteln on Wed, 19 Mar 2008 21:22:01 GMT]]></title><description><![CDATA[<p>Dann wolln wir Dich mal erleuchten:</p>
<pre><code class="language-cpp">#pragma comment( lib, &quot;advapi32.lib&quot; )
#define UNICODE
#define _UNICODE

#include &lt;string&gt;
#include &lt;iostream&gt;

namespace std_ext {

#ifdef UNICODE

	std::wostream &amp;tcout( std::wcout );
	std::wostream &amp;tcerr( std::wcerr );
	std::wistream &amp;tcin( std::wcin );

	typedef std::basic_string&lt; wchar_t &gt; tstring;

#elif

	std::ostream &amp;tcout( std::cout );
	std::ostream &amp;tcerr( std::cerr );
	std::istream &amp;tcin( std::cin );

	typedef std::string tstring;

#endif /* UNICODE */
}

#include &lt;windows.h&gt;
#include &lt;tchar.h&gt;

namespace winapi_tools {

	std_ext::tstring get_last_error_msg( ) {

		void *message_buffer = 0;

		FormatMessage(

			FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
			0,
			GetLastError( ),
			MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ),
			reinterpret_cast&lt; LPTSTR &gt;( &amp;message_buffer ),
			0,
			0
			);

		std_ext::tstring error_message( reinterpret_cast&lt; LPTSTR &gt;( message_buffer ) );

		LocalFree( message_buffer );

		return error_message;
	}
}
int main( ) {

	SC_HANDLE service_control = OpenSCManager( 0, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ENUMERATE_SERVICE );

	if( !service_control ) {

		std_ext::tcerr &lt;&lt; _T( &quot;Error: &quot; ) &lt;&lt; winapi_tools::get_last_error_msg( ) &lt;&lt; std::endl;
		return EXIT_FAILURE;
	}

	unsigned long bytes_needed( 0 );
	unsigned long num_services( 0 );
	unsigned long resume_handle( 0 ); /* unused */

	if( !EnumServicesStatusEx( service_control, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_ACTIVE, 0, 0, &amp;bytes_needed, &amp;num_services, &amp;resume_handle, 0 ) &amp;&amp; ( GetLastError( ) != ERROR_MORE_DATA ) ) {

		std_ext::tcerr &lt;&lt; _T( &quot;Error: &quot; ) &lt;&lt; winapi_tools::get_last_error_msg( ) &lt;&lt; std::endl;
		return EXIT_FAILURE;
	}

	unsigned char *service_status_bytes = 0;

	try {

		service_status_bytes = new unsigned char[ bytes_needed ];

	} catch( std::bad_alloc &amp;e ) {

		std_ext::tcerr &lt;&lt; _T( &quot;Not enough memory!\n&quot; ) &lt;&lt; std::endl;
		return EXIT_FAILURE;
	}

	if( !EnumServicesStatusEx( service_control, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_ACTIVE, service_status_bytes, bytes_needed, &amp;bytes_needed, &amp;num_services, &amp;resume_handle, 0 ) ) {

		std_ext::tcerr &lt;&lt; _T( &quot;Error: &quot; ) &lt;&lt; winapi_tools::get_last_error_msg( ) &lt;&lt; std::endl;
		return EXIT_FAILURE;
	}

	ENUM_SERVICE_STATUS_PROCESS *service_status = reinterpret_cast&lt; ENUM_SERVICE_STATUS_PROCESS* &gt;( service_status_bytes );

	for( unsigned long i( 0 ); i &lt; num_services; ++i ) {

		std_ext::tcout.width( 3 );
		std_ext::tcout.fill( _T( ' ' ) );
		std_ext::tcout &lt;&lt; i &lt;&lt; _T( &quot;: &quot; ) &lt;&lt; service_status[ i ].lpDisplayName &lt;&lt; _T( &quot; (&quot; ) &lt;&lt; service_status[ i ].lpServiceName &lt;&lt; _T( &quot;)&quot; ) &lt;&lt; std::endl;
	}

	delete[ ] service_status;
}
</code></pre>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477538</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 19 Mar 2008 21:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Alle laufenden Dienste ermitteln on Fri, 25 Apr 2008 19:44:50 GMT]]></title><description><![CDATA[<p>Versuche es mal mit EnumWindows().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1498276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1498276</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Fri, 25 Apr 2008 19:44:50 GMT</pubDate></item><item><title><![CDATA[Reply to Alle laufenden Dienste ermitteln on Fri, 25 Apr 2008 20:08:28 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Versuche es mal mit EnumWindows().</p>
</blockquote>
<p>rofl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1498287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1498287</guid><dc:creator><![CDATA[rofl-realer]]></dc:creator><pubDate>Fri, 25 Apr 2008 20:08:28 GMT</pubDate></item></channel></rss>