<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ePyx-online.de &#187; Code-Snippets</title>
	<atom:link href="http://www.epyx-online.de/tag/code-snippets/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.epyx-online.de</link>
	<description>Just a moment ;-)</description>
	<lastBuildDate>Thu, 02 Sep 2010 21:10:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[Qt] QThreads</title>
		<link>http://www.epyx-online.de/2009-10-25/qt-qthreads/</link>
		<comments>http://www.epyx-online.de/2009-10-25/qt-qthreads/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 09:44:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[HowTos]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Threads]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/?p=1081</guid>
		<description><![CDATA[Threads sind im Allgemeinen sehr nützlich, da man sehr schön zeitintensive Aufgaben auslagern kann. Leider sind sie aber genauso tückisch wie praktisch.
Einige Punkte die sich nach und nach herausgestellt sind und zu mindestens bei mir zum Erfolg geführt haben, sind diese :

Mutexe für kritische Funktionen verwenden
den Thread bei der Initialisierung starten und von "Außen" steuern


Alles [...]]]></description>
			<content:encoded><![CDATA[<p>Threads sind im Allgemeinen sehr nützlich, da man sehr schön zeitintensive Aufgaben auslagern kann. Leider sind sie aber genauso tückisch wie praktisch.</p>
<p>Einige Punkte die sich nach und nach herausgestellt sind und zu mindestens bei mir zum Erfolg geführt haben, sind diese :</p>
<ul>
<li>Mutexe für kritische Funktionen verwenden</li>
<li>den Thread bei der Initialisierung starten und von "Außen" steuern</li>
</ul>
<p><a href="http://www.epyx-online.de/wp-content/2009/10/qt-logo.jpg"><img class="aligncenter size-medium wp-image-1082" title="Qt Logo" src="http://www.epyx-online.de/wp-content/2009/10/qt-logo-300x300.jpg" alt="Qt Logo" width="300" height="300" /></a></p>
<p>Alles andere führte bei mir entwder zu einer blockierten GUI oder zu einem abnormalem Programmverhalten.</p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2009-08-27/hardware-nokias-neues-n900-vorgestellt/" title="[Hardware] Nokias neues N900 vorgestellt (27. August 2009)">[Hardware] Nokias neues N900 vorgestellt</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2010-06-19/avr-fun-mit-servos/" title="[AVR] Fun mit Servos (19. Juni 2010)">[AVR] Fun mit Servos</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-uptime-c/" title="Windows-Uptime in C (7. Mai 2007)">Windows-Uptime in C</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2009-10-25/qt-qthreads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Linux] Uptime umrechnen</title>
		<link>http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/</link>
		<comments>http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 07:33:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Kruzweilig]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Systeminfo]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/?p=969</guid>
		<description><![CDATA[Eigentlich sehr trivial, wenn man auf die Idee kommt. Da die vorgestellte Möglichkeit die Linux-uptime auszugeben nur die Sekunden seit dem Booten ausgibt müsste man diese natürlich noch umrechnen.Die meiner Meinung nach einfachste und eleganteste Variante ist einfach den Rest der Division zu ermitteln.Dabei wird der alte Modulo-Operator genutzt und jeweils der Quotient zur nächsten [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich sehr trivial, wenn man auf die Idee kommt. Da die <a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/">vorgestellte Möglichkeit</a> die Linux-uptime auszugeben nur die Sekunden seit dem Booten ausgibt müsste man diese natürlich noch umrechnen.Die meiner Meinung nach einfachste und eleganteste Variante ist einfach den Rest der Division zu ermitteln.Dabei wird der alte Modulo-Operator genutzt und jeweils der Quotient zur nächsten Einheit gebildet.</p>
<p>Kryptisch zusammen gebacken sieht das Ganze so aus :</p>
<div class="codecolorer-container c geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">uptime <span style="color: #339933;">=</span> getTickCount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
sprintf<span style="color: #009900;">&#40;</span>sequence<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%ldh %ldm %lds&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>uptime <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span> <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">,</span> &nbsp;<span style="color: #009900;">&#40;</span>uptime <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span> &nbsp;<span style="color: #339933;">,</span> uptime <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span> &nbsp;<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Ein wenig länger, dafür aber übersichtlicher wäre dann wohl diese Variante :</p>
<div class="codecolorer-container c geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">uptime <span style="color: #339933;">=</span> getTickCount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">long</span> hours <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>uptime <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span> <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">long</span> minutes <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>uptime <span style="color: #339933;">/</span> <span style="color: #0000dd;">60</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">long</span> seconds <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>uptime <span style="color: #339933;">%</span> <span style="color: #0000dd;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
sprintf<span style="color: #009900;">&#40;</span>sequence<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%ldh %ldm %lds&quot;</span><span style="color: #339933;">,</span> hours <span style="color: #339933;">,</span> minutes &nbsp;<span style="color: #339933;">,</span> seconds<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Letzteres ist sicherlich nicht am effektivsten was die Ressourcen angeht, unsigned short oder ähnliche Typen für die Variablen hätten es auch getan, aber so bleibt es übersichtlicher. Mir gefällt die erste Variante eh besser.</p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/" title="RSS 2.0 parsen (3. Oktober 2007)">RSS 2.0 parsen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/" title="Neues Madwifi Installationsskript Ubuntu 7.10 (24. November 2007)">Neues Madwifi Installationsskript Ubuntu 7.10</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-07-17/madwifi-ng-installationsskript/" title="Madwifi-NG Installationsskript (17. Juli 2007)">Madwifi-NG Installationsskript</a> (3)</li>
	<li><a href="http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/" title="ATOM 0.3 parsen (4. Oktober 2007)">ATOM 0.3 parsen</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Linux] Uptime mit C auslesen</title>
		<link>http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/</link>
		<comments>http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 12:50:40 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Systeminfo]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/?p=956</guid>
		<description><![CDATA[Brauch man ja ab und an um sich ein Bild über die aktuelle Laufzeit des jeweiligen Systems zu machen oder um sich einzugestehen, dass man einfach zu lange vor der Kiste sitzt.
123456789101112131415#include &#60;stdio.h&#62;
#include &#60;sys/sysinfo.h&#62;

long getTickCount&#40;&#41; // Zeit seit dem Booten in Sekunden
&#123;
&#160;struct sysinfo si;
&#160;if&#40;sysinfo&#40;&#38;si&#41; == 0&#41; return si.uptime;
&#160;else return -1L;
&#125;

int main&#40;&#41;
&#123;
&#160; &#160; printf&#40;&#34;Uptime : %2.0f [...]]]></description>
			<content:encoded><![CDATA[<p>Brauch man ja ab und an um sich ein Bild über die aktuelle Laufzeit des jeweiligen Systems zu machen oder um sich einzugestehen, dass man einfach zu lange vor der Kiste sitzt.</p>
<div class="codecolorer-container cpp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339900;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339900;">#include &lt;sys/sysinfo.h&gt;</span><br />
<br />
<span style="color: #0000ff;">long</span> getTickCount<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #666666;">// Zeit seit dem Booten in Sekunden</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp;<span style="color: #0000ff;">struct</span> sysinfo si<span style="color: #008080;">;</span><br />
&nbsp;<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>sysinfo<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>si<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> si.<span style="color: #007788;">uptime</span><span style="color: #008080;">;</span><br />
&nbsp;<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">return</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1L</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Uptime : %2.0f min&quot;</span>,<span style="color: #008000;">&#40;</span>getTickCount<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color:#800080;">60.0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/" title="RSS 2.0 parsen (3. Oktober 2007)">RSS 2.0 parsen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/" title="Neues Madwifi Installationsskript Ubuntu 7.10 (24. November 2007)">Neues Madwifi Installationsskript Ubuntu 7.10</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-07-17/madwifi-ng-installationsskript/" title="Madwifi-NG Installationsskript (17. Juli 2007)">Madwifi-NG Installationsskript</a> (3)</li>
	<li><a href="http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/" title="ATOM 0.3 parsen (4. Oktober 2007)">ATOM 0.3 parsen</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web-Interface für Torrent WebUI</title>
		<link>http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/</link>
		<comments>http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 07:57:42 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Bilder]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PSP]]></category>
		<category><![CDATA[uTorrent]]></category>
		<category><![CDATA[webUI]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/</guid>
		<description><![CDATA[Eigentlich ist es ja eher sinnlos, ein Webinterface für ein Webinterface zu schreiben, aber ab und an gibt es dann doch einen triftigen Grund dazu.
Zum Einen läuft Web-UI zwar auf einem beliebigen Port, jedoch ist der bei Uni-Netzwerken oder ähnlichen oft geblockt und man findet schwer bis gar nicht einen Port um darauf zuzugreifen.
Ein anderer [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich ist es ja eher sinnlos, ein Webinterface für ein Webinterface zu schreiben, aber ab und an gibt es dann doch einen triftigen Grund dazu.</p>
<p>Zum Einen läuft Web-UI zwar auf einem beliebigen Port, jedoch ist der bei Uni-Netzwerken oder ähnlichen oft geblockt und man findet schwer bis gar nicht einen Port um darauf zuzugreifen.</p>
<p>Ein anderer Grund ist, dass auch wenn man die Seite erreicht, sie nicht gerade für mobile Geräte dimensioniert wurde. WebUI enthält sehr viele Grafiken und viel  Javascript.</p>
<p>Das sind 2 Faktoren, die für PDAs und Co sehr entscheidend sein können.</p>
<p>Naja und der mehr oder weniger triviale Grund, war dieses sogenannte <a href="http://www.pspsource.de/comment.php?comment.news.2991" target="_blank">uPSP</a>, das in manchen PSP-Foren/-Blogs angepriesen wurde. Eigentlich keine schlechte Idee, aber auch nciht wirklich schwer und dazu auch noch relativ unsicher, denn wer weiss schon, was noch hinter dem Web-Interface von NameTaken33 so werkelt.</p>
<p><span id="more-161"></span></p>
<p>Nun aber mal auf den Punkt gekommen und vorab ein paar Bilder</p>
<p>Zuerst einmal das reguläre Interface in einem handelsüblichen Browser</p>
<p>(hier Mozilla FireFox)</p>
<p align="center"><a href="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-small.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-small-thumb.jpg" border="0" alt="torrent-webinterface-small" width="352" height="128" /></a></p>
<p align="center"><a href="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-normal2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-normal2-thumb.jpg" border="0" alt="torrent-webinterface-normal2" width="345" height="126" /></a></p>
<p align="left">Detail Ansicht mit Prgressbar</p>
<p align="center"><a href="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-collapsed1.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-collapsed1-thumb.jpg" border="0" alt="torrent-webinterface-collapsed1" width="343" height="171" /></a></p>
<p align="center"><a href="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-collapsed2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-collapsed2-thumb.jpg" border="0" alt="torrent-webinterface-collapsed2" width="348" height="180" /></a></p>
<p align="left">Darstellung auf mobilen Geräten:</p>
<p align="center"><a href="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-mobile.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.epyx-online.de/wp-content/2008/02/torrent-webinterface-mobile-thumb.jpg" border="0" alt="torrent-webinterface-mobile" width="353" height="233" /></a></p>
<p align="left">Hier wurde bewusst auf das Klappmenü und den Progressbar verzichtet um so wenig JavaScript zu verwenden wie nur möglich.</p>
<p align="left">Um das Webinterface bei euch auf eurem Webserver einzusetzen sind folgende Zeilen der Datei "index.php" anzupassen.</p>
<p align="left">
<p align="left">
<p>[sourcecode language='php']<br />
// Rechner auf dem WebUI läuft<br />
//		  >> Format : hostadresse/ip:port<br />
$torrent->host = "";<br />
// $user 	>>  Benutzer der bei WebUI eingerichtet wurde<br />
//		  >>  Format : name<br />
$torrent->user = "";<br />
// $pass      >> Dazugehöriges Passwort das bei WebUI eingerichtet wurde<br />
//		>> Format : passwort<br />
$torrent->pass = "";<br />
[/sourcecode]<br />
Leider funktionieren die Link zum steuern der Torrents noch nicht richtig, was aber an der <a href="http://forum.utorrent.com/viewtopic.php?id=27414" target="_blank">PHP-API für WebUI</a> liegen sollte und nicht an dem bisschen Code den ich geschrieben habe, denn eigentlich wollte ich nur ein wenig mit PHP und CSS spielen. <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ansonsten ist eigentlich fast nichts hinzuzufügen, ausser, dass ich das WebInterface nicht weiter entwickeln kann und möchte, jedoch jedem die Möglichkeit dazu geben will nicht auf Dritte angewiesen zu sein.</p>
<p>Benötigt wird für das Ganze natürlich PHP (Version 5.2.4+) unc cURL (Hinzufügen von Torrents)</p>
<a class="downloadlink dlimg" href="http://www.epyx-online.de/download/webuiinterface.zip" title="Version 0.1 heruntergeladen 126 mal" ><img src="http://www.epyx-online.de/wp-content/plugins/download-monitor/img/download.gif" alt="Download uTorrent Web-UI-Interface Version 0.1" /></a>
<p>Der Download wurde soeben aktualisiert und enthält nun auch eine index.php. Leider ist da was durcheinander geraten und ich rate jedem das neue Archiv zu ziehen. Das Archiv das eine webinterface.php mit Zugangsdaten enthält, kann man getrost vergessen. Zum einen sind das Fakedaten, die nur testweise  bei uTorrent erstellt wurden und zum anderen benutze ich keine uTorrent mehr. <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/" title="Sonderzeichen mit PHP ersetzen (15. Februar 2008)">Sonderzeichen mit PHP ersetzen</a> (2)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/" title="Mobil-Geräte mit PHP erkennen (15. Februar 2008)">Mobil-Geräte mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/" title="Mobil-Ger&auml;te mit PHP erkennen (15. Februar 2008)">Mobil-Ger&auml;te mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/" title="Joomla und phpBB Last Posts (2. Februar 2008)">Joomla und phpBB Last Posts</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/" title="Alle Netzwerkinterfaces auflisten (10. August 2007)">Alle Netzwerkinterfaces auflisten</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sonderzeichen mit PHP ersetzen</title>
		<link>http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/</link>
		<comments>http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 21:11:13 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sonderzeichen]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/</guid>
		<description><![CDATA[Für Menschen die sich wahrlich Mühe geben Ihre Seite und deren Inhalt so valide wie möglich zu halten, gehört es ja bekanntlich zum guten Ton das als Charset UTF-8 benutzt wird.
Leider hat dieser Zeichensatz den Nachteil, dass Umlaut und Sonderzeichen mit sogenannten "named entities" dargestellt werden sollte, was scheinbar nicht jeden erreicht hat.
Da sowas auch [...]]]></description>
			<content:encoded><![CDATA[<p>Für Menschen die sich wahrlich Mühe geben Ihre Seite und deren Inhalt so valide wie möglich zu halten, gehört es ja bekanntlich zum guten Ton das als Charset UTF-8 benutzt wird.</p>
<p>Leider hat dieser Zeichensatz den Nachteil, dass Umlaut und Sonderzeichen mit sogenannten "<em>named entities</em>" dargestellt werden sollte, was scheinbar nicht jeden erreicht hat.</p>
<p>Da sowas auch mal gerne in News-Feeds der Fall ist, dem sei preg_replace wärmestens ermpfohlen. Darüber hinaus habe ich noch eine kleine aber feine Funktion für euch, mit der man die grundlegensten Umlaute sowie Sonderzeichen aus dem zu verarbeitenen Text fischen kann.</p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">function</span> convertUmlaute<span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #666666; font-style: italic;">//DIE UMLAUTE WERDEN KONVERTIERT</span><br />
<span style="color: #000088;">$pattern1</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ã¤/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace1</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#228;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern1</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern2</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ã¶/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace2</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#246;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern2</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern3</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ã¼/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace3</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#252;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern3</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace3</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern1a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ã„/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace1a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#196;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern1a</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace1a</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern2a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ã–/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace2a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#214;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern2a</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace2a</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000088;">$pattern3a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/Ãœ/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace3a</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#220;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern3a</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace3a</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern4</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/ÃŸ/&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$replace4</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#xDF;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern4</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace4</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pattern4</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/&amp;/&quot;</span><span style="color: #339933;">;</span>\r\n<br />
<span style="color: #000088;">$replace4</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;#38;&quot;</span><span style="color: #339933;">;</span>\r\n<br />
<span style="color: #000088;">$text</span><span style="color: #339933;">=</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern4</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace4</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$text</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Vielleicht nicht so elegant, wies sein könnte, aber es funktioniert und ist für morgens um halb 3 nicht ganz übel <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/" title="Web-Interface für Torrent WebUI (16. Februar 2008)">Web-Interface für Torrent WebUI</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/" title="Mobil-Geräte mit PHP erkennen (15. Februar 2008)">Mobil-Geräte mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/" title="Mobil-Ger&auml;te mit PHP erkennen (15. Februar 2008)">Mobil-Ger&auml;te mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/" title="Joomla und phpBB Last Posts (2. Februar 2008)">Joomla und phpBB Last Posts</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2009-10-25/qt-qthreads/" title="[Qt] QThreads (25. Oktober 2009)">[Qt] QThreads</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mobil-Ger&#228;te mit PHP erkennen</title>
		<link>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/</link>
		<comments>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 21:03:37 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/</guid>
		<description><![CDATA[Da ich momentan verstärkt mit Skriptsprachen rumhantiere (eigenes Web-Interface für ÂµTorrent, Spielerreien mit GoogleMaps) und die ein oder andere Hilfsfunktion dabei benötige, fallen ab und an auch recht brauchbare Funktionen an.
Zwar habe ich bei manchen auch nur Google bemüht, aber wem ich die Suche ersparen kann, dem sei hier mit geholfen. 
Diese Funktion diente im [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich momentan verstärkt mit Skriptsprachen rumhantiere (eigenes Web-Interface für ÂµTorrent, Spielerreien mit GoogleMaps) und die ein oder andere Hilfsfunktion dabei benötige, fallen ab und an auch recht brauchbare Funktionen an.</p>
<p>Zwar habe ich bei manchen auch nur Google bemüht, aber wem ich die Suche ersparen kann, dem sei hier mit geholfen. </p>
<p>Diese Funktion diente im eigentlichen Sinn nur dazu mein PSP zu erkennen und das jeweilige Layout für Mobilgeräte wie PDAs und Palms zu laden. </p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">function</span> check_mobile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$agents</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Windows CE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Pocket'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Mobile'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Portable'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Smartphone'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'SDA'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'PDA'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Handheld'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Symbian'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'WAP'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Palm'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Avantgo'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'cHTML'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'BlackBerry'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Opera Mini'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Nokia'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'PSP'</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// Prüfen der Browserkennung</span><br />
&nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$agents</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$agents</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Aufgerufen wird die Funktion natürlich folgendermaßen und kann auch gleich zur Entscheidung herangezogen werden :</p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>check_mobile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Mobil-Gerät&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Kein Mobil-Gerät&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/" title="Mobil-Geräte mit PHP erkennen (15. Februar 2008)">Mobil-Geräte mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/" title="Web-Interface für Torrent WebUI (16. Februar 2008)">Web-Interface für Torrent WebUI</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/" title="Sonderzeichen mit PHP ersetzen (15. Februar 2008)">Sonderzeichen mit PHP ersetzen</a> (2)</li>
	<li><a href="http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/" title="Joomla und phpBB Last Posts (2. Februar 2008)">Joomla und phpBB Last Posts</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2009-10-25/qt-qthreads/" title="[Qt] QThreads (25. Oktober 2009)">[Qt] QThreads</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mobil-Geräte mit PHP erkennen</title>
		<link>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/</link>
		<comments>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 21:03:37 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/</guid>
		<description><![CDATA[Da ich momentan verstärkt mit Skriptsprachen rumhantiere (eigenes Web-Interface für ÂµTorrent, Spielerreien mit GoogleMaps) und die ein oder andere Hilfsfunktion dabei benötige, fallen ab und an auch recht brauchbare Funktionen an.
Zwar habe ich bei manchen auch nur Google bemüht, aber wem ich die Suche ersparen kann, dem sei hier mit geholfen. 
Diese Funktion diente im [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich momentan verstärkt mit Skriptsprachen rumhantiere (eigenes Web-Interface für ÂµTorrent, Spielerreien mit GoogleMaps) und die ein oder andere Hilfsfunktion dabei benötige, fallen ab und an auch recht brauchbare Funktionen an.</p>
<p>Zwar habe ich bei manchen auch nur Google bemüht, aber wem ich die Suche ersparen kann, dem sei hier mit geholfen. </p>
<p>Diese Funktion diente im eigentlichen Sinn nur dazu mein PSP zu erkennen und das jeweilige Layout für Mobilgeräte wie PDAs und Palms zu laden. </p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">function</span> check_mobile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$agents</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Windows CE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Pocket'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Mobile'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Portable'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Smartphone'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'SDA'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'PDA'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Handheld'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Symbian'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'WAP'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Palm'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Avantgo'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'cHTML'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'BlackBerry'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Opera Mini'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'Nokia'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'PSP'</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// Prüfen der Browserkennung</span><br />
&nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$agents</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$agents</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Aufgerufen wird die Funktion natürlich folgendermaßen und kann auch gleich zur Entscheidung herangezogen werden :</p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>check_mobile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Mobil-Gerät&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Kein Mobil-Gerät&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen/" title="Mobil-Ger&auml;te mit PHP erkennen (15. Februar 2008)">Mobil-Ger&auml;te mit PHP erkennen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/" title="Web-Interface für Torrent WebUI (16. Februar 2008)">Web-Interface für Torrent WebUI</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/" title="Sonderzeichen mit PHP ersetzen (15. Februar 2008)">Sonderzeichen mit PHP ersetzen</a> (2)</li>
	<li><a href="http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/" title="Joomla und phpBB Last Posts (2. Februar 2008)">Joomla und phpBB Last Posts</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2009-10-25/qt-qthreads/" title="[Qt] QThreads (25. Oktober 2009)">[Qt] QThreads</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Joomla und phpBB Last Posts</title>
		<link>http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/</link>
		<comments>http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 19:28:51 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/</guid>
		<description><![CDATA[Wer Joomla im Einsatz hat und nicht gerade auf JoomlaForum setzt und lieber phpBB einsetzen m&#246;chte, der wird schon oft nach einer M&#246;glichkeit gesucht haben sicher die letzten Themen/Topics anzeigen zu lassen oder diese sogar als Men&#252;-Element, oder joomlatypisch als &#34;Module&#34; einzubinden.
&#160;
Nat&#252;rlich gibt es da schon eine Komponente, jedoch (das ist meine aktuelle Kenntniss) muss [...]]]></description>
			<content:encoded><![CDATA[<p>Wer Joomla im Einsatz hat und nicht gerade auf JoomlaForum setzt und lieber phpBB einsetzen m&#246;chte, der wird schon oft nach einer M&#246;glichkeit gesucht haben sicher die letzten Themen/Topics anzeigen zu lassen oder diese sogar als Men&#252;-Element, oder joomlatypisch als &quot;Module&quot; einzubinden.</p>
<p>&#160;</p>
<p>Nat&#252;rlich gibt es da schon eine Komponente, jedoch (das ist meine aktuelle Kenntniss) muss phpBB im gleichen Root wie Joomla liegen und wird leider auch nur sporadisch weiterentwickelt.</p>
<p>&#160;</p>
<p>Da ich Joomla leider nicht mehr einsetze und mittlerweile schon &#252;ber ein Jahr auf WordPress setze, kann ich das Module leider nicht testen. Wer es trotzdem wagen will, dem biete ich das Module als Download an.</p>
<a class="downloadlink dlimg" href="http://www.epyx-online.de/download/Joomla_phpBB_LastPosts.zip" title="Version 0.2 heruntergeladen 148 mal" ><img src="http://www.epyx-online.de/wp-content/plugins/download-monitor/img/download.gif" alt="Download Joomla Letzte Themen Version 0.2" /></a>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2008-03-07/wordpress-pflicht-plugins/" title="WordPress-Pflicht-Plugins (7. März 2008)">WordPress-Pflicht-Plugins</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-01-17/windows-live-writer/" title="Windows Live Writer (17. Januar 2008)">Windows Live Writer</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-02-16/web-interface-fuer-torrent-webui/" title="Web-Interface für Torrent WebUI (16. Februar 2008)">Web-Interface für Torrent WebUI</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/sonderzeichen-mit-php-ersetzen/" title="Sonderzeichen mit PHP ersetzen (15. Februar 2008)">Sonderzeichen mit PHP ersetzen</a> (2)</li>
	<li><a href="http://www.epyx-online.de/2008-02-15/mobil-gerte-mit-php-erkennen-2/" title="Mobil-Geräte mit PHP erkennen (15. Februar 2008)">Mobil-Geräte mit PHP erkennen</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2008-02-02/joomla-und-phpbb-last-posts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Neues Madwifi Installationsskript Ubuntu 7.10</title>
		<link>http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/</link>
		<comments>http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 14:20:22 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[HowTos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-fuer-ubuntu-710/</guid>
		<description><![CDATA[Um unter Linux ein Wlandevice mit einem Atheroschipsatz nutzen zu können stehen mittlerweile mehrere Möglichkeiten wie propietäre Treiber, aktuelles Treiber-Release von MadWifi oder das Subversion Repo von MadWifi zur Auswahl.
Propietäre Treiber allen flach, da man den Source nicht patchen kann und ein Betrieb im berüchtigten "Monitor-Mode" fallen dadurch aus. Das ist natürlich schade, denn gerade [...]]]></description>
			<content:encoded><![CDATA[<p>Um unter Linux ein Wlandevice mit einem Atheroschipsatz nutzen zu können stehen mittlerweile mehrere Möglichkeiten wie propietäre Treiber, aktuelles Treiber-Release von MadWifi oder das Subversion Repo von MadWifi zur Auswahl.</p>
<p>Propietäre Treiber allen flach, da man den Source nicht patchen kann und ein Betrieb im berüchtigten "Monitor-Mode" fallen dadurch aus. Das ist natürlich schade, denn gerade der interessiert ja am Meisten. <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Seit Ubuntu 7.10 besteht allerdings die Problematik, dass die Treiber durch HAL nicht entladen werden können und nur "halbherzig" installiert werden.</p>
<p><a TITLE="Madwifi Installations Skript" HREF="http://www.epyx-online.de/wp-content/2007/11/madwifiinst.sh"><strong>Download :</strong> Madwifi Installations Skript</a><a TITLE="Madwifi Installations Skript" HREF="http://www.epyx-online.de/wp-content/2007/11/madwifiinst.sh">Madwifi Installations Skript</a></p>
<p><span id="more-107"></span>Um trotzdem Abhilfe zu schaffen und nicht ständig erneut die Befehle eingeben zu müssen habe ich mein Skript so modifiziert, dass es unter Ubuntu 7.10 lauffähig ist und alle notwendigen Eingriffe im System vornimmt.</p>
<p>Sollten bei der Installation Fehler auftreten, werden diese automatisch in dem File errorlog gespeichert.</p>
<p>[sourcecode language='bash']<br />
#!/bin/sh</p>
<p>#</p>
<p># - Installation des aktuellen SVN MADWIFI-Treibers unter Ubuntu bis Version 7.10</p>
<p># - Automatisches patchen der Sources</p>
<p># - Modifizierung der Restricted Modules</p>
<p># - Installation of latest subversion MADWIFI-modules from subversion trunk under Ubuntu</p>
<p># - automates patching sources</p>
<p># - modifying restricted modules</p>
<p># ePyx @ 14.11.2007</p>
<p>if test "$USER" != "root" ; then</p>
<p>echo "Your user has insuffient priveliges, you should run it as super-user. "</p>
<p>echo "Current you are known as : "$USER"."</p>
<p>exit</p>
<p>else</p>
<p>restrictedmodules="/etc/default/linux-restricted-modules-common"</p>
<p>restrictedmodulesbackup="/etc/default/linux-restricted-modules-common.backup"</p>
<p># Backup des Voreinstellungen für Restricted-Modules</p>
<p>echo "Installation of current Madwifi-Modules for Atheros-Cards"</p>
<p>echo "with automatic modifying source for monitor-mode abilities.\n"</p>
<p>echo "Script now supports  Ubuntu 7.10!!!\n"</p>
<p>echo "#### Store old Settings ####"</p>
<p>mv $restrictedmodules $restrictedmodulesbackup</p>
<p># temporäre Einstellungen schreiben</p>
<p>echo "#### Load temporary settings ####"</p>
<p>echo "DISABLED_MODULES=\"ath_hal\"" > $restrictedmodules</p>
<p>echo "#### Shutting down interfaces ####"</p>
<p>ifconfig ath0 down 2>errorlog > /dev/null</p>
<p>ifconfig wifi0 down 2>errorlog >/dev/null</p>
<p>echo "#### Unloading old modules ####"</p>
<p>rmmod wlan_wep ath_rate_sample ath_rate_onoe ath_pci wlan ath_hal ath_rate_amrr 2>errorlog >/dev/null</p>
<p>echo "#### Downloading SVN trunk ####"</p>
<p>svn checkout http://svn.madwifi.org/madwifi/trunk madwifi 2>errorlog >/dev/null</p>
<p>echo "#### Loading patch ####"</p>
<p>wget http://patches.aircrack-ng.org/madwifi-ng-r2277.patch 2>errorlog >/dev/null</p>
<p>cd madwifi</p>
<p>echo "#### Patching sources ####"</p>
<p>patch -Np1 -i ../madwifi-ng-r2277.patch 2>errorlog >/dev/null</p>
<p>echo "#### Compiling and install new patched modules ####"</p>
<p>make 2>errorlog >/dev/null</p>
<p>make install 2>errorlog >/dev/null</p>
<p>depmod -ae 2>errorlog >/dev/null</p>
<p>modprobe ath_pci 2>errorlog >/dev/null</p>
<p>echo "#### Removing temporary files ####"</p>
<p>cd ..</p>
<p># Einstellungen wiederherstellen</p>
<p>echo "#### Restoring old Settings ####"</p>
<p>mv $restrictedmodulesbackup $restrictedmodules 2>/dev/null >/dev/null</p>
<p>rm -r madwifi 2>errorlog >/dev/null</p>
<p>rm -f madwifi-ng-r2277.patch 2>errorlog >/dev/null</p>
<p>echo "#### Finished ####"</p>
<p>fi</p>
<p>[/sourcecode]</p>
<p>Allerdings soll es einen System-Freeze unter Ubuntu 7.10 und Debian 4 geben, was ich jedoch nicht bestätigen kann, da bei mir beides funktioniert und ich eigenes dafür einen Test-Router im Bekanntenkreis (nur unter Absprache natürlich!!) maltretiert habe und folgendes Ergebnis erzielte.</p>
<p STYLE="text-align: center"><img WIDTH="640" HEIGHT="400" BORDER="0" ALT="Ubuntu 7.10 Packet Injection" SRC="http://www.epyx-online.de/wp-content/gallery/screenshots/airck-ng-madwifi-ubuntu710_rm.png" /></p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-07-17/madwifi-ng-installationsskript/" title="Madwifi-NG Installationsskript (17. Juli 2007)">Madwifi-NG Installationsskript</a> (3)</li>
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/linux-wlan-wep/" title="Wlan unter Linux (WEP) (7. Mai 2007)">Wlan unter Linux (WEP)</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/" title="RSS 2.0 parsen (3. Oktober 2007)">RSS 2.0 parsen</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Registry</title>
		<link>http://www.epyx-online.de/2007-10-10/windows-registry/</link>
		<comments>http://www.epyx-online.de/2007-10-10/windows-registry/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 13:15:40 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[ATL / MFC]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-10-10/windows-registry/</guid>
		<description><![CDATA[Jeder der ab und an Programme schreibt und diese eventuell weitergeben möchte, der wird irgendwann vor einer Frage stehen.
"Wie speichere ich meine Daten, so das der Benutzer sie beim nächsten Start des Programms aufrufen kann!?"
Prinzipiell gibt es zwei Lösungswege, die auch in der Praxis eingesetzt werden.
Der erste Weg, wäre das Erstellen von Konfigurationsdateien, meist mit [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder der ab und an Programme schreibt und diese eventuell weitergeben möchte, der wird irgendwann vor einer Frage stehen.</p>
<p>"Wie speichere ich meine Daten, so das der Benutzer sie beim nächsten Start des Programms aufrufen kann!?"</p>
<p>Prinzipiell gibt es zwei Lösungswege, die auch in der Praxis eingesetzt werden.</p>
<p>Der erste Weg, wäre das Erstellen von Konfigurationsdateien, meist mit der Endung ini, die alle wichtigen Einstellungen enthalten. Dieser Weg hat natürlich den Vorteil, dass die Einstellungen schneller gesichert oder im Notfall auch von Hand durch einen Editor verändert werden können.</p>
<p><span id="more-88"></span></p>
<p>Der zweite Weg geht über die Windows-Registry, wo Einstellungen innerhalb von Registry-Schlüsseln gespeichert werden. Da dies nicht gerade einfach ist und oft Probleme macht, möchte ich gern eine Art Anleitung zu diesem Thema erstellen.</p>
<h1 align="left">MFC-Zugriff</h1>
<p>Die meisten Funktionen bei der Arbeit mit der Registry erfordern beim Aufruf bestimmt Datentypen, die mit übergeben werden, hier die Wichtigsten:</p>
<p>hKeyParent: Hauptschlüssel der Registry wie zum Beispiel HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER usw.<br />
lpszKeyName: Pfad des Unterschlüssels wie zum Beispiel SOFTWARE, SYSTEM usw.<br />
samDesired: Zugriffsart KEY_READ, KEY_WRITE, KEY_QUERY_VALUE, KEY_ALL_ACCESS. Halt Lesen (Read) , Schreiben (Write) und Vollzugriff (All Access).</p>
<p>Bei der Zugriffsart ist darauf zu achten, dass man weiß was man machen will. Will man zum Beispiel eine  Zeichenfolge schreiben, macht KEY_READ keinen wirklichen Sinn, für Vollzugriff (Lesen und Schreiben) sollte KEY_ALL_ACCESS benutzt werden usw.</p>
<h2>1. Schlüsselzugriff</h2>
<p>Als Erstes möchte ich mich mit den wirklich unvermeidbaren Methoden beschäftigen, die man sich meiner Meinung nach sehr schnell zu merken kann.</p>
<h3>1.1 Schlüssel erstellen</h3>
<p>[sourcecode language='C'] RegKey.Create (HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired = KEY_ALL_ACCESS);[/sourcecode]<br />
Die Create-Methode ist zweierlei wirksam. Denn existiert der Schlüssel nicht, so wird er erzeugt, ist er bereits existent so wird er geöffnet, daher stelle ich die Create-Methode vor die Method Open.</p>
<h3>1.1 Schlüssel Öffnen</h3>
<p>[sourcecode language='c'] RegKey.Open( HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired = KEY_ALL_ACCESS);[/sourcecode]</p>
<h3>1.2 Schlüssel Schliessen</h3>
<p>[sourcecode language='c'] RegKey.Close();        // Wer hätte das gedacht <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> [/sourcecode]</p>
<h3>1.3 Unterschlüssel auflisten</h3>
<p>Oftmals muss man mehrere Schlüssel nacheinander öffnen, oder benötigt alle SubKeys innerhalb eines Schlüssels.<br />
[sourcecode language='c']<br />
CRegKey Programm;		// Hauptkey</p>
<p>CRegKey Feed;	                  // späterer SubKey	int iLastError = 0;                 // Variable für Fehler</p>
<p>TCHAR szSubKeyName[255];</p>
<p>DWORD cName = 255;</p>
<p>DWORD index = 0;</p>
<p>if (Programm.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\GrabYourFeeds\\"), KEY_READ) == ERROR_SUCCESS)</p>
<p>{</p>
<p>while ((iLastError = Programm.EnumKey(index,szSubKeyName, &amp;cName,0))<br />
!= ERROR_NO_MORE_ITEMS)</p>
<p>{</p>
<p>TCHAR path[255];</p>
<p>ULONG len1 = 255;</p>
<p>TCHAR name[255];</p>
<p>ULONG len2 = 255;</p>
<p>TCHAR url[255];</p>
<p>wsprintf(path, TEXT("SOFTWARE\\GrabYourFeeds\\%s\\") ,szSubKeyName);</p>
<p>if (Feed.Open(HKEY_CURRENT_USER,path,KEY_READ) == ERROR_SUCCESS)</p>
<p>{</p>
<p>if (Feed.QueryValue( TEXT("Name") ,NULL,&amp;name, &amp;len1) == ERROR_SUCCESS )</p>
<p>{</p>
<p>cout << "Feed-Name : " << name << endl;</p>
<p>}</p>
<p>if (Feed.QueryValue( TEXT("URL") ,NULL,&amp;url, &amp;len2) == ERROR_SUCCESS )</p>
<p>{</p>
<p>cout << "Feed-URL : " << url << endl;</p>
<p>}</p>
<p>Feed.Close();</p>
<p>}</p>
<p>index++;</p>
<p>cName = 255;</p>
<p>}</p>
<p>}<br />
Programm.Close();<br />
[/sourcecode]</p>
<h2>2. Wertzugriff</h2>
<p style="margin-left: 18pt">Nachdem wir uns mit dem elementaren Öffnen/Erstellen und Schließen von Registry-Schlüsseln befasst haben werden wir uns nun den Zugriff auf Registry-Werte vornehmen. Die Werte der Registry unterscheiden sich im Wesentlichen nur in 2 Arten von Datentypen, DWORD und szString. DWORD wird hauptsächlich für Zahlenwerte und szString für Zeichenfolgen verwendet, was natürlich immer in einer Umwandlung ausartet. Zum Setzen von Werten wird die Methode CRegKey::SetValue()<span style="font-family: Arial; font-size: 8pt"><br />
</span>und zum Lesen CRegKey::QueryValue() verwendet</p>
<h3>2.1 DWORD</h3>
</p>
<p style="margin-left: 18pt">Bei DWORD-Werten handelt es sich meist um Zahlenwerte, wobei DWORD als Datentyp gewählt wurde, da es sich um ein Double Word handelt entspricht es immer der kleinsten Dateneinheit des Hostsystems entspricht..</p>
<p style="margin-left: 18pt">Eine eventuell treffendere Definition, allerdings auf englisch, :</p>
<p style="margin-left: 18pt"><span id="intelliTxt"></span></p>
<blockquote><p>DWORD is not a standard C datatype.  Typically it represents a double word.  On a 16-bit machine a WORD would be 16 bits, on a 32-bit machine, it would be 32 bits.</p></blockquote>
<h4>2.1.1 DWORD Lesen</h4>
<p>[sourcecode language='c']<br />
CRegKey RegKey;</p>
<p>DWORD dwValue;</p>
<p>RegKey.Open( HKEY_CURRENT_USER,  "SOFTWARE\\TEST", KEY_READ);</p>
<p>RegKey.QueryValue( dwValue, "DWORDEintrag");</p>
<p>RegKey.Close();<br />
[/sourcecode]</p>
<h4>2.1.2 DWORD Schreiben</h4>
<p>[sourcecode language='c']<br />
CRegKey RegKey;</p>
<p>RegKey.Open( HKEY_CURRENT_USER, "SOFTWARE\\TEST", KEY_WRITE);</p>
<p>RegKey.SetValue( 4711, "DWORDEintrag");</p>
<p>RegKey.Close();<br />
[/sourcecode]</p>
<h3>2.2 Zeichenfolgen</h3>
<p style="margin-left: 18pt">Zeichenfolgen sind in der Registry weit verbreitet. Leider ist es nicht immer so komfortabel Zeichenfolgen aus der Registry zu lesen, da als Variablentyp wird anstelle der komfortablen CStrings ein char mit konstanter Länge verwendet werden muss.</p>
<p style="margin-left: 18pt">Beim Schreiben ist natürlich alles wieder in Butter, denn die SetValue-Methode nimmt garnichts anderes als CStrings oder per Unicode gecasteten _T("text") Zeichenfolgen an.</p>
<h4>2.2.1 Zeichenfolgen Lesen</h4>
<p>[sourcecode language='c']<br />
CRegKey RegKey;<br />
char buffer[256];<br />
DWORD dwCount = sizeof( buffer);<br />
RegKey.Open( HKEY_CURRENT_USER, "SOFTWARE\\TEST", KEY_READ);<br />
RegKey.QueryValue( buffer, "StringEintrag", &amp;dwCount);<br />
RegKey.Close();<br />
[/sourcecode]</p>
<h4>2.2.2 Zeichenfolgen Schreiben</h4>
<p>[sourcecode language='c']<br />
CRegKey RegKey;<br />
RegKey.Open( HKEY_CURRENT_USER,"SOFTWARE\\TEST", KEY_WRITE);<br />
RegKey.SetValue( "Hallo Welt", "StringEintrag");<br />
RegKey.Close();<br />
[/sourcecode]</p>
<h2>3. Fehlercodes</h2>
<p>Zum Glück gibt es in der Registry mehr oder weniger nur 2 Fehlercodes. Einen für fehlerfreier Zugriff und das der SChlüssel nicht existiert.  Für den ersten Fall, welcher oben im Beispiel schon im Einsatz zu sehen war gibt es ERROR_SUCCESS. Sollte ein von euch angesprochener Key nciht existieren, so gibt jede Funktion  ERROR_FILE_NOT_FOUND.</pre>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-08-10/uptime-dll-source/" title="Quellcode Uptime.dll (10. August 2007)">Quellcode Uptime.dll</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-08-10/installierte-software-auslesen/" title="Auslesen installierter Software (10. August 2007)">Auslesen installierter Software</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/" title="Alle Netzwerkinterfaces auflisten (10. August 2007)">Alle Netzwerkinterfaces auflisten</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-uptime-c/" title="Windows-Uptime in C (7. Mai 2007)">Windows-Uptime in C</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-version-c/" title="Windows Version in C ermitteln (7. Mai 2007)">Windows Version in C ermitteln</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-10-10/windows-registry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATOM 0.3 parsen</title>
		<link>http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/</link>
		<comments>http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 18:14:16 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/</guid>
		<description><![CDATA[Wie versprochen stelle ich nun den verwendeten Code zum Parsen vom ATOM 0.3 online. Genauso wie das Beispiel mit dem RSS-Feed, baut auch dieser Code auf das TinyXML-Projekt und ist dafür notwendig.
Der gepostete Quellcode sollte, entsprechende Kenntnisse vorrausgestzt, unter Windows und Linux laufen und die dem Archiv begefügte "feed.xml" parsen.

[sourcecode language='c']
/*	Demonstration des Quellcodes zum Parsen [...]]]></description>
			<content:encoded><![CDATA[<p>Wie versprochen stelle ich nun den verwendeten Code zum Parsen vom ATOM 0.3 online. Genauso wie das Beispiel mit dem RSS-Feed, baut auch dieser Code auf das <a href="http://sourceforge.net/projects/tinyxml">TinyXML</a>-Projekt und ist dafür notwendig.</p>
<p>Der gepostete Quellcode sollte, entsprechende Kenntnisse vorrausgestzt, unter Windows und Linux laufen und die dem Archiv begefügte "feed.xml" parsen.<br />
<span id="more-78"></span><br />
[sourcecode language='c']<br />
/*	Demonstration des Quellcodes zum Parsen von ATOM 0.3 Feeds<br />
Autor : Daniel Kotschate<br />
Alias : ePyx<br />
Webseite : http://www.epyx-online.de<br />
Datum : 04.10.2007</p>
<p>Benutzt wurde TinyXML !! Nicht vergessen !!<br />
*/</p>
<p>#include <iostream></iostream></p>
<p>#include "tinyxml.h"</p>
<p>using namespace std;</p>
<p>void parseATOM03(void)<br />
{<br />
TiXmlDocument doc("feed.xml");</p>
<p>if(!doc.LoadFile())<br />
{</p>
<p>cout << "Fehler beim Laden der Datei aufgetreten : " << doc.ErrorDesc() << endl;	}<br />
else<br />
{</p>
<p>TiXmlElement* feed = doc.FirstChildElement("feed");</p>
<p>if ( feed )<br />
{<br />
TiXmlElement* descElement = feed->FirstChildElement("title");<br />
if (descElement)<br />
{<br />
cout << "Beschreibung : " << descElement->FirstChild()->ToText()->Value() << endl;<br />
}</p>
<p>TiXmlElement* linkElement = feed->FirstChildElement("link");<br />
if (linkElement)<br />
{<br />
cout << "Feed-Link : " << linkElement->Attribute("href") << endl << endl;<br />
}</p>
<p>// Items parsen ;(</p>
<p>for( TiXmlElement* aElement = feed->FirstChildElement("entry"); aElement; aElement = aElement->NextSiblingElement("entry") )<br />
{<br />
// Infos parsen</p>
<p>string title, link;</p>
<p>TiXmlElement* entrytitle = aElement->FirstChildElement("title");<br />
title = entrytitle->FirstChild()->ToText()->Value();</p>
<p>TiXmlElement* entrylink = aElement->FirstChildElement("link");<br />
link = entrylink->Attribute("href");</p>
<p>cout << "Titel : " << title << endl<br />
<< "Link  : " << link << endl << endl;<br />
}<br />
}<br />
}</p>
<p>}</p>
<p>int main()<br />
{<br />
parseATOM03();<br />
return 0;<br />
}<br />
[/sourcecode]<br />
Da das Ganze ja mehr oder weniger als Art Demo gedacht ist, sind natürlich alle notwendigen Dateien im angehängten Paket enthalten und kann promblemlos, entweder durch das bestehende Visual Studio 2005 Projekt oder mit jedem anderen beliebigen C-Compiler übersetzt werden.  Morgen bzw. spätestens am WE wird noch ein Artikel geben der dem Aufbauf und der Struktur von ATOM 0.3 ein wenig genauer unter die Lupe nehmen wird.</p>
  <a href="http://www.epyx-online.de/download/parseatom03.zip" title="Downloaded 17 times">Example ATOM 0.3 parsen</a> - 

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-10-10/windows-registry/" title="Windows Registry (10. Oktober 2007)">Windows Registry</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/" title="RSS 2.0 parsen (3. Oktober 2007)">RSS 2.0 parsen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-08-16/tools-pcb-mit-freeware/" title="[Tools] PCB mit Freeware (16. August 2009)">[Tools] PCB mit Freeware</a> (2)</li>
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufbau von RSS 2.0 Feeds</title>
		<link>http://www.epyx-online.de/2007-10-03/rss-feeds-20-aufbau/</link>
		<comments>http://www.epyx-online.de/2007-10-03/rss-feeds-20-aufbau/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 14:50:23 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[News-Feeds]]></category>
		<category><![CDATA[Wissen]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-10-03/rss-feeds-20-aufbau/</guid>
		<description><![CDATA[Eines haben Newsfeeds gemeinsam, sie beginnen mit der XML-Deklaration, die festlegt um welche Version es sich handelt und welche Sprache beim Erstellen verwendet wurde.
[sourcecode lang="xml"]&#38;amp;lt; ?xml version="1.0" encoding="UTF-8"?&#38;amp;gt;[/sourcecode]
Na der XML-Deklaration folgt bei RSS-Feeds das RSS-Child, das in erster Hinsicht Aufschluss darüber gibt, um welche RSS-Version es sich handelt und welche Standards implementiert/befolgt wurden.

[sourcecode language='xml']

xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>

[/sourcecode]
Das wars [...]]]></description>
			<content:encoded><![CDATA[<p>Eines haben Newsfeeds gemeinsam, sie beginnen mit der XML-Deklaration, die festlegt um welche Version es sich handelt und welche Sprache beim Erstellen verwendet wurde.<br />
[sourcecode lang="xml"]&amp;amp;lt; ?xml version="1.0" encoding="UTF-8"?&amp;amp;gt;[/sourcecode]<br />
Na der XML-Deklaration folgt bei RSS-Feeds das RSS-Child, das in erster Hinsicht Aufschluss darüber gibt, um welche RSS-Version es sich handelt und welche Standards implementiert/befolgt wurden.<br />
<span id="more-75"></span><br />
[sourcecode language='xml']<br />
<rss version="2.0"><br />
xmlns:content="http://purl.org/rss/1.0/modules/content/"<br />
xmlns:wfw="http://wellformedweb.org/CommentAPI/"<br />
xmlns:dc="http://purl.org/dc/elements/1.1/"<br />
><br />
</rss><br />
[/sourcecode]<br />
Das wars eigentlich schon mit den "unsichtbaren"  Informationen die in einem RSS-Feed stecken, kommen wir also zu den Nutzdaten. Hier werde ich mich allerdings, wie auch in der Abbildung zu sehen, auf die wichtigsten Elemente beschränken, wer dennoch mehr Interesse an den Möglichkeiten hat sollte einen Blick auf die W3C-Seite werfen und sich über den Standard kundig machen.<br />
[sourcecode language='xml']<br />
<channel></channel></p>
<link />http://www.epyx-online.de<br />
<description>Just a moment <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </description><br />
<item></item></p>
<link />http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/<br />
<description><br />
Text <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
</description><br />
[/sourcecode]<br />
Der obige Code-Ausschnitt entspricht dem RSS-Feed-Eintrag meiner Homepage zum Beitrag "RSS 2.0 parsen.  Aber nun zum Eingemachten. Nach dem RSS-Child folgt das sogenannte Channel-Tag, denn bei unserem RSS-Feed handelt es sich um einen Nachrichtenkanal. Dieser Nachrichtenkanal hat wieder untergeordnete Verzweigungen (Childs).  Die direkten Informationen bzgl. des Kanals werden in den Tags "&lt;Title&gt;", "&lt;Description&gt;" und "&lt;Link&gt;" gespeichert.</p>
<ul>
<li>Title = Titel des Kanals</li>
<li>Description = Beschreibung des Kanals</li>
<li>Link = Link zur Seite des Kanals</li>
</ul>
<p>Das Herzstück des Kanals bilden die sogenannten Items (&lt;Item&gt;), welche die eigentlichen Einträge innerhalb des Kanals darstellen. Jedes Item verfügt natürlich wieder über Tags die deren Informationen darstellen, den direkten Aufruf des Eintrages ermöglichen oder eine kurze Zusammenfassung erlauben.</p>
<p>[Bild nicht gefunden]Sollte aus dem Text nicht alles hervorgehen, habe ich nocht eine schematische Abbilung erzeugt, die die Baumstruktur von XML eigentlich ganz gut darstellen kann.</p>
<p>Ich hoffe Ihr seid nun etwas schlauer und der Zauber der News-Feeds ist ein wenig verflogen.</p>
<p>Gruß,</p>
<p>ePyx.</p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-uptime-c/" title="Windows-Uptime in C (7. Mai 2007)">Windows-Uptime in C</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-10-25/qt-qthreads/" title="[Qt] QThreads (25. Oktober 2009)">[Qt] QThreads</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-version-c/" title="Windows Version in C ermitteln (7. Mai 2007)">Windows Version in C ermitteln</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-10-03/rss-feeds-20-aufbau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS 2.0 parsen</title>
		<link>http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/</link>
		<comments>http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 12:50:05 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/</guid>
		<description><![CDATA[Beim Spielen mit TinyXML sind recht brauchbare Sache rausgekommen, die ich bei meinem aktuellen Projekt mit verwende.
Da es eventuell Leute gibt, die sich auch mit dem parsen von XML auseinandersetzen möchte oder auch nur ein Beispiel
jenseits der Doku von TinyXML suchen, habe ich hier mal schnell ein Beispiel zur Verwendung von TinyXML zusammengeklatscht.
Ein weiteres Beispiel [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Spielen mit <a href="http://sourceforge.net/projects/tinyxml">TinyXML</a> sind recht brauchbare Sache rausgekommen, die ich bei meinem aktuellen Projekt mit verwende.<br />
Da es eventuell Leute gibt, die sich auch mit dem parsen von XML auseinandersetzen möchte oder auch nur ein Beispiel<br />
jenseits der Doku von <a href="http://sourceforge.net/projects/tinyxml">TinyXML</a> suchen, habe ich hier mal schnell ein Beispiel zur Verwendung von <a href="http://sourceforge.net/projects/tinyxml">TinyXML</a> zusammengeklatscht.</p>
<p>Ein weiteres Beispiel für ATOM 0.3 werde ich bis Ende der Woche ebenfalls online stellen sowie den exemplarischen Aufbau von RSS 2.0 und ATOM 0.3 tiefgreifender unter die Lupe nehmen.</p>
<p><span id="more-74"></span><br />
[sourcecode language='c']<br />
/*	Demonstration des Quellcodes zum Parsen von RSS 2.0 Feeds<br />
Autor : Daniel Kotschate<br />
Alias : ePyx<br />
Webseite : http://www.epyx-online.de<br />
Datum : 03.10.2007</p>
<p>Benutzt wurde TinyXML !! Nicht vergessen !!<br />
*/</p>
<p>#include <iostream></iostream></p>
<p>#include "tinyxml.h"</p>
<p>using namespace std;</p>
<p>void parseRSS20(void)<br />
{<br />
TiXmlDocument doc("feed.xml");</p>
<p>if(!doc.LoadFile()){</p>
<p>cout << "Fehler beim Laden der Datei aufgetreten : " << doc.ErrorDesc() << endl;<br />
}<br />
else<br />
{<br />
// Version auslesen</p>
<p>TiXmlElement* rssver = doc.FirstChildElement("rss");<br />
if ( rssver )<br />
{<br />
cout << "RSS-Version : " << rssver->Attribute("version") << endl;<br />
}</p>
<p>TiXmlElement* channel = rssver->FirstChildElement("channel");</p>
<p>if ( channel )<br />
{<br />
TiXmlElement* descElement = channel->FirstChildElement("title");<br />
if (descElement)<br />
{<br />
cout << "Beschreibung : " << descElement->FirstChild()->ToText()->Value() << endl;<br />
}</p>
<p>TiXmlElement* linkElement = channel->FirstChildElement("link");<br />
if (linkElement)<br />
{<br />
cout << "FeedLink : " << linkElement->FirstChild()->ToText()->Value() << endl << endl;<br />
}</p>
<p>// Items parsen ;(</p>
<p>for( TiXmlElement* aElement = channel->FirstChildElement("item"); aElement; aElement = aElement->NextSiblingElement("item") )<br />
{<br />
string title, link;</p>
<p>TiXmlElement* itemtitle = aElement->FirstChildElement("title");<br />
title = itemtitle->FirstChild()->ToText()->Value();</p>
<p>TiXmlElement* itemlink = aElement->FirstChildElement("link");<br />
link = itemlink->FirstChild()->ToText()->Value();</p>
<p>cout << "Titel : " << title << endl<br />
<< "Link  : " << link << endl << endl;<br />
}</p>
<p>}<br />
}<br />
}</p>
<p>int main()<br />
{<br />
parseRSS20();<br />
return 0;<br />
}<br />
[/sourcecode]<br />
Hier noch schnell der gesamte Quelltext zum Testen mit Visual Studio 2005, allerding sollte der Kram auch unter Linux oder mit anderen Compilern funktionieren.</p>
  <a href="http://www.epyx-online.de/download/parserss20_example.zip" title="Downloaded 26 times">Example RSS 2.0 parsen</a> - 

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-10-04/atom03-feeds-parsen/" title="ATOM 0.3 parsen (4. Oktober 2007)">ATOM 0.3 parsen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-29/linux-uptime-umrechnen/" title="[Linux] Uptime umrechnen (29. Juli 2009)">[Linux] Uptime umrechnen</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2009-07-27/linux-uptime-mit-c-auslesen/" title="[Linux] Uptime mit C auslesen (27. Juli 2009)">[Linux] Uptime mit C auslesen</a> (1)</li>
	<li><a href="http://www.epyx-online.de/2007-10-10/windows-registry/" title="Windows Registry (10. Oktober 2007)">Windows Registry</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-11-24/neues-madwifi-installationsskript-ubuntu-710/" title="Neues Madwifi Installationsskript Ubuntu 7.10 (24. November 2007)">Neues Madwifi Installationsskript Ubuntu 7.10</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-10-03/rss20-feeds-parsen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quellcode Uptime.dll</title>
		<link>http://www.epyx-online.de/2007-08-10/uptime-dll-source/</link>
		<comments>http://www.epyx-online.de/2007-08-10/uptime-dll-source/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 11:15:31 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[ATL / MFC]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-08-10/uptime-dll-source/</guid>
		<description><![CDATA[Da die Uptime.dll mehr oder weniger kleine Standardfunktionen beinhaltet werde ich sie komplett reinstellen
ohne für jede Funktionen einen Extrapost zu machen.
Der Quellcode ist nicht wirklich MFC sondern eher C unter Nutzung der WinAPI, habt bitte Rücksicht auf
das Kauderwelsch im Quelltext.  

Die "main.c"
[sourcecode language='c']
/* Quelltextdatei "main.c" --- Reines C */
// Headerdatei einbinden
#include "main.h"
#include 
#include 
#include [...]]]></description>
			<content:encoded><![CDATA[<p>Da die Uptime.dll mehr oder weniger kleine Standardfunktionen beinhaltet werde ich sie komplett reinstellen<br />
ohne für jede Funktionen einen Extrapost zu machen.</p>
<p>Der Quellcode ist nicht wirklich MFC sondern eher C unter Nutzung der WinAPI, habt bitte Rücksicht auf<br />
das Kauderwelsch im Quelltext. <img src='http://www.epyx-online.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-51"></span></p>
<p>Die "main.c"<br />
[sourcecode language='c']<br />
/* Quelltextdatei "main.c" --- Reines C */<br />
// Headerdatei einbinden<br />
#include "main.h"<br />
#include <windows><br />
#include <iostream><br />
#include <sstream><br />
#include <string><br />
#include <cstring><br />
#include "Shlwapi.h"<br />
#include <tchar><br />
#include <stdio></stdio></tchar></cstring></string></sstream></iostream></windows></p>
<p>#ifndef BITSPERBYTE<br />
#define BITSPERBYTE 8<br />
#endif</p>
<p>#define IS_BIT(val, bit) ((val) &#038; (1 << (bit)))</p>
<p>#pragma comment(lib, "shlwapi.lib")</p>
<p>using namespace std;</p>
<p>__declspec(dllexport) string getDRIVES(void)<br />
{<br />
DWORD dwLogicalDrives, x, Drive;<br />
char szRoot[32];<br />
int iDrives=0;<br />
struct driv<br />
{<br />
string name;<br />
char typ[100];<br />
};<br />
string Drives;</p>
<p>driv Laufwerk;</p>
<p>dwLogicalDrives = GetLogicalDrives();<br />
for(x = 0; x < (sizeof(dwLogicalDrives) * BITSPERBYTE); x++)<br />
{<br />
if(IS_BIT(dwLogicalDrives, x))<br />
{<br />
PathBuildRoot(szRoot, x);<br />
Drive = GetDriveType(szRoot);<br />
Laufwerk.name = szRoot;<br />
iDrives =  GetDriveType(szRoot);<br />
switch(iDrives)<br />
{<br />
case 2:<br />
Drives = Drives + "Laufwerk : " + szRoot + " USB-Drives \r\n";<br />
break;<br />
case 3:<br />
Drives = Drives + "Laufwerk : " + szRoot + " Festplatte \r\n";<br />
break;<br />
case 4:<br />
Drives = Drives + "Laufwerk : " + szRoot + " Network-Share \r\n";<br />
break;<br />
case 5:<br />
Drives = Drives + "Laufwerk : " + szRoot + " CD/DVD \r\n";<br />
break;<br />
case 6:<br />
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 6\t\n";<br />
break;<br />
case 7:<br />
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 7 \t\n";<br />
break;<br />
case 8:<br />
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 8\t\n";<br />
break;<br />
default:<br />
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": " + (char )iDrives;<br />
break;<br />
}<br />
}<br />
}<br />
return Drives;<br />
}</p>
<p>__declspec(dllexport) string getRAM(void)<br />
{<br />
MEMORYSTATUS lpBuffer;<br />
string RAM;<br />
char szString[1024]; // Fiktiver Wert</p>
<p>lpBuffer.dwLength = sizeof(MEMORYSTATUS);<br />
GlobalMemoryStatus (&#038;lpBuffer);</p>
<p>sprintf_s(szString, "Speichernutzung: %d %% \r\nGesamter Speicher: %d MB \r\nVerfügbarer Speicher: %d MB", lpBuffer.dwMemoryLoad, lpBuffer.dwTotalPhys/1024/1024, lpBuffer.dwAvailPhys/1024/1024);<br />
RAM = szString;<br />
return RAM;<br />
}</p>
<p>__declspec(dllexport) string getUptime(void)<br />
{<br />
int uptime = GetTickCount() / 1000;<br />
string returnstr,sStunden,sMinuten,sSekunden;</p>
<p>/*GetTickCount() liefert die Anzahl der Millisekunden<br />
die verstichen sind, seitdem Windows gestartet wurde. */<br />
int Stunden = uptime/60/60;<br />
int Minuten = uptime/60-uptime/60/60*60;<br />
int Sekunden = uptime-uptime/60*60;<br />
ostringstream outStream;<br />
outStream << Stunden;<br />
sStunden = outStream.str();<br />
outStream.str("");<br />
outStream << Minuten;<br />
sMinuten = outStream.str();<br />
outStream.str("");<br />
outStream << Sekunden;<br />
sSekunden = outStream.str();<br />
outStream.str("");<br />
//returnstr += "Windows Uptime: \t";<br />
returnstr += sStunden + " Stunden ";<br />
returnstr += sMinuten + " Minuten\r\n";<br />
returnstr += sSekunden + " Sekunden";<br />
return returnstr;<br />
}</p>
<p>__declspec(dllexport) string getVersion(void)<br />
{<br />
OSVERSIONINFO version;</p>
<p>string WindowsVersion;<br />
version.dwOSVersionInfoSize=sizeof(version);<br />
if (GetVersionEx(&#038;version))<br />
{<br />
if (version.dwPlatformId == VER_PLATFORM_WIN32s)<br />
WindowsVersion = "Win32 ";<br />
else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)<br />
{<br />
if(version.dwMinorVersion == 0 &#038;& (strchr(version.szCSDVersion,'B')==NULL)<br />
&#038;& (strchr(version.szCSDVersion,'C')==NULL))<br />
WindowsVersion =  "Windows 95 ";<br />
else<br />
if(version.dwMinorVersion == 0&#038;& (strchr(version.szCSDVersion,'B')!=NULL))<br />
WindowsVersion = "Windows 95 OSR 2 ";<br />
else<br />
if(version.dwMinorVersion == 0 &#038;& (strchr(version.szCSDVersion,'C')!=NULL))<br />
WindowsVersion = "Windows 95 OSR 2.5 ";<br />
else<br />
if(version.dwMinorVersion == 10 &#038;& (strchr(version.szCSDVersion,'A')==NULL))<br />
WindowsVersion = "Windows 98 ";<br />
else if (version.dwMinorVersion == 10<br />
&#038;& (strchr(version.szCSDVersion,'A')!=NULL))<br />
WindowsVersion = "Windows 98 Second Edition ";<br />
}</p>
<p>else if (version.dwPlatformId == VER_PLATFORM_WIN32_NT)<br />
if (version.dwMinorVersion == 90)<br />
WindowsVersion = "Windows Millenium Edition ";<br />
else if  (version.dwMajorVersion==5)<br />
WindowsVersion = "Windows XP ";<br />
else<br />
{<br />
WindowsVersion = "unbekannt ";<br />
return WindowsVersion;<br />
}<br />
if (WindowsVersion != "unbekannt ")<br />
{<br />
ostringstream outStream;<br />
outStream << version.dwMajorVersion;<br />
string MajorVersion = outStream.str();<br />
outStream.str("");<br />
outStream << version.dwMinorVersion;<br />
string MinorVersion = outStream.str();<br />
outStream.str("");<br />
outStream << (version.dwBuildNumber &#038; 0xffff);<br />
string BuildNumber = outStream.str();<br />
outStream.str("");<br />
/*string MajorVersion = version.dwMajorVersion;<br />
string MinorVersion = version.dwMinorVersion;<br />
string BuildNumber = (version.dwBuildNumber &#038; 0xffff);*/<br />
string CSDVersion  = version.szCSDVersion;</p>
<p>// cout <<version><<"."<</version><version><<"."<br />
//	<<(version.dwBuildNumber &#038; 0xffff)<<" "<</version><version><<endl><br />
WindowsVersion += " " + MajorVersion + "." + MinorVersion + "\r\n" + BuildNumber + " " + CSDVersion;<br />
return WindowsVersion;<br />
}<br />
}<br />
else<br />
return "Die Windows Version kann nicht herausgefunden werden.";<br />
}</p>
<p>string getCPUMHZ(void)<br />
{<br />
string speedMHz;<br />
char  MHz[10];<br />
DWORD dwNumber = 0;<br />
DWORD dwData = sizeof(DWORD);<br />
HKEY hKey;<br />
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&#038;hKey);<br />
RegQueryValueEx(hKey,"~MHz",0,0,(BYTE*)&#038;dwNumber,&#038;dwData);<br />
RegCloseKey(hKey);</p>
<p>sprintf_s(MHz,"%d MHz",dwNumber);<br />
speedMHz = MHz;<br />
/*</p>
<p>description = (char *) cDaten;<br />
*/<br />
// cout << " Bezeichnung : " << description << endl;<br />
return speedMHz;<br />
}</p>
<p>string getCPUVendor(void)<br />
{<br />
string vendor;<br />
HKEY hKey;<br />
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&#038;hKey);</p>
<p>DWORD dwData2 = 256;<br />
BYTE cDaten[256] = "";<br />
RegQueryValueEx(hKey,"VendorIdentifier",0,0,cDaten,&#038;dwData2);<br />
vendor = (char *) cDaten;</p>
<p>return vendor;<br />
}</p>
<p>string getCPUDesc(void)<br />
{<br />
string description;<br />
HKEY hKey;<br />
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&#038;hKey);</p>
<p>DWORD dwData2 = 256;<br />
BYTE cDaten[256] = "";<br />
RegQueryValueEx(hKey,"ProcessorNameString",0,0,cDaten,&#038;dwData2);<br />
description = (char *) cDaten;</p>
<p>return description;<br />
}</p>
<p>using namespace std;<br />
// Funktion deklarieren<br />
__declspec(dllexport) string getUptime(void);<br />
__declspec(dllexport) string getVersion(void);<br />
__declspec(dllexport) string getRAM(void);<br />
__declspec(dllexport) string getDRIVES(void);<br />
__declspec(dllexport) string getCPUMHZ(void);<br />
__declspec(dllexport) string getCPUVendor(void);<br />
__declspec(dllexport) string getCPUDesc(void);<br />
#endif // MAIN_H<br />
[/sourcecode]</p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-10-10/windows-registry/" title="Windows Registry (10. Oktober 2007)">Windows Registry</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-uptime-c/" title="Windows-Uptime in C (7. Mai 2007)">Windows-Uptime in C</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-version-c/" title="Windows Version in C ermitteln (7. Mai 2007)">Windows Version in C ermitteln</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-userprofile-c/" title="Windows Benutzerprofil ermitteln in C (7. Mai 2007)">Windows Benutzerprofil ermitteln in C</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-08-10/installierte-software-auslesen/" title="Auslesen installierter Software (10. August 2007)">Auslesen installierter Software</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-08-10/uptime-dll-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alle Netzwerkinterfaces auflisten</title>
		<link>http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/</link>
		<comments>http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 11:03:58 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Code-Snippets]]></category>
		<category><![CDATA[ATL / MFC]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/</guid>
		<description><![CDATA[Ähnlich wie bei der Auflistung der installierten Programme, werden die Informationen vorhandene Netzwerkinterfaces (Netzwerkkarten, DVB-T-Geräte, Firewire-Geräte)  in der Registry abgelegt und können natürlich auch sehr einfach ausgelesen werden.
Wer Interesse hat, der sollte sich den Quellcode zu Gemüte führen und/oder bei Fragen einfach nen Komentar da lassen.
Damit das Ganze funktioniert muss auch hier die &#60;atlbase.h&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Ähnlich wie bei der Auflistung der installierten Programme, werden die Informationen vorhandene Netzwerkinterfaces (Netzwerkkarten, DVB-T-Geräte, Firewire-Geräte)  in der Registry abgelegt und können natürlich auch sehr einfach ausgelesen werden.</p>
<p>Wer Interesse hat, der sollte sich den Quellcode zu Gemüte führen und/oder bei Fragen einfach nen Komentar da lassen.</p>
<p>Damit das Ganze funktioniert muss auch hier die &lt;atlbase.h&gt; inkludiert werden.</p>
<p><span id="more-50"></span><br />
[sourcecode language='c']<br />
void NetList()<br />
{<br />
CRegKey Networkcards;		// Number of networkcards<br />
CRegKey Networinterfaces;	// Description and Interface-UUID<br />
CRegKey Interfacesettings;	// InterfaceSetiings Gateway, IPAdress and so on</p>
<p>// Getting Networkcards</p>
<p>int iLastError = 0;</p>
<p>TCHAR szSubKeyName[255];<br />
DWORD cName = 255;<br />
DWORD index = 0;</p>
<p>if (Networkcards.Open(HKEY_LOCAL_MACHINE,TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\"),KEY_READ) == ERROR_SUCCESS)<br />
{<br />
while ((iLastError = Networkcards.EnumKey(index,szSubKeyName, &#038;cName,0)) != ERROR_NO_MORE_ITEMS)<br />
{<br />
TCHAR path[255];<br />
ULONG len1 = 255;<br />
TCHAR description[255];<br />
ULONG len2 = 255;<br />
TCHAR servicename[255];<br />
ULONG len3 = 255;<br />
TCHAR ip[255];<br />
ULONG len4 = 255;<br />
TCHAR gate[255];<br />
ULONG len5 = 255;<br />
TCHAR subn[255];<br />
ULONG len6 = 255;<br />
TCHAR dhcen[255];</p>
<p>wsprintf(path, TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\%s\\") ,szSubKeyName);</p>
<p>if (Networinterfaces.Open(HKEY_LOCAL_MACHINE,path,KEY_READ) == ERROR_SUCCESS)<br />
{<br />
if (Networinterfaces.QueryValue( TEXT("Description") ,NULL,&#038;description, &#038;len1) == ERROR_SUCCESS )<br />
{</p>
<p>m_networkcards.Add(description);<br />
}<br />
}<br />
if (Networinterfaces.Open(HKEY_LOCAL_MACHINE,path,KEY_READ) == ERROR_SUCCESS)<br />
{<br />
if (Networinterfaces.QueryValue( TEXT("ServiceName") ,NULL,&#038;servicename, &#038;len2) == ERROR_SUCCESS )<br />
{<br />
// Do nothing<br />
// Der Servicename ist nur für die Konfiguration notwendig<br />
}<br />
}<br />
Networinterfaces.Close();</p>
<p>wsprintf(path,TEXT("SYSTEM\\CurrentControlSet\\Services\\%s\\Parameters\\Tcpip\\"),servicename);<br />
if(Interfacesettings.Open(HKEY_LOCAL_MACHINE,path,KEY_READ) == ERROR_SUCCESS )<br />
{<br />
if (Interfacesettings.QueryValue( TEXT("IPAddress") ,NULL,&#038;ip, &#038;len3) == ERROR_SUCCESS)<br />
{<br />
m_ipadress.Add(ip);<br />
}<br />
else<br />
{<br />
m_ipadress.Add(_T("0.0.0.0"));<br />
}<br />
if (Interfacesettings.QueryValue( TEXT("DefaultGateway") ,NULL,&#038;gate, &#038;len4) == ERROR_SUCCESS)<br />
{<br />
m_gateway.Add(gate);<br />
}<br />
else<br />
{<br />
m_gateway.Add(_T("0.0.0.0"));<br />
}<br />
if (Interfacesettings.QueryValue( TEXT("SubnetMask"),NULL,&#038;subn, &#038;len5) == ERROR_SUCCESS)<br />
{<br />
m_subnet.Add(subn);<br />
}<br />
else<br />
{<br />
m_subnet.Add(_T("0.0.0.0"));<br />
}<br />
if (Interfacesettings.QueryValue( TEXT("EnableDHCP"),NULL,&#038;dhcen, &#038;len6) == ERROR_SUCCESS)<br />
{<br />
m_dhcp.Add(dhcen);<br />
}<br />
else<br />
{<br />
m_dhcp.Add(_T("Unkown"));<br />
}<br />
}<br />
else<br />
{<br />
m_ipadress.Add(_T("0.0.0.0"));<br />
m_gateway.Add(_T("0.0.0.0"));<br />
m_subnet.Add(_T("0.0.0.0"));<br />
m_dhcp.Add(_T("Unkown"));<br />
}<br />
Interfacesettings.Close();<br />
index++;<br />
cName = 255;<br />
}</p>
<p>}<br />
Networkcards.Close();</p>
<p>// Exemplarische Ausgabe der Netzwerkkarten, gleicher Ablauf für IP-Adresse, SubNetMask, Gateway usw</p>
<p>cout << "Netzwerkkarten : "  << endl;<br />
for (int i = 0; i < m_networkcards.GetSize(); i++)<br />
{<br />
cout << m_networkcards[i]) << endl;;<br />
}<br />
}<br />
[/sourcecode]</p>

	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.epyx-online.de/2007-10-10/windows-registry/" title="Windows Registry (10. Oktober 2007)">Windows Registry</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-08-10/installierte-software-auslesen/" title="Auslesen installierter Software (10. August 2007)">Auslesen installierter Software</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-uptime-c/" title="Windows-Uptime in C (7. Mai 2007)">Windows-Uptime in C</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-version-c/" title="Windows Version in C ermitteln (7. Mai 2007)">Windows Version in C ermitteln</a> (0)</li>
	<li><a href="http://www.epyx-online.de/2007-05-07/windows-userprofile-c/" title="Windows Benutzerprofil ermitteln in C (7. Mai 2007)">Windows Benutzerprofil ermitteln in C</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.epyx-online.de/2007-08-10/vorhandene-netzwerkinterfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
