<?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>Martin&#039;s Blog &#187; Vista / Windows 7</title>
	<atom:link href="http://blog.m-ri.de/index.php/category/programmieren/vista-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.m-ri.de</link>
	<description>Gesammeltes aus dem Leben eines &#34;normalen&#34; Programmierers... :-)</description>
	<lastBuildDate>Thu, 29 Jul 2010 19:26:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wie man den Namen einer RegisterWindowMessage bekommt</title>
		<link>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/</link>
		<comments>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 19:08:02 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[WinAPI]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=128</guid>
		<description><![CDATA[<p>Manchmal muss man Software verstehen. D.h. auch andere Software, die man selbst nicht geschrieben hat <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>In meinem Fall war es hier ein Client, den ich geschrieben habe, der eine andere Software startet. Diese Software verwendete interne Nachrichten zur Kommunikation, die mit RegisterWindowMessage registriert wurden. Ich wollte nun hier einen Eingriff machen, der ein Fehlverhalten unter <em>Windows 7</em> und <em>Vista</em> vermeiden soll.</p>
<p>Hilfreich wäre für mich nun gewesen an den Namen der registrierten Nachrichten zu kommen. <em>Spy++</em> kann es auch und der importiert auch keine mystischen Funktionen. Also muss es einfach gehen.</p>
<p>Und ein wenig Recherche und ein Verweis eines Community Eintrags brachte mich auf diesen Thread:<br />
<a href="http://groups.google.it/group/microsoft.public.vc.mfc/browse_thread/thread/f83f7c12c80e4ada/460bc4c43a844a37">http://groups.google.it/group/microsoft.public.vc.mfc/browse_thread/thread/f83f7c12c80e4ada/460bc4c43a844a37</a></p>
<p>Siehe da <a href="http://msdn.microsoft.com/en-us/library/ms649040(v=VS.85).aspx" target="_self">GetClipboardFormatName</a> löst das Problem. Der nachfolgende Code lieferte mir nun im Detail, was das so hin und her läuft und der Name der Nachrichten war zum Glück sprechend. Ich konnte das Problem lösen.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>uiMsg<span style="color: #000080;">&gt;=</span><span style="color: #208080;">0xC000</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  TCHAR szName<span style="color: #008000;">&#91;</span>MAX_PATH<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
  <span style="color: #008080;">::</span><span style="color: #007788;">GetClipboardFormatName</span><span style="color: #008000;">&#40;</span>uiMsg,szName,MfxCountOf<span style="color: #008000;">&#40;</span>szName<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  TCHAR szOut<span style="color: #008000;">&#91;</span>MAX_PATH<span style="color: #000040;">*</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
  _stprintf<span style="color: #008000;">&#40;</span>szOut,_T<span style="color: #008000;">&#40;</span>__FUNCTION__<span style="color: #008000;">&#41;</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot; %s, wp=0x%08x, lp=0x%08x<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span>,
            szName, wParam, lParam<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  OutputDebugString<span style="color: #008000;">&#40;</span>szOut<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;annotation=Manchmal%20muss%20man%20Software%20verstehen.%20D.h.%20auch%20andere%20Software%2C%20die%20man%20selbst%20nicht%20geschrieben%20hat%20%3B%29%0D%0A%0D%0AIn%20meinem%20Fall%20war%20es%20hier%20ein%20Client%2C%20den%20ich%20geschrieben%20habe%2C%20der%20eine%20andere%20Software%20startet.%20Diese%20Software%20verwendete%20interne%20Nachricht" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;notes=Manchmal%20muss%20man%20Software%20verstehen.%20D.h.%20auch%20andere%20Software%2C%20die%20man%20selbst%20nicht%20geschrieben%20hat%20%3B%29%0D%0A%0D%0AIn%20meinem%20Fall%20war%20es%20hier%20ein%20Client%2C%20den%20ich%20geschrieben%20habe%2C%20der%20eine%20andere%20Software%20startet.%20Diese%20Software%20verwendete%20interne%20Nachricht" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;bm_description=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;t=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/01/23/was-denn-nun-switchtothread-sleep0-sleep1-2/" title="Was denn nun SwitchToThread(), Sleep(0), Sleep(1)? (Sa 23. Jan 2010)">Was denn nun SwitchToThread(), Sleep(0), Sleep(1)?</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/09/vs-tippstricks-einfache-ausgabe-mit-trace-auch-in-der-release-version/" title="VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version (So 09. Aug 2009)">VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version</a> (9)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/11/04/vs-tipps-tricks-heap-bugs-finden-teil-3/" title="VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3) (Di 04. Nov 2008)">VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3)</a> (0)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mein &#8220;Baby&#8221; ist nun &#8220;Kompatibel mit Windows 7&#8243;</title>
		<link>http://blog.m-ri.de/index.php/2010/02/01/mein-baby-ist-nun-kompatibel-mit-windows-7/</link>
		<comments>http://blog.m-ri.de/index.php/2010/02/01/mein-baby-ist-nun-kompatibel-mit-windows-7/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:02:15 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=591</guid>
		<description><![CDATA[<p><img class="alignright size-full wp-image-593" title="Kompatibel mit Windows 7" src="http://blog.m-ri.de/wp-content/uploads/2010/01/DE-w7-comp_rgb_M.png" alt="" width="72" height="87" />Das meine Software auf allem läuft was <em>Windows XP </em>und später heißt war mir schon lange klar <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  aber ein offizielles &#8220;Kompatibel für&#8230;&#8221; ist ja schon noch was anderes.<br />
Jetzt habe ich die kostenlose Zertifizierung für die <em>Windows 7 Kompatibilität </em>hinter mich gebracht.<br />
In Klartext ganz offiziell: <strong>AG-VIP SQL in der Version 1.20.008 ist kompatibel mit Windows 7</strong> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p>Verglichen mit der <em>Vista </em>Zertifizierung, die wir bei einem 3rd Party Unternehmen (<a href="http://www.veritest.com" target="_blank">VeriTest</a>) durchgeführt haben, muss ich sagen: <strong>Windows 7 kompatibel zu werden ist nicht schwer<br />
</strong>Es war wirklich kein großer Aufwand!</p>
<p>Wer sich die Spezifikationen durchgelesen hat wird sehen, dass sich gegenüber der <em>Vista </em>Zertifizierung kaum was geändert hat. Wer also seine Software bereits <em>Vista </em>kompatibel hat, kann gleich einen Durchstart machen und es für <em>Windows 7 </em>auch probieren. Und das schöne: <em>Es kostet nichts!</em><br />
Ich habe es nicht versucht, aber ich vermute mal, dass genau die Version die ich für Vista eingereicht habe auch durch die <em>Windows 7 </em>Zertifizierung gekommen wäre.</p>
<p>Noch ein paar Anmerkungen:</p>
<ul>
<li>Ich kann jeden ermutigen, den Test zu machen, wenn man sowieso schon ein Code Signing Zertifikat und einen 64bit Rechner zur Verfügung hat. Wenn man auf dem man 64bit <em>Windows 7 </em>virtualisieren kann ist die Zertifizierung wirklich einfach. Ich habe <a href="http://www.vmware.com">VMWare</a> benutzt und das ist einfach ein super Werkzeug für so etwas.</li>
<li>Wie bei vielen Zertifizierungen wird viel zu viel Gewicht auf Installation und Deinstallation gelegt. Das war bei der <em>Vista </em>Zertifizierung auch schon so.</li>
<li>Bei der <em>Vista </em>Zertifizierung war noch klar, wie und wo man Waiver (Freistellungen) bekommt, z.B. für Komponenten von Drittherstellern, die Ihre DLLs nicht signieren. Dazu gehört ja auch Microsoft mit den DLLs der MFC <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
In diesem Zertifizierungsprozess, erfährt man, dass man sie evtl. benötigt, aber nicht wo man sie bekommt&#8230;</li>
<li>Manche in meinen Augen wertvolle Tests in der <em>Vista </em>Zertifizierung, wie zum Beispiel, die korrekte Behandlung von Crashes, scheinen vollkommen entfallenzu sein.</li>
<li>Der Test bei dem 3rd Party Unternehmen war weitaus tiefer als das was man bei dem Selbsttest macht. Jetzt genügt ja die Software zu starten und wieder zu beenden. Bei den Tests zu <em>Vista </em>sind wir beim ersten mal durchgefallen, weil hier ein Bug in der MFC mit dem <em>Application Verifier </em>gefunden wurde, der uns beim Testen nicht aufgefallen war  (Siehe <a href="http://blog.m-ri.de/index.php/2007/04/25/bug-in-cpropertypage-und-certified-for-vista/" target="_blank">1</a>, <a href="http://blog.m-ri.de/index.php/2007/04/05/patch-fuer-cpropertypage-bug-der-mfc71dllmfc71udll/" target="_blank">2</a>, <a href="http://blog.m-ri.de/index.php/2007/04/03/bug-in-der-mfc71dll-bzgl-cpropertysheetcpropertypage/" target="_blank">3</a>) <br />
Ich empfinde den Selbsttest als zu schwach um dann ein <em>Windows 7 kompatibel</em> Logo zu bekommen.</li>
<li>Man muss versichern, dass man keine Spyware zertifiziert oder andere böse Software erzeugt&#8230; gelinde gesagt ein Scherz. Bei einem 3rd Party Tester würde solche Spyware (hoffentlich) nicht durchkommen. Das hoffe ich doch wirklich mal! Jetzt muss man nur einen Haken setzen, und sich selbst bestätigen, dass man es nicht tut, obwohl man es evtl. doch tut&#8230; <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Das mindert den Wert dieses Logos ungemein.</li>
<li>Wenn man früher Geld investierte für eine Zertifizierung, hieß das nicht, dass man deshalb bessere Software produziert. Aber 1000$ waren dennoch eine Schwelle über die nicht jeder Hanswurst mit seiner Mickey-Maus-Software gegangen ist.<br />
Jetzt bleibt als Schwelle nur noch der Kauf eines Code-Signing Zertifikates bei <a href="http://www.verisign.de" target="_blank">VeriSign</a> und so was kostet ca. 500$ im Jahr.</li>
<li>Ich vermisse schon lange das Verbot anderer Techniken, zum Beispiel ein Verbot von Systemweiten Hooks, wenn man <em>Windows X kompatibel </em>sein will. Wenn dann sollte so etwas auch nur mit einem Waiver und klarer Begründung erlaubt werden.<br />
Nicht wenige dieser mies programmierten Hooks sorgen für Instabilität, unnützes Aufblähen von Prozessen und manchmal auch miese Performance.</li>
</ul>
<p>Als Fazit bleibt für mich die Frage:<br />
Was nützt ein Logo, dass man zu leicht bekommen kann?</p>
<p>Es bleibt eine Marketing-Aktion und genauso wurde die <em>Vista </em>und jetzt auch die <em>Windows 7 </em>Zertifizierung auch bei uns in der Firma eingestuft. Technischen Nutzen hat das ganze nicht wirklich.</p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F&amp;title=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22&amp;annotation=Das%20meine%20Software%20auf%20allem%20l%C3%A4uft%20was%20Windows%20XP%20und%20sp%C3%A4ter%20hei%C3%9Ft%20war%20mir%20schon%20lange%20klar%20%3B%29%20aber%20ein%20offizielles%20%22Kompatibel%20f%C3%BCr...%22%20ist%20ja%20schon%20noch%20was%20anderes.%0D%0AJetzt%20habe%20ich%20die%20kostenlose%20Zertifizierung%20f%C3%BCr%20die%20Windows%207%20Kompatibilit%C3%A4" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F&amp;title=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22&amp;notes=Das%20meine%20Software%20auf%20allem%20l%C3%A4uft%20was%20Windows%20XP%20und%20sp%C3%A4ter%20hei%C3%9Ft%20war%20mir%20schon%20lange%20klar%20%3B%29%20aber%20ein%20offizielles%20%22Kompatibel%20f%C3%BCr...%22%20ist%20ja%20schon%20noch%20was%20anderes.%0D%0AJetzt%20habe%20ich%20die%20kostenlose%20Zertifizierung%20f%C3%BCr%20die%20Windows%207%20Kompatibilit%C3%A4" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F&amp;bm_description=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F&amp;t=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F&amp;title=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Mein%20%22Baby%22%20ist%20nun%20%22Kompatibel%20mit%20Windows%207%22%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F02%2F01%2Fmein-baby-ist-nun-kompatibel-mit-windows-7%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/01/07/nett-windows-7-und-sein-godmode/" title="Nett: Windows 7 und sein GodMode ;) (Do 07. Jan 2010)">Nett: Windows 7 und sein GodMode ;)</a> (4)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/12/13/installation-aelterer-software-auf-windows-vista-oder-windows-7/" title="Installation älterer Software auf Windows-Vista oder Windows 7 (So 13. Dez 2009)">Installation älterer Software auf Windows-Vista oder Windows 7</a> (3)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/12/08/windows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7/" title="Windows Integrity Control: Schreibzugriff auf eine Named Pipe eines Services über anonymen Zugriff auf Vista, Windows 2008 Server und Windows 7 (Di 08. Dez 2009)">Windows Integrity Control: Schreibzugriff auf eine Named Pipe eines Services über anonymen Zugriff auf Vista, Windows 2008 Server und Windows 7</a> (2)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2010/02/01/mein-baby-ist-nun-kompatibel-mit-windows-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Integrity Control: Schreibzugriff auf eine Named Pipe eines Services über anonymen Zugriff auf Vista, Windows 2008 Server und Windows 7</title>
		<link>http://blog.m-ri.de/index.php/2009/12/08/windows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7/</link>
		<comments>http://blog.m-ri.de/index.php/2009/12/08/windows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 19:08:37 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=552</guid>
		<description><![CDATA[<p>Mein Problem war ein Service, der eine Pipe als Interface zur Verfügung stellt, auf die von beliebigen PCs zugegriffen werden soll. Insbesondere eben auch von PCs außerhalb der Domäne in der der Service läuft der die Named Pipe zur Verfügung stellt. Die Clients melden sich über VPN an dem entsprechenden Server an, gehören aber eben selbst nicht zur Domäne.</p>
<p>Von einem Rechner, der nicht in der Domäne des Rechners liegt, auf eine Pipe eines Rechners in einer Domäne zuzugreifen war schon immer mit extra Vorkehrungen verbunden. Der Code für den anonymen Zugriff auf eine Pipe finden wir als KB Artikel <a href="http://support.microsoft.com/kb/813414/en-us">http://support.microsoft.com/kb/813414/en-us</a>. Über die Qualität dieses Beispiels möchte ich mich hier allerdings nicht auslassen.</p>
<p>Dieses Sample ist nett für alle die XP und Windows 2003 Server nutzen. Und interessanter Weise funktioniert es auch auf <em>Windows Vista</em>, <em>Windows 7</em> oder <em>Windows Server 2008</em>. Aber nur weil dieses Beispiel die Pipe nur lesend benutzt.</p>
<p>Dieses Programm berücksichtigt nicht die neuen Sicherheitsfunktionen von <em>Vista</em>, <em>Windows 7 </em>oder <em>Windows Server 2008</em>. Es klappt genau dann nicht, wenn der Server eben auf einem <em>Vista</em>, <em>Windows 7</em>, oder <em>Server 2008 </em>läuft UND die Pipe für Lesen und Schreiben geöffnet wird.  ERROR_ACCESS_DENIED (5) ist das was der Client dann bekommt, wenn die Pipe lesend und schreibend geöffnet werden soll.</p>
<p>Was ist das Problem <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_question.gif' alt=':?:' class='wp-smiley' /> </p>
<p>Das Problem liegt in einem Sicherheitsmechanismus, der sogenannten <em>Windows Integrity</em>.<br />
Ich rate jedem die Literatur der nachfolgenden beiden Links:</p>
<ul>
<li>Windows Integrity Mechanism Design<br />
<a href="http://msdn.microsoft.com/en-us/library/bb625963.aspx">http://msdn.microsoft.com/en-us/library/bb625963.aspx</a></li>
<li>Windows Vista for Developers – Part 4<br />
<a href="http://weblogs.asp.net/kennykerr/archive/2006/09/29/windows-vista-for-developers-_1320_-part-4-_1320_-user-account-control.aspx">http://weblogs.asp.net/kennykerr/archive/2006/09/29/windows-vista-for-developers-_1320_-part-4-_1320_-user-account-control.aspx</a></li>
</ul>
<p> </p>
<p><strong>Kurzbeschreibung:</strong><br />
Prozessen oder auch anderen Systemobjekten wird ein Inegrity-Level zugeordnet.<br />
Greift nun ein Prozess auf ein Systemobjekt zu, dann werden nicht nur die allgemeinen Rechte geprüft (z.B. Rechte für Anonymen Zugriff, oder die entsprechenden Gruppenrechte), sondern auch der <em>Integrity Level </em>dieses Prozesses wird mit dem der Ressource verglichen.<br />
Liegt nun der <em>Integrity Level </em>des Clients niedriger als der <em>Intergrity Level </em>des Objektes, dann greift eine neue Policy, die dann festlegt was passiert. In den meisten Fällen bedeutet dies, dass der Lesezugriff zugelassen wird, aber der Schreibzugriff untersagt wird.</p>
<p>Übrigens passiert das gleiche, wenn man ein Addin für den <em>IE8 </em>auf Vista (und später hat). Der <em>IE8 </em>läuft im geschützten Modus und damit im <em>Integrity Level Low</em>. Normale Programme laufen im <em>Integrity Level Medium</em>.<br />
Möchte nun das <em>IE8 </em>Addin eine Pipe oder einen Shared Memory Block eines Services oder eines &#8220;normalen&#8221; anderen Programmes, schreibend öffnen, dann passiert das gleiche. Der Zugriff wird reduziert auf nur lesen.<br />
Und dieses Thema wird hauptsächlich in der Doku und im Netz diskutiert (und zum Teil, gelöst).</p>
<p>Ich will das jetzt hier nicht über die Maßen ausdehnen. Ich kann nur anraten, die entsprechenden Artikel wirklich einmal zu lesen.</p>
<p>Jetzt zurück zu dem was NICHT in diesen entsprechenden Artikeln und Forumbeiträgen steht.</p>
<p>1. Anonymen Zugriff wird automatisch der <em>Integrity Level Untrusted </em>zugewiesen. Die Doku zeigt in dem Beispiel nur die Vorgehensweise für den <em>Integrity Level low</em>.<br />
Mein Fehler war es, die ganze Zeit <em>SECURITY_MANDATORY_LOW_RID</em> zu verwenden. Aber ich sagte es schon: Der  Anonyme Zugriff erfolgt im <em>Integrity Level Untrusted</em>.</p>
<p>2. Ich arbeite mit <em>SDDL </em>String und auch dort in den Headern ist Low das niedrigste für das es im Netz und auch in der Doku (<a href="http://msdn.microsoft.com/en-us/library/bb625963.aspx">http://msdn.microsoft.com/en-us/library/bb625963.aspx</a>) findet. Dort steht ziemlich weit unten ein Beispiel, um ein Objekt einem &#8220;Low&#8221;-Integrity-Prozess zugänglich zu machen. Und dort finden wir folgende SDDL Definition:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define LOW_INTEGRITY_SDDL_SACL_W L&quot;S:(ML;;NW;;;LW)&quot;</span></pre></div></div>

<p>3. Anonymer Zugriff ist also <em>Integrity Level Untrusted</em> (ich weiß ich wiederhole mich).<br />
Und nun wird es spaßig. Es gibt auch gar keinen <em>SDDL </em>Sid für untrusted, es gibt nur die folgenden Definitionen in den Headern:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// Integrity Labels</span>
<span style="color: #339900;">#define SDDL_ML_LOW                         TEXT(&quot;LW&quot;)</span>
<span style="color: #339900;">#define SDDL_ML_MEDIUM                      TEXT(&quot;ME&quot;)</span>
<span style="color: #339900;">#define SDDL_ML_MEDIUM_PLUS                 TEXT(&quot;MP&quot;)</span>
<span style="color: #339900;">#define SDDL_ML_HIGH                        TEXT(&quot;HI&quot;)</span>
<span style="color: #339900;">#define SDDL_ML_SYSTEM                      TEXT(&quot;SI&quot;)</span></pre></div></div>

<p>Alles das hat mich in die Irre geführt und 2 Tage Arbeit gekostet.</p>
<p>Als mir klar war, dass ich eine Regel für den <em>Untrusted Intergity Level </em>benötige, war die Lösung gefunden.<br />
Bauen wir uns einen eigenen <em>SID</em>! Aus der Doku können wir die entsprechenden <em>RIDs</em> finden und uns nun folgenden <em>SID </em>konstruieren: <em>&#8220;S-1-16-0&#8243;</em>.<br />
Und das bringt uns zu dem <em>SDDL </em>String für den Level untrusted:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define UNTRUSTED_INTEGRITY_SDDL_SACL _T(&quot;S:(ML;;NW;;;S-1-16-0)&quot;)</span></pre></div></div>

<p>Ich habe das oben beschriebene Sample etwas modifiziert, dass man genau dieses Problem des anonymen Zugriffs auf eine Pipe testen kann. <a href="http://blog.m-ri.de/wp-content/uploads/2009/12/TestAnonymousPipe.zip">Das Beispiel kann man hier herunterladen.</a><br />
Ich habe das Sample dazu etwas umgebaut:</p>
<ul>
<li>so dass lesender und schreibender Zugriff auch benutzt wird.</li>
<li>dass SDDL verwendet wird, was den Code extrem simplifiziert.</li>
<li>dass zumindest etwas an dem ekligem Code lesbarer wurde.</li>
<li>dass ein paar Bugs raus sind.</li>
</ul>
<p>Ich bitte dennoch dies nur als Sample zu betrachten und nicht als Beispiel Software, die meinem Anspruch an C/C++ Code genügt <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>PS: Eine entsprechende Diskussion über das Problem findet sich in <a href="nntp://microsoft.public.de.vc">nntp://microsoft.public.de.vc</a><br />
<a href="http://groups.google.de/group/microsoft.public.de.vc/browse_thread/thread/3be20505999b8aab">http://groups.google.de/group/microsoft.public.de.vc/browse_thread/thread/3be20505999b8aab</a><br />
Danke noch mal explizit an den Regular Andreas Heyer für seinen wertvollen Diskussionsbeitrag.</p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F&amp;title=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207&amp;annotation=Mein%20Problem%20war%20ein%20Service%2C%20der%20eine%20Pipe%20als%20Interface%20zur%20Verf%C3%BCgung%20stellt%2C%20auf%20die%20von%20beliebigen%20PCs%20zugegriffen%20werden%20soll.%20Insbesondere%20eben%20auch%20von%20PCs%20au%C3%9Ferhalb%20der%20Dom%C3%A4ne%20in%20der%20der%20Service%20l%C3%A4uft%20der%20die%20Named%20Pipe%20zur%20Verf%C3%BCgung%20ste" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F&amp;title=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207&amp;notes=Mein%20Problem%20war%20ein%20Service%2C%20der%20eine%20Pipe%20als%20Interface%20zur%20Verf%C3%BCgung%20stellt%2C%20auf%20die%20von%20beliebigen%20PCs%20zugegriffen%20werden%20soll.%20Insbesondere%20eben%20auch%20von%20PCs%20au%C3%9Ferhalb%20der%20Dom%C3%A4ne%20in%20der%20der%20Service%20l%C3%A4uft%20der%20die%20Named%20Pipe%20zur%20Verf%C3%BCgung%20ste" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F&amp;bm_description=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F&amp;t=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F&amp;title=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Windows%20Integrity%20Control%3A%20Schreibzugriff%20auf%20eine%20Named%20Pipe%20eines%20Services%20%C3%BCber%20anonymen%20Zugriff%20auf%20Vista%2C%20Windows%202008%20Server%20und%20Windows%207%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F12%2F08%2Fwindows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2007/01/24/microsoft-sql-server-management-studio-express-auf-vista-schlagt-fehl-fehler-29506/" title="Microsoft SQL Server Management Studio Express auf Vista schlägt fehl. Fehler 29506 (Mi 24. Jan 2007)">Microsoft SQL Server Management Studio Express auf Vista schlägt fehl. Fehler 29506</a> (66)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/10/10/upgrade-meines-privaten-desktop-pcs-auf-windows-7/" title="Upgrade meines privaten Desktop PCs auf Windows 7 (Sa 10. Okt 2009)">Upgrade meines privaten Desktop PCs auf Windows 7</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2010/01/07/nett-windows-7-und-sein-godmode/" title="Nett: Windows 7 und sein GodMode ;) (Do 07. Jan 2010)">Nett: Windows 7 und sein GodMode ;)</a> (4)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/12/08/windows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Auslösung: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</title>
		<link>http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/</link>
		<comments>http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 07:54:07 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Perfomance]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=494</guid>
		<description><![CDATA[<p>Am 17. Januar habe ich den folgenden Artikel geschrieben: <a title="Permanent Link: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!" rel="bookmark" href="http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/">DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</a></p>
<p>Ich möchte Euch die Auflösung des Problems nicht vorenthalten.</p>
<p>Eigentlich ist es keine Lösung sondern nur der Fakt, dass auch XP unter gleichen Bedingungen genauso lahm ist wie Vista.<br />
Es liegt an den erweiterten Spracheinstellungen, die unter XP optional sind aber eben nicht mehr unter Vista. Dort sind die immer mit installiert.</p>
<p>So sieht das ganze bei einer normalen XP Installation aus, mit der entsprechenden Performance:<br />
<a href="http://blog.m-ri.de/wp-content/uploads/2009/07/XP-DrawText-Fast.PNG"><img class="size-full wp-image-495 alignnone" title="XP-DrawText-Fast" src="http://blog.m-ri.de/wp-content/uploads/2009/07/XP-DrawText-Fast.PNG" alt="XP-DrawText-Fast" width="435" height="506" /></a></p>
<p>Man kann sehen, dass die zwei unteren Checkboxen aus sind. Wenn man diese nun einschaltet und die entsprechenden Module nachinstalliert werden, dann erlebt man unter XP nach einem Neustart die selben Geschwindigkeitseinbruch wie unter Vista:<br />
<a href="http://blog.m-ri.de/wp-content/uploads/2009/07/XP-DrawText-Slow.PNG"><img class="alignnone size-full wp-image-497" title="XP-DrawText-Slow" src="http://blog.m-ri.de/wp-content/uploads/2009/07/XP-DrawText-Slow.PNG" alt="XP-DrawText-Slow" width="437" height="509" /></a></p>
<p>Mein Testprogramm läuft fast 50mal langsamer als bei der Standardinstallation und damit genauso schnell/lahm wie unter Vista. Nimmt man die zwei Checks wieder heraus, dann hat man den alten gewohnten Speed.</p>
<p>Wenn man unter Vista in den entsprechenden Dialog der Systemeinstellung sieht, kann man auch sehen, dass man hier nichts mehr beschleunigen kann durch eine eventuelle Deinstallation, denn offensichtlich gehören diese Bestandteile bei Vista zum Inventar:<br />
<a href="http://blog.m-ri.de/wp-content/uploads/2009/07/Vista-DrawText-Slow.PNG"><img class="alignnone size-full wp-image-499" title="Vista-DrawText-Slow" src="http://blog.m-ri.de/wp-content/uploads/2009/07/Vista-DrawText-Slow.PNG" alt="Vista-DrawText-Slow" width="450" height="569" /></a><br />
<a href="http://blog.m-ri.de/wp-content/uploads/2009/07/Vista-Regional-Settings.PNG"></a></p>
<p>So und damit ist auch diese Supportanfrage bei Microsoft &#8220;ungelöst&#8221;, aber zumindest &#8220;erklärt&#8221; geschlossen.</p>
<p>Ich frage mich dennoch warum eine solche EInstellung solche Auswirkungen haben muss. Letzten Endes sind das auch nur Fonts mit denen umgegangen werden muss. Ich finde diesen extremen Unterschied auffällig, allerdings wird sich vermutlich nichts daran ändern&#8230;</p>
<p>Ich wünsche allen Lesern einen schönen Juli und verziehe mich jetzt erstmal für die nächsten 2 1/2 Wochen ohne Laptop und PC an die Nordsee, zum Radfahren, Baden und Drachen steigen lassen&#8230; <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;annotation=Am%2017.%20Januar%20habe%20ich%20den%20folgenden%20Artikel%20geschrieben%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21%0D%0A%0D%0AIch%20m%C3%B6chte%20Euch%20die%20Aufl%C3%B6sung%20des%20Problems%20nicht%20vorenthalten.%0D%0A%0D%0AEigentlich%20ist%20es%20keine%20L%C3%B6sung%20sondern%20nur%20der%20Fakt%2C%20d" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;notes=Am%2017.%20Januar%20habe%20ich%20den%20folgenden%20Artikel%20geschrieben%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21%0D%0A%0D%0AIch%20m%C3%B6chte%20Euch%20die%20Aufl%C3%B6sung%20des%20Problems%20nicht%20vorenthalten.%0D%0A%0D%0AEigentlich%20ist%20es%20keine%20L%C3%B6sung%20sondern%20nur%20der%20Fakt%2C%20d" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;bm_description=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;t=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Ausl%C3%B6sung%3A%20DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F07%2F11%2Fausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/" title="DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer! (Sa 17. Jan 2009)">DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</a> (9)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/03/05/selbst-reingelegt-beim-test-von-xp-oder-spaeter/" title="Selbst reingelegt beim Test von &#8220;XP oder später&#8221; (Do 05. Mrz 2009)">Selbst reingelegt beim Test von &#8220;XP oder später&#8221;</a> (7)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/05/nach-ie8-installation-oeffnet-ein-doppelklick-auf-einen-ordner-im-explorer-immer-ein-neues-fenster/" title="Nach IE8 Installation öffnet ein Doppelklick auf einen Ordner im Explorer immer ein neues Fenster (Mi 05. Aug 2009)">Nach IE8 Installation öffnet ein Doppelklick auf einen Ordner im Explorer immer ein neues Fenster</a> (0)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Standby Modus in einem Programm auch unter Vista verhindern</title>
		<link>http://blog.m-ri.de/index.php/2009/03/24/standby-modus-in-einem-programm-auch-unter-vista-verhindern/</link>
		<comments>http://blog.m-ri.de/index.php/2009/03/24/standby-modus-in-einem-programm-auch-unter-vista-verhindern/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 17:27:08 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=274</guid>
		<description><![CDATA[<p lang="cpp">Manchmal kann man den Standby Mode wirklich nicht gebrauchen. Besonders, wenn man ein Programm hat, dass evtl. viel im Hintergrund mit einer Datenbankverbindung macht.</p>
<p lang="cpp">Wie macht man es unter <em>Windows Vista </em>richtig, denn <em>BROADCAST_QUERY_DENY </em>bei einem <em>PBT_APMQUERYSUSPEND </em>oder <em>PBT_APMQUERYSUSPENDFAILED </em>zurückzugeben funktioniert nicht.<br />
Man muss <em>SetThreadExecutionState </em>verwenden!</p>
<p lang="cpp">Äußerst dumm nur, dass man dies auch wirklich für <em>Windows Vista </em>und <em>Windows 7 </em>berücksichtigen muss. Ich hatte natürlich für <em>Windows 2000 </em>und <em>XP </em>entsprechenden Code vorgesehen, die den Standby verhindern, aber wie schon erwähnt, das geht eben unter <em>Vista </em>nicht mehr.<br />
Es gibt Inkompatibilitäten zwischen des OSen, die man wirklich explizit behandeln muss. Es lohnt sich ein Blick in die Dokus, den ich selber oft genug nicht mache&#8230; <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// Every 30 secs we disallow the standby and hibernate!</span>
<span style="color: #666666;">// We have to use ES_AWAYMODE_REQUIRED on Vista and Windows Server 2008</span>
<span style="color: #666666;">// If we allow standby and hibernation we get problems with the DB connection.</span>
DWORD dwAwaymodeRequired <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
OSVERSIONINFO os<span style="color: #008080;">;</span>
<span style="color: #008080;">::</span><span style="color: #007788;">ZeroMemory</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>os,<span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>os<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
os.<span style="color: #007788;">dwOSVersionInfoSize</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>os<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008080;">::</span><span style="color: #007788;">GetVersionEx</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>os<span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> os.<span style="color: #007788;">dwMajorVersion</span><span style="color: #000080;">&gt;=</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#41;</span>
    dwAwaymodeRequired <span style="color: #000080;">=</span> ES_AWAYMODE_REQUIRED<span style="color: #008080;">;</span>
VERIFY<span style="color: #008000;">&#40;</span><span style="color: #008080;">::</span><span style="color: #007788;">SetThreadExecutionState</span><span style="color: #008000;">&#40;</span>ES_CONTINUOUS <span style="color: #000040;">|</span> ES_SYSTEM_REQUIRED <span style="color: #000040;">|</span>
	dwAwaymodeRequired<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F&amp;title=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern&amp;annotation=Manchmal%20kann%20man%20den%20Standby%20Mode%20wirklich%20nicht%20gebrauchen.%20Besonders%2C%20wenn%20man%20ein%20Programm%20hat%2C%20dass%20evtl.%20viel%20im%20Hintergrund%20mit%20einer%20Datenbankverbindung%20macht.%0D%0A%0D%0AWie%20macht%20man%20es%20unter%20Windows%20Vista%20richtig%2C%20denn%20BROADCAST_QUERY_DENY%20bei%20ein" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F&amp;title=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern&amp;notes=Manchmal%20kann%20man%20den%20Standby%20Mode%20wirklich%20nicht%20gebrauchen.%20Besonders%2C%20wenn%20man%20ein%20Programm%20hat%2C%20dass%20evtl.%20viel%20im%20Hintergrund%20mit%20einer%20Datenbankverbindung%20macht.%0D%0A%0D%0AWie%20macht%20man%20es%20unter%20Windows%20Vista%20richtig%2C%20denn%20BROADCAST_QUERY_DENY%20bei%20ein" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F&amp;bm_description=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F&amp;t=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F&amp;title=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Standby%20Modus%20in%20einem%20Programm%20auch%20unter%20Vista%20verhindern%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F24%2Fstandby-modus-in-einem-programm-auch-unter-vista-verhindern%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li>Keine themenverwandten Beiträge gefunden!</li>
	</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/03/24/standby-modus-in-einem-programm-auch-unter-vista-verhindern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LVM_GETSUBITEMRECT mit LVIR_ICON liefert andere Ergebnisse unter Vista als unter XP</title>
		<link>http://blog.m-ri.de/index.php/2009/03/18/lvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp/</link>
		<comments>http://blog.m-ri.de/index.php/2009/03/18/lvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 18:17:45 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Kompatibiltät]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[WinAPI]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=438</guid>
		<description><![CDATA[<p>Das damit auch die Funktion <em>CListCtrl::GetSubItemRect </em>aus der MFC betroffen ist, ist dann auch  klar.<br />
Manche Sachen ärgern einen einfach. Vor allem wenn man nichts am Code ändert und doch falsches Verhalten erntet.</p>
<p>Wieder mal ist die <em>Vista </em>UI eigentümlich ungereimt, in diesem Fall bei einem <em>List View</em>.</p>
<p>Folgendes ist gegeben:</p>
<ul>
<li>Ein List View (<em>SysListView32</em>) in einem Dialog oder anderen Fenster</li>
<li>Der List View hat den Stil <em>LVS_REPORT</em></li>
<li>Der List View hat hat mehr als eine Spalte.</li>
<li>Dem List View wurde eine Imagelist zugewiesen.</li>
</ul>
<p>Führt man nun auf Windows <em>XP LVM_GETSUBITEMRECT /CListCtrl::GetSubItemRect </em>mit LVIR_ICON aus, dann erhält man immer ein Rectangle zurück mit der entsprechenden Weite der Imagelist Symbole. Das Verhalten ist:</p>
<ul>
<li>vollkommen unabhängig ob ein Manifest für COMCTL32.DLL Version 6.0 vorhanden ist oder nicht</li>
<li> es ist auch unabhängig ob LVS_EX_SUBITEMIMAGES gesetzt ist oder nicht.</li>
</ul>
<p>Macht man das ganze unter Vista, dann liefert <em>LVM_GETSUBITEMRECT /CListCtrl::GetSubbItemRect </em>ein <em>RECT / CRect</em> mit der Weite der Symbole immer dann wenn:</p>
<ul>
<li>kein Manifest für COMCTL32.DLL Version 6.0 vorhanden ist</li>
<li>oder LVS_EX_SUBITEMIMAGES gesetzt ist</li>
</ul>
<p>Das heißt in dem Fall</p>
<ul>
<li>ein Manifest für COMCTL32.DLL Version 6.0 ist</li>
<li><strong>und </strong>LVS_EX_SUBITEMIMAGES ist <strong>nicht </strong>gesetzt .</li>
</ul>
<p>erhält  man ein Rectangle mit der Weite 0 (Null) <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_confused.gif' alt=':???:' class='wp-smiley' /> </p>
<p><strong>Anmerkung:</strong><br />
 Man kann sich natürlich streiten was nun richtig ist. Wenn <em>LVS_EX_SUBITEMIMAGES </em>nicht gesetzt ist, dann macht <em>LVIR_ICON </em>zugegebenermaßen wenig Sinn. Aber es leuchtet irgendwie nicht ein, dass ohne Manifest <strong>und</strong> ohne <em>LVS_EX_SUBITEMIMAGES</em>, wieder ein Wert zurückgeliefert wird. Entweder ist die Weite von <em>LVS_EX_SUBITEMIMAGES </em>abhängig oder eben nicht<em>.<br />
</em>Das Ganze ist in jedem Falle mal ungereimt und nicht kompatibel <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p><strong>Nachtrag 26.03.2009:<br />
</strong>Das List-Control liefert für das Subitem 0 immer ein korrektes Rectangle für <em>LVIR_ICON</em>! Nur wenn wirklich ein Subitem (&gt;0) abgefragt wird, tritt das Problem auf.</p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F&amp;title=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP&amp;annotation=Das%20damit%20auch%20die%20Funktion%20CListCtrl%3A%3AGetSubItemRect%20aus%20der%20MFC%20betroffen%20ist%2C%20ist%20dann%20auch%20%C2%A0klar.%0D%0AManche%20Sachen%20%C3%A4rgern%20einen%20einfach.%20Vor%20allem%20wenn%20man%20nichts%20am%20Code%20%C3%A4ndert%20und%20doch%20falsches%20Verhalten%20erntet.%0D%0A%0D%0AWieder%20mal%20ist%20die%20Vista%20UI%20" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F&amp;title=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP&amp;notes=Das%20damit%20auch%20die%20Funktion%20CListCtrl%3A%3AGetSubItemRect%20aus%20der%20MFC%20betroffen%20ist%2C%20ist%20dann%20auch%20%C2%A0klar.%0D%0AManche%20Sachen%20%C3%A4rgern%20einen%20einfach.%20Vor%20allem%20wenn%20man%20nichts%20am%20Code%20%C3%A4ndert%20und%20doch%20falsches%20Verhalten%20erntet.%0D%0A%0D%0AWieder%20mal%20ist%20die%20Vista%20UI%20" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F&amp;bm_description=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F&amp;t=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F&amp;title=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=LVM_GETSUBITEMRECT%20mit%20LVIR_ICON%20liefert%20andere%20Ergebnisse%20unter%20Vista%20als%20unter%20XP%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F18%2Flvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/03/05/selbst-reingelegt-beim-test-von-xp-oder-spaeter/" title="Selbst reingelegt beim Test von &#8220;XP oder später&#8221; (Do 05. Mrz 2009)">Selbst reingelegt beim Test von &#8220;XP oder später&#8221;</a> (7)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/03/12/memory-dumps-on-the-fly/" title="Memory Dumps on the fly (Do 12. Mrz 2009)">Memory Dumps on the fly</a> (7)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/06/18/die-funktion-reportfault-unter-vista-kehrt-nicht-mehr-zurueck-entgegen-der-dokumentation/" title="Die Funktion ReportFault unter Vista kehrt nicht mehr zurück, entgegen der Dokumentation (Do 18. Jun 2009)">Die Funktion ReportFault unter Vista kehrt nicht mehr zurück, entgegen der Dokumentation</a> (2)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/03/18/lvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Memory Dumps on the fly</title>
		<link>http://blog.m-ri.de/index.php/2009/03/12/memory-dumps-on-the-fly/</link>
		<comments>http://blog.m-ri.de/index.php/2009/03/12/memory-dumps-on-the-fly/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 19:49:13 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[WinAPI]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=435</guid>
		<description><![CDATA[<p>Ich hatte in einem unserer Release-Kandidaten ein massives Problem. In bestimmten nicht reproduzierbaren Situationen, blieb zeitgleich auf allen angeschlossenen Arbeitsstationen das Programm stehen. Und nun?</p>
<p>Der Deadlock, der auftrat war so fatal, dass ich nicht mal mehr über eine versteckte Funktion einen Speicherdump auslösen konnte. Dazu verwende intern üblicherweise eine reservierte Tastenkombination. Nur wenn keine Nachrichten mehr abgearbeitet werden, gibt es auch keine Funktionen, die man per Tastatur aufrufen kann.</p>
<p>Glücklicherweise wurde auf allen betroffen Rechner <em>Windows Vista </em>eingesetzt. Und die Lösung für diesen Fall ist unter <em>Vista </em>so einfach wie genial. Im Task-Manager unter Vista findet sich im Kontextmenü ein unauffälliger Menüpunkt: <em>&#8220;Abbilddatei erzeugen&#8221;:</em></p>
<p><em></em><a href="http://blog.m-ri.de/wp-content/uploads/2009/03/memorydumpondemand.png"><img class="alignnone" title="Memory dump on demand" src="http://blog.m-ri.de/wp-content/uploads/2009/03/memorydumpondemand-300x248.png" alt="Memory dump on demand" width="300" height="248" /></a></p>
<p style="text-align: left;">Jupp! Er macht genau was ich brauchte. Durch diesen netten Befehl wird im %TEMP% Verzeichnis des Benutzers ein voller Speicherdump erzeugt.</p>
<p>Ich musste von 6 Dumps genau 2 durchsehen, bis ich das Problem lokalisiert hatte.<br />
Eine wirklich nette und nützliche Funktion des Taskmanagers.</p>
<p>Unter Windows XP kann man ähnliches machen nur ist es hier ungleich komplizierter, aber es geht auch mit dem mitgelieferten symbolischen Debugger <em>NTSD </em>und den folgenden Schritten:</p>
<ul>
<li>PID über den Task-Manager ermitteln (entsprechende Spalte einblenden lassen)</li>
<li>NTSD starten mit der entsprechenden PID<br />
<em><strong>NTSD -p 4656</strong></em></li>
<li>Dump erzeugen:<br />
<strong><em>&#8230;<br />
0:001&gt; .dump /f c:\temp\crash\full.dmp<br />
Creating c:\temp\crash\full.dmp &#8211; user full dump<br />
&#8230;</em></strong></li>
<li>Wird der Debugger mit Quit (<em>q</em>) verlassen wird auch der Prozess beendet.</li>
</ul>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F&amp;title=Memory%20Dumps%20on%20the%20fly&amp;annotation=Ich%20hatte%20in%20einem%20unserer%20Release-Kandidaten%20ein%20massives%20Problem.%20In%20bestimmten%20nicht%20reproduzierbaren%20Situationen%2C%20blieb%20zeitgleich%20auf%20allen%20angeschlossenen%20Arbeitsstationen%20das%20Programm%20stehen.%20Und%20nun%3F%0D%0A%0D%0ADer%20Deadlock%2C%20der%20auftrat%20war%20so%20fatal%2C" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F&amp;title=Memory%20Dumps%20on%20the%20fly&amp;notes=Ich%20hatte%20in%20einem%20unserer%20Release-Kandidaten%20ein%20massives%20Problem.%20In%20bestimmten%20nicht%20reproduzierbaren%20Situationen%2C%20blieb%20zeitgleich%20auf%20allen%20angeschlossenen%20Arbeitsstationen%20das%20Programm%20stehen.%20Und%20nun%3F%0D%0A%0D%0ADer%20Deadlock%2C%20der%20auftrat%20war%20so%20fatal%2C" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F&amp;bm_description=Memory%20Dumps%20on%20the%20fly&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F&amp;t=Memory%20Dumps%20on%20the%20fly" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F&amp;title=Memory%20Dumps%20on%20the%20fly" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Memory%20Dumps%20on%20the%20fly%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F03%2F12%2Fmemory-dumps-on-the-fly%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/03/18/lvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp/" title="LVM_GETSUBITEMRECT mit LVIR_ICON liefert andere Ergebnisse unter Vista als unter XP (Mi 18. Mrz 2009)">LVM_GETSUBITEMRECT mit LVIR_ICON liefert andere Ergebnisse unter Vista als unter XP</a> (5)</li>
	<li><a href="http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/" title="Wie man den Namen einer RegisterWindowMessage bekommt (Mi 23. Jun 2010)">Wie man den Namen einer RegisterWindowMessage bekommt</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/09/vs-tippstricks-einfache-ausgabe-mit-trace-auch-in-der-release-version/" title="VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version (So 09. Aug 2009)">VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version</a> (9)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/03/12/memory-dumps-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Slow DrawText performance in Vista and Windows 7. Please comment&#8230;</title>
		<link>http://blog.m-ri.de/index.php/2009/02/15/slow-drawtext-performance-in-vista-and-windows-7-please-comment/</link>
		<comments>http://blog.m-ri.de/index.php/2009/02/15/slow-drawtext-performance-in-vista-and-windows-7-please-comment/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 18:04:15 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Hotfix]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=427</guid>
		<description><![CDATA[<p>Sorry for blogging in English. I know that I am breaking my own rules <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Reasons for this article</strong>:<br />
In the last years I found it more an more complicated to get bugs fixed in current software produced by Microsoft. My experience showed me, that the Microsoft product teams always look for new versions and new features and the Microsoft support teams and engineers don&#8217;t produce enough pressure that well known bugs get fixed in the currently used software products.</p>
<p>The reason why the Microsoft support rejected a request for a fix was very often that not enough customers are affected by the problem or bug. And this is often a problem for me and my company. We are just a small ISV so we can&#8217;t point to millions of affected users. And yes I know that hotfixes are expensive.<br />
So usually we have to be flexible and have to find work arrounds.<br />
But my feeling is that there would be enough impact and pressure for a hotfix, if it would be known to the public what problems exist and that there are others who have a request to get a special problem fixed.<br />
Also a lot of programmers tend to avoid the creation of a support request, because the experience  shows: You put energy, time (and money) into a support request and the answers are in most cases: Will not get fixed, by design, and so on&#8230;</p>
<p>Another experience in the last years was, that even being an MVP doesn&#8217;t help to get anything fixed by Microsoft even if a lot of MVPs point out that there is a real need for a change or fix. </p>
<p>So I just want to choose a new way, because there is no way to get votes of other people to a standard bug in a Microsoft product like it is possible on Microsoft Connect. But Connect is absolutely worthless if the product is already shipped!<br />
I want to collect votes for this problem via my blog. I also informed the Microsoft support engineer who cares about the current incident.</p>
<p>If you agree and if you see a larger problem in this bug too, or if you have the feeling or knowledge that it has impact on your own software, than please write a comment to this blog article. Please leave your real email address or homepage URL. The email address will not be visible to the public, and I will forward it only to Microsoft if the poster agrees.</p>
<p><strong>Description of the bug</strong>:</p>
<p>On January 17th, 2009 I reported a reproducible bug in Windows Vista in the article <a title="Permanent Link: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!" rel="bookmark" href="http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/">DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</a>  <em>(The article is written in German, you find a description in English below in the next lines)</em></p>
<p><strong>Fact:</strong><br />
Windows Vista and Window 7 are up to 50 times slower in the execution of a simple DrawText function with DT_CALCRECT set compared to Windows XP.<br />
You can find the source code for a sample code (VS-2005 MFC project) that shows the bug here:  <a href="http://blog.m-ri.de/wp-content/uploads/2009/01/testdrawtext.zip">TestDrawText.zip</a>. If you are just interested in the executable you can find it here <a href="http://blog.m-ri.de/wp-content/uploads/2009/01/testdrawtextexe.zip">TestDrawTextExe.zip</a>.</p>
<p>And as far as I can see the overall performance of <em>DrawText </em>is affected.</p>
<p><strong>My request</strong>:<br />
If you find it important that this need a fix, or if you have the feeling or the knowledge, that you software might be effected. Please leave a comment here <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p>Or feel free to vote on the bug I filed for Windows 7 on Microsoft Connect:<br />
<a href="https://connect.microsoft.com/windows7/feedback/ViewFeedback.aspx?FeedbackID=401007">https://connect.microsoft.com/windows7/feedback/ViewFeedback.aspx?FeedbackID=401007</a></p>
<p><strong>Thank you </strong> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p><strong>Final Note (11.07.2009):<br />
Read on here </strong><a href="http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/"><strong>http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/</strong></a></p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F&amp;title=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment...&amp;annotation=Sorry%20for%20blogging%20in%20English.%20I%20know%20that%20I%20am%20breaking%20my%20own%20rules%20%3B%29%0D%0A%0D%0AReasons%20for%20this%20article%3A%0D%0AIn%20the%20last%20years%20I%20found%20it%20more%20an%20more%20complicated%20to%20get%20bugs%20fixed%20in%20current%20software%20produced%20by%20Microsoft.%20My%20experience%20showed%20me%2C%20that%20th" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F&amp;title=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment...&amp;notes=Sorry%20for%20blogging%20in%20English.%20I%20know%20that%20I%20am%20breaking%20my%20own%20rules%20%3B%29%0D%0A%0D%0AReasons%20for%20this%20article%3A%0D%0AIn%20the%20last%20years%20I%20found%20it%20more%20an%20more%20complicated%20to%20get%20bugs%20fixed%20in%20current%20software%20produced%20by%20Microsoft.%20My%20experience%20showed%20me%2C%20that%20th" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F&amp;bm_description=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment...&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F&amp;t=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment..." title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F&amp;title=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment..." title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=Slow%20DrawText%20performance%20in%20Vista%20and%20Windows%207.%20Please%20comment...%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F02%2F15%2Fslow-drawtext-performance-in-vista-and-windows-7-please-comment%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/03/05/selbst-reingelegt-beim-test-von-xp-oder-spaeter/" title="Selbst reingelegt beim Test von &#8220;XP oder später&#8221; (Do 05. Mrz 2009)">Selbst reingelegt beim Test von &#8220;XP oder später&#8221;</a> (7)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/04/25/refactoring-mit-hilfe-des-compilers-kann-eine-tueckische-sache-werden/" title="Refactoring mit Hilfe des Compilers kann eine tückische Sache werden (Sa 25. Apr 2009)">Refactoring mit Hilfe des Compilers kann eine tückische Sache werden</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/03/18/lvm_getsubitemrect-mit-lvir_icon-liefert-andere-ergebnisse-unter-vista-als-unter-xp/" title="LVM_GETSUBITEMRECT mit LVIR_ICON liefert andere Ergebnisse unter Vista als unter XP (Mi 18. Mrz 2009)">LVM_GETSUBITEMRECT mit LVIR_ICON liefert andere Ergebnisse unter Vista als unter XP</a> (5)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/02/15/slow-drawtext-performance-in-vista-and-windows-7-please-comment/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</title>
		<link>http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/</link>
		<comments>http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 09:32:29 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Perfomance]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=402</guid>
		<description><![CDATA[<p> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' />  Ja Ihr habt ganz richtig gelesen und ich irre mich nicht <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p>Wir haben in einem unserer C++/<em>MFC</em> Programmen eine komplexe Anzeige von Reports, die alle unterschiedliche Zeilenhöhe haben und in einem speziellen Fenster angezeigt werden (eigene Entwicklung).<br />
Nun stellten wir fest, dass das Rollen in diesem Programmteil auf <em>Vista</em>-Rechnern mit viel Nachlauf funktionierte und auch einige andere Operationen länger als gewohnt dauerten. Bei meinem Suchen, Profilen und Testen kam ich auf ein sehr lahmes Abarbeiten der Funktion <em>DrawText  </em>mit <em>DT_CALCRECT</em>.</p>
<p>Um das Problem zu isolieren schrieb ich ein kleines Testprogramm, das erstaunliches zu Tage brachte.<br />
Hier die Ergebnisse von 4 verschiedenen Rechnern (Durchlauf von 100&#215;100 <em>DrawText</em> Calls):</p>
<ul>
<li>Pentium Quad-Core Q8200 mit <strong>Vista: 48.111 msec</strong></li>
<li>Pentium Core2Duo T2310 mit <strong>Vista: 78.953 msec</strong></li>
<li>Pentium Dual Core 3,2Ghz mit <strong>XP: 1.516 msec</strong></li>
<li>Alter Pentium 3,0Ghz HT mit <strong>XP: 1.922 msec</strong></li>
</ul>
<p><strong> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' />  Der Code ist teilweise um den Faktor 50 langsamer auf <em>Windows-Vista</em> im Vergleich zu <em>Windows-XP </em> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </strong></p>
<p>Wer Lust hat es selbst zu testen, der findet hier das Beispielprogramm im Sourcecode (VS-2005):  <a href="http://blog.m-ri.de/wp-content/uploads/2009/01/testdrawtext.zip">TestDrawText.zip</a><br />
Wer das Programm als Exe möchte findet es hier: <a href="http://blog.m-ri.de/wp-content/uploads/2009/01/testdrawtextexe.zip">TestDrawTextExe.zip</a></p>
<p><strong>Beschreibung:<br />
</strong>Dieses Beispielprogramm führt gemäß einem angegebenen Zähler je 100mal <em>DrawText </em>mit <em>DT_CALCRECT </em>für einen längeren mehrzeiligen Text aus. Hierbei werden immer zufällige Textlängen verwendet. Der Algorithmus liefert jedoch immer die gleiche Zufallssequenz, damit der Test auch Vergleichbar bleibt.<br />
Der Zufallsmechanismus wurde nur eingebaut, um für für meinen Fall realitätsnahe Daten zu liefern.</p>
<p><strong>Anmerkung:</strong><br />
Eine entsprechende Supportanfrage bei <em>Microsoft</em> läuft <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /><br />
Was dabei herauskommt werde ich berichten&#8230;</p>
<p><strong>Zuletzt angemerkt:<br />
</strong><em>Windows 7 </em>soll ja schneller sein als <em>Windows Vista</em>. Wer weiß? Ich habe es noch nicht getestet.<br />
Vieleicht haben die nur diesen Bug gefixed und einen gigantischen Performanceschub erhalten <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' />  &#8230; SCNR&#8230;</p>
<p><strong>Nachtrag (11.07.2009): <br />
Die Auiflösung zu diesem Problem findet sich hier in diesem Artikel </strong><a href="http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/"><strong>http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/</strong></a></p>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;annotation=%3A%21%3A%20Ja%20Ihr%20habt%20ganz%20richtig%20gelesen%20und%20ich%20irre%20mich%20nicht%20%3A%21%3A%0D%0A%0D%0AWir%20haben%20in%20einem%20unserer%20C%2B%2B%2FMFC%20Programmen%20eine%20komplexe%20Anzeige%20von%20Reports%2C%20die%20alle%20unterschiedliche%20Zeilenh%C3%B6he%20haben%20und%20in%20einem%20speziellen%20Fenster%20angezeigt%20werden%20%28eigene%20" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;notes=%3A%21%3A%20Ja%20Ihr%20habt%20ganz%20richtig%20gelesen%20und%20ich%20irre%20mich%20nicht%20%3A%21%3A%0D%0A%0D%0AWir%20haben%20in%20einem%20unserer%20C%2B%2B%2FMFC%20Programmen%20eine%20komplexe%20Anzeige%20von%20Reports%2C%20die%20alle%20unterschiedliche%20Zeilenh%C3%B6he%20haben%20und%20in%20einem%20speziellen%20Fenster%20angezeigt%20werden%20%28eigene%20" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;bm_description=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;t=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F&amp;title=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=DrawText%20unter%20Vista%20gegen%C3%BCber%20XP%20um%20bis%20zu%20Faktor%2050%20langsamer%21%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2009%2F01%2F17%2Fdrawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/" title="Auslösung: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer! (Sa 11. Jul 2009)">Auslösung: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!</a> (4)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/03/05/selbst-reingelegt-beim-test-von-xp-oder-spaeter/" title="Selbst reingelegt beim Test von &#8220;XP oder später&#8221; (Do 05. Mrz 2009)">Selbst reingelegt beim Test von &#8220;XP oder später&#8221;</a> (7)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/05/nach-ie8-installation-oeffnet-ein-doppelklick-auf-einen-ordner-im-explorer-immer-ein-neues-fenster/" title="Nach IE8 Installation öffnet ein Doppelklick auf einen Ordner im Explorer immer ein neues Fenster (Mi 05. Aug 2009)">Nach IE8 Installation öffnet ein Doppelklick auf einen Ordner im Explorer immer ein neues Fenster</a> (0)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2009/01/17/drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>SETX der kleine Helfer für die wechselnden Environment Variablen des Entwicklers</title>
		<link>http://blog.m-ri.de/index.php/2008/09/29/setx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers/</link>
		<comments>http://blog.m-ri.de/index.php/2008/09/29/setx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 18:21:08 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VS 2008]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[IDE]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=333</guid>
		<description><![CDATA[<p>In manchen Fällen kommt man um Environment Variablen nicht herum. Sie machen es auch einfach, globale Pfade für Linker, Präprozessor und auch für die Ausführung (<em>PATH</em>) zu setzen, oder eben auch EXEs und  DLLs zu steuern.</p>
<p>Solche Environment Variablen, bzw. INCLUDE und LIB Pfade zu setzen für das ganze System kann mühsam sein wenn man die Windows System UI nutzt. Der Aufruf ist umständlich und es erfolgt ein <em>UAC</em>-Prompt. Eine andere Variante wäre die Nutzung einer Reg-Datei. Dazu muss man aber wieder der <em>UAC-</em>Prompt<em> </em>über sich ergehen lassen.</p>
<p>Es geht viel einfacher, mit dem Helferlein <em>SETX.EXE</em>, das seit <em>Vista</em> nicht mehr nur im <a href="http://technet2.microsoft.com/windowsserver/de/library/9e0748f8-5c67-4dc4-b8dc-11a8481d86331031.mspx?mfr=true">Windows Ressource Kit</a> drin ist. Mit SETX kann man sich Ruckzuck ein kleines Batch-File schreiben, dass alle wichtigen Umgebungsvariablen für eine bestimmte Projektumgebung setzt.<br />
Genial ist einfach, dass ab diesem Moment für jedes neu gestartete Programm diese Environment Variablen gelten. Natürlich inklusive der Visual Studio Umgebung.</p>
<p>In der Verbindung mit dem Aufruf von <em>DEVENV /useenv</em> kann man damit sehr schnell seinen Rechner auf eine komplett andere Projektumgebung einstellen. Und das ganze auch ohne <em>UAC</em>-Prompt <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Ja! Man glaubt es kaum. Es erfolgt ja auch nur Zugriff auf <em>HKCU</em>.</p>
<p>Anmerkung:Ich benutzt sehr gerne den <a href="http://blog.m-ri.de/index.php/2007/09/18/vs-tipps-tricks-der-property-manager-der-unbekannte-helfer/">Property-Manager</a> nur ist es eben nur eine Lösung für alle Software, die aus dem Visual-Studio heraus gestartet wird, und es nützt gar nichts, wenn man die EXE/DLL selber mit unterschiedlichen Umgebungen testen will.</p>
<p>Und <em>SETX </em>ist auch noch wirklich extrem flexibel. Man kann nicht nur einfach eine Environment Variable setzen, wie man es mit <em>SET </em>kennt. Als Quelle können hier sogar Tetxdateien, Registryschlüssel genutzt werden. Und das Multitalent <em>SETX </em>kann sogar bei Angabe von Computername, Nutzername und Kennwort remote benutzt werden und damit auch die Systemweiten Parameter verändern.</p>
<p>Hier die Beschreibung von SETX /?</p>
<blockquote><p>SetX hat drei verschiedene Ausführungsmethoden:</p>
<p>Syntax 1:<br />
    SETX [/S System [/U [Domäne\]Benutzer [/P [Kennwort]]]] var Wert [/M]</p>
<p>Syntax 2:<br />
    SETX [/S System [/U [Domäne\]Benutzer [/P [Kennwort]]]] var /K<br />
         Registrierungspfad [/M]</p>
<p>Syntax 3:<br />
    SETX [/S System [/U [Domäne\]Benutzer [/P [Kennwort]]]]<br />
         /F Datei {var {/A x,y | /R x,y Zeichenfolge}[/M] | /X}<br />
         [/D Trennzeichen]</p>
<p>Beschreibung:<br />
  Erstellt oder bearbeitet Umgebungsvariablen in der Benutzer- oder<br />
  Systemumgebung. Ermöglicht das Festlegen von Variablen, die auf<br />
  Argumenten, Registrierungsschlüsseln oder Dateieingabe basieren.</p>
<p>Parameterliste:<br />
  /S    System             Remotesystem für die Verbindungsherstellung.</p>
<p>  /U    [Domäne\]Benutzer  Bestimmt den Benutzerkontext, unter dem<br />
                           der Befehl ausgeführt wird.</p>
<p>  /P    [Kennwort]         Bestimmt das Kennwort für den<br />
                           Auslassung fordert zur Kennworteingabe auf.</p>
<p>  Variable                 Bestimmt die zu setzende Umgebungsvariable.</p>
<p>  Wert                     Bestimmt einen zu setzenden Wert<br />
                           für die Umgebungsvariablen.</p>
<p>  /K    Registrierungspfad Bestimmt, dass die Variable auf Informationen<br />
                           aus einem Registrierungsschlüssel basiert.<br />
                           Gültiges Pfadformat:<br />
                           Struktur\Schlüssel\&#8230;\Wert, z. B.<br />
                           HKEY_LOCAL_MACHINE\System\CurrentControlSet\<br />
                           Control\TimeZoneInformation\StandardName.</p>
<p>  /F    Datei              Bestimmt den Dateinamen der zu verwendenden<br />
                           Textdatei.</p>
<p>  /A    x,y                Bestimmt die absoluten Dateikoordinaten<br />
                           (Zeile X, Element Y) als Parameter, nach denen<br />
                           innerhalb der Datei gesucht werden soll.</p>
<p>  /R    x,y Zeichenfolge   Bestimmt die relativen Dateikoordinaten im<br />
                           Verhältnis zur &#8220;Zeichenfolge&#8221; als Suchparameter.</p>
<p>  /M                       Legt fest, dass die Variable in der<br />
                           systemübergreifenden Umgebung<br />
                           (HKEY_LOCAL_MACHINE) gesetzt werden. Der<br />
                           Standardwert wird unter der Umgebung gesetzt<br />
                           (HKEY_CURRENT_USER).</p>
<p>  /X                       Zeigt Dateiinhalte mit den x,y Koordinaten an.</p>
<p>  /D    Trennzeichen       Bestimmt zusätzliche Trennzeichen, wie z. B.<br />
                           &#8220;,&#8221; oder &#8220;\&#8221;. Standardtrennzeichen sind<br />
                           Leerzeichen, Tabulator, Wagenrücklauf und<br />
                           Zeilenvorschub. Beliebige ASCII-Zeichen können<br />
                           als zusätzliche Trennzeichen verwendet<br />
                           werden. Die max. Anzahl an Trennzeichen,<br />
                           einschließlich Standardtrennzeichen beträgt 15.</p>
<p>  /?                       Zeigt diese Hilfe an.</p>
<p>HINWEIS: 1) SETX schreibt Variablen in die übergeordnete Umgebung<br />
            in der Registrierung.</p>
<p>         2) Auf einem lokalen System sind Variablen, die mit<br />
            diesem Programm erstellt oder bearbeitet wurden,<br />
            erst in zukünftigen und nicht in aktuellen<br />
            cmd.exe Befehlszeilenfenstern verfügbar.</p>
<p>         3) Auf einem Remotesystem sind Variablen, die mit<br />
            diesem Programm erstellt oder bearbeitet wurden, erst<br />
            bei der nächsten Anmeldesitzung verfügbar.</p>
<p>         4) Gültige Registrierungsschlüssel-Datentypen:<br />
            REG_DWORD, REG_EXPAND_SZ, REG_SZ, REG_MULTI_SZ</p>
<p>         5) Unterstützte Registrierungsstrukturen: HKEY_LOCAL_MACHINE<br />
            HKEY_CURRENT_USER (HKCU).</p>
<p>         6) Bei Trennzeichen wird zwischen Groß-/Kleinschreibung<br />
            unterschieden.</p>
<p>         7) REG_DWORD-Werte werden aus der Registrierung<br />
            im Dezimalformat extrahiert.</p>
<p>Beispiele:<br />
    SETX MACHINE COMPAQ<br />
    SETX MACHINE &#8220;COMPAQ COMPUTER&#8221; /M<br />
    SETX MYPATH &#8220;%PATH%&#8221;<br />
    SETX MYPATH ~PATH~<br />
    SETX /S System /U Benutzer /P Kennwort MACHINE COMPAQ<br />
    SETX /S System /U Benutzer /P Kennwort ^%PATH^%<br />
    SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\<br />
         Control\TimeZoneInformation\StandardName<br />
    SETX BUILD /K &#8220;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows<br />
         NT\CurrentVersion\CurrentBuildNumber&#8221; /M<br />
    SETX /S System /U Benutzer /P Kennwort TZONE /K HKEY_LOCAL_MACHINE\<br />
         System\CurrentControlSet\Control\TimeZoneInformation\<br />
         StandardName<br />
    SETX /S System /U Benutzer /P Kennwort BUILD /K<br />
         &#8220;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\<br />
         CurrentVersion\CurrentBuildNumber&#8221; /M<br />
    SETX /F ipconfig.out /X<br />
    SETX IPADDR /F ipconfig.out /A 5,11<br />
    SETX OCTET1 /F ipconfig.out /A 5,3 /D &#8220;#$*.&#8221;<br />
    SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway<br />
    SETX /S System /U Benutzer /P Kennwort /F c:\ipconfig.out /X</p></blockquote>
<hr /><small>Copyright &copy; 2008 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>
<div class="sociable">

<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F&amp;title=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers&amp;annotation=In%20manchen%20F%C3%A4llen%20kommt%20man%20um%20Environment%20Variablen%20nicht%20herum.%20Sie%20machen%20es%20auch%20einfach%2C%20globale%20Pfade%20f%C3%BCr%20Linker%2C%20Pr%C3%A4prozessor%20und%20auch%20f%C3%BCr%20die%20Ausf%C3%BChrung%20%28PATH%29%20zu%20setzen%2C%20oder%20eben%20auch%20EXEs%20und%C2%A0%20DLLs%20zu%20steuern.%0D%0A%0D%0ASolche%20Environment%20V" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F&amp;title=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers&amp;notes=In%20manchen%20F%C3%A4llen%20kommt%20man%20um%20Environment%20Variablen%20nicht%20herum.%20Sie%20machen%20es%20auch%20einfach%2C%20globale%20Pfade%20f%C3%BCr%20Linker%2C%20Pr%C3%A4prozessor%20und%20auch%20f%C3%BCr%20die%20Ausf%C3%BChrung%20%28PATH%29%20zu%20setzen%2C%20oder%20eben%20auch%20EXEs%20und%C2%A0%20DLLs%20zu%20steuern.%0D%0A%0D%0ASolche%20Environment%20V" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a></li>
	<li><a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F&amp;bm_description=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a></li>
	<li><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F&amp;t=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F&amp;title=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://twitter.com/home?status=SETX%20der%20kleine%20Helfer%20f%C3%BCr%20die%20wechselnden%20Environment%20Variablen%20des%20Entwicklers%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2008%2F09%2F29%2Fsetx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a></li>
</ul>
</div>

	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/" title="Zusätzliche Befehle im Explorer-Kontextmenü von Vista (Mo 14. Jan 2008)">Zusätzliche Befehle im Explorer-Kontextmenü von Vista</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/" title="Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; umbiegen kann (Mo 11. Feb 2008)">Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; umbiegen kann</a> (3)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/02/13/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-auf-die-powershell-umbiegen-kann/" title="Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; auf die Powershell umbiegen kann (Mi 13. Feb 2008)">Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; auf die Powershell umbiegen kann</a> (2)</li>
</ul>

]]></description>
		<wfw:commentRss>http://blog.m-ri.de/index.php/2008/09/29/setx-der-kleine-helfer-fuer-die-wechselnden-environment-variablen-des-entwicklers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
