<?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; CMD.EXE</title>
	<atom:link href="http://blog.m-ri.de/index.php/tag/cmdexe/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>Sat, 04 Feb 2012 12:07:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ExitInstance gibt für dialogbasierende MFC Anwendungen Unfug zurück</title>
		<link>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/</link>
		<comments>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 18:58:56 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[4NT]]></category>
		<category><![CDATA[Batch]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Dialog]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=484</guid>
		<description><![CDATA[Wer eine dialogbasierende Anwendung mal mit etwas mehr Aufmerksamkeit debuggt oder analysiert wird feststellen, dass der Returncode der Anwendung irgendwie ziemlich zufällig ist. Beobachtet man dies genauer dann stellt man folgendes fest: Beendet man die Anwendung mit der Maus (Klick auf X) oder OK/Cancel so ist der Returncode 0 Hält man die Strg-Taste beim Klick [...]]]></description>
			<content:encoded><![CDATA[<p>Wer eine dialogbasierende Anwendung mal mit etwas mehr Aufmerksamkeit debuggt oder analysiert wird feststellen, dass der Returncode der Anwendung irgendwie ziemlich zufällig ist. Beobachtet man dies genauer dann stellt man folgendes fest:</p>
<ul>
<li>Beendet man die Anwendung mit der Maus (Klick auf X) oder OK/Cancel so ist der Returncode 0</li>
<li>Hält man die <em>Strg</em>-Taste beim Klick fest ist der Returncode 8</li>
<li>Beendet man die Anwendung mit <em>Alt+F4 </em>bekommen wir 2.</li>
<li>Und jedermann kann jetzt schon mal raten was passiert, wenn wir die Umschalttaste festhalten. Genau dann bekommen wir 4 als Returncode.</li>
</ul>
<p>Die Mystik hinter dem Ganzen ist die Behandlung von (<em>Afx)PostQuitMessage</em>. Eigentlich sollte mit dieser Nachricht auch der Exitcode gesetzt werden, der mit <em>WM_QUIT</em> versendet wird. Und wenn eben bei einer <em>MDI/SDI </em>Anwendung alles normal läuft, dann ist diese Nachricht die letzte, die aus der Messsagequeue gezogen wird. Und was passiert in <em>CWinApp::ExitInstance</em>? Genau&#8230; aus dem statischen Thread Puffer für die Windowsnachrichten wird mit  AfxGetCurrentMessage die letzte Windowsnachricht (normalerweise <em>WM_QUIT</em>) geholt und der <em>wParam</em> Wert bestimmt. Dieser wird dann zurückgegeben.</p>
<p>Leider ist aber <em>WM_QUIT </em>in manchen Fällen aber nicht die letzte Nachricht, die zum Beenden eines Programms führt. Ganz besonders eben nicht bei einer dialogbasierenden <em>MFC</em>-Anwendung. Da ist die letzte Nachricht ist dann eben ein <em>WM_COMMAND </em>oder ein <em>WM_LBUTTONUP </em>der das Schließen der Anwendung auslöst <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' />  Und der <em>wParam</em> Wert ist eben entsprechend dieser Nachricht belegt!</p>
<p>Gleiches passiert natürlich, wenn man nach dem Beenden der Messageloop noch andere interne Fenster zerstört. Auch in diesem Fall kann noch mal die interne <em>AfxWndProc</em> durchlaufen werden und dann wird der Returncode auch wieder verändert.</p>
<p>Wer also wirklich Wert auf den Returncode legt (im wahrsten Sinne des Wortes), der sollte sich nie auf den Wert verlassen, der durch <em>CWinApp::ExitInstance</em> zurückgegeben wird oder den Wert, den man selbst mit <em>AfxPostQuitMessage </em>evtl. versucht zu setzen. Eine Variable in <em>CWinApp </em>tut hier einen besseren Dienst. Ebenfalls sollte man ExitInstance überschreiben und immer 0 zurückgeben, wenn man sowieso keine Verwendung für den Returncode des Prozesses hat oder haben möchte.</p>
<p>BTW:<br />
Die Geschichte, wie ich darauf gekommen bin ist schon eigentümlich genug.<br />
Ich habe komplexere Batch-Dateien, die die gesamte Erstellung einer produktiv-Version regelt. Darin kommen im Problemfall auch ein paar Userinteraktionen vor. Diese werden durch Windows Anwendungen ausgelöst, die evtl. einen Dialog anzeigen. Jedem ist klar, dass ohne Dialog und ohne Fenster keine Nachricht abgearbeitet wird. Der Returncode ist also 0! Der Batch verwendet <a href="http://www.jpsoft.com/">4NT</a> Syntax und dort kann man <em>ON ERROR </em>definieren und somit sofort eine Fehlerbehandlung auslösen, wenn der Returncode eines Programms nicht 0 ist.<br />
Nun kann sich jeder schon denken was passiert ist. Die Userinteraktion wurde ausgelöst. Der Benutzer machte eine Angabe und&#8230; der Batch terminierte erstaunlicherweise mit einem Fehler&#8230; (s.o.)</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMD.EXE versteht keine Unicode oder UTF-8 Batch Dateien</title>
		<link>http://blog.m-ri.de/index.php/2009/01/26/cmdexe-versteht-keine-unicode-oder-utf-8-batch-dateien/</link>
		<comments>http://blog.m-ri.de/index.php/2009/01/26/cmdexe-versteht-keine-unicode-oder-utf-8-batch-dateien/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 19:19:31 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[4NT]]></category>
		<category><![CDATA[CMD.EXE]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=411</guid>
		<description><![CDATA[Ich habe für einen Deployment Prozess noch einen etwas größere komplexe Batch-Datei. Die BAT Datei enthielt auch zum Teil eben Umlaute die ja nicht ANSI sein dürfen. Zudem auch einige der Verzeichnisse neuerdings Umlaute enthalten, dachte ich mir: &#8220;Was soll es, Du speicherst das einfach als Unicode Datei!&#8221; Die Vista CMD.EXE wird ja anhand der BOM [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe für einen Deployment Prozess noch einen etwas größere komplexe Batch-Datei. Die BAT Datei enthielt auch zum Teil eben Umlaute die ja nicht ANSI sein dürfen. Zudem auch einige der Verzeichnisse neuerdings Umlaute enthalten, dachte ich mir: &#8220;Was soll es, Du speicherst das einfach als Unicode Datei!&#8221; Die <em>Vista CMD.EXE </em>wird ja anhand der <em>BOM </em>erkennen was los ist.</p>
<p> <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' />  Pustekucken <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' />  <em>CMD.EXE </em>mag in keiner Art und Weise Unicode oder UTF-8 in Batch-Dateien.</p>
<p>No chance at all. Einzig zur Unicode-Ausgabe kann man die <em>CMD.EXE </em>verleiten.<br />
Eigentümlich ist das schon, weil <em>TYPE </em>z.B. BOMs korrekt berücksichtigt.</p>
<p>Da merke ich mal wieder wie verwöhnt ich mit <a href="http://www.jpsoft.com/">4NT </a>bin.</p>
<p>PS: Ich weiß das es in Zeiten der Powershell andere Möglichkeiten gibt.<br />
Man kann mich mit entsprechenden Kommentaren also gerne verschonen. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2009/01/26/cmdexe-versteht-keine-unicode-oder-utf-8-batch-dateien/feed/</wfw:commentRss>
		<slash:comments>0</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[Vista]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[VS 2008]]></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[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 (PATH) zu setzen, oder eben auch EXEs und  DLLs zu steuern. Solche Environment Variablen, bzw. INCLUDE und LIB Pfade zu setzen für das ganze System kann mühsam sein wenn man [...]]]></description>
			<content:encoded><![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; 2010 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>]]></content:encoded>
			<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>
		<item>
		<title>CLIP.EXE der nette kleine Helfer unter Vista</title>
		<link>http://blog.m-ri.de/index.php/2008/09/25/clipexe-der-nette-kleine-helfer-unter-vista/</link>
		<comments>http://blog.m-ri.de/index.php/2008/09/25/clipexe-der-nette-kleine-helfer-unter-vista/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:45:36 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[4NT]]></category>
		<category><![CDATA[CMD.EXE]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=332</guid>
		<description><![CDATA[Wer wollte nicht schon mal ganz schnell die Ausgabe eines Befehlszeilen Tools in der Zwischenablage haben. OK man kann einen Bereich mit dr Maus im Konsolenfenster markieren, aber was macht man wenn es um eine 2000 Zeilen Ausgabe geht? Unter Vista ist das ganz einfach, man benützt einfach eine Pipe und CLIP.EXE! DIR &#124; CLIP [...]]]></description>
			<content:encoded><![CDATA[<p>Wer wollte nicht schon mal ganz schnell die Ausgabe eines Befehlszeilen Tools in der Zwischenablage haben. OK man kann einen Bereich mit dr Maus im Konsolenfenster markieren, aber was macht man wenn es um eine 2000 Zeilen Ausgabe geht?</p>
<p>Unter <em>Vista </em>ist das ganz einfach, man benützt einfach eine Pipe und <em>CLIP.EXE</em>!</p>

<div class="wp_syntax"><div class="code"><pre class="bat" style="font-family:monospace;">DIR | CLIP</pre></div></div>

<p>Siehe da. Man hat den gesamten Text in die Zwischenablage gepipet.<br />
Was CLIP macht verrät es wenn man einfach mal <em><strong>CLIP /? </strong></em>ausführt.</p>
<blockquote><p>CLIP</p>
<p>Beschreibung:<br />
    Leitet die Ausgabe von Befehlszeilenprgrammen in die<br />
    Windows-Zwischenablage um.<br />
    Diese Textausgabe kann in andere Programme eingefügt werden.</p>
<p>Parameterliste:<br />
    /?                  Zeigt diese Hilfe an.</p>
<p>Beispiele:<br />
    DIR | CLIP     Erstellt eine Kopie des aktuellen Verzeichnis-<br />
                         inhalts in der Windows-Zwischenablage.</p>
<p>    CLIP &lt; README.TXT   Erstellt eine Textkopie von readme.txt<br />
                         in der Windows-Zwischenablage.</p></blockquote>
<p>BTW: Jeder <a href="http://www.jpsoft.com">4NT bzw. TCC/LE</a> Nutzer kennt natürlich schon längst den <strong><em>CLIP: </em></strong>Device! Diejenigen mussten auf solch ein Helferlein auch nicht bis <em>Vista </em>warten. Damit kann man das ganze auch einfach so</p>

<div class="wp_syntax"><div class="code"><pre class="bat" style="font-family:monospace;">DIR &gt; CLIP:</pre></div></div>

<p>machen.</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/09/25/clipexe-der-nette-kleine-helfer-unter-vista/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Aufflackern eines Konsolenfensters bei Nutzung system und _popen</title>
		<link>http://blog.m-ri.de/index.php/2008/09/04/aufflackern-eines-konsolenfensters-bei-nutzung-system-und-_popen/</link>
		<comments>http://blog.m-ri.de/index.php/2008/09/04/aufflackern-eines-konsolenfensters-bei-nutzung-system-und-_popen/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 19:02:34 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[CRT]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[VS 2008]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[WinAPI]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=299</guid>
		<description><![CDATA[Immer wieder kommt die Frage auf, warum sich ein Konsolenfenster kurz öffnet wenn man eine Windows Anwendung, wie z.B. Notepad mit den CRT Funktion system startet. Die Antwort ist ganz einfach, dazu muss man einfach mal nicht einmal unbedingt einen Blick in die Sourcen werfen, denn es ist sogar richtig für system dokumentiert in der [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder kommt die Frage auf, warum sich ein Konsolenfenster kurz öffnet wenn man eine Windows Anwendung, wie z.B. Notepad mit den CRT Funktion <a href="http://msdn.microsoft.com/en-us/library/277bwbdz.aspx">system</a> startet.</p>
<p>Die Antwort ist ganz einfach, dazu muss man einfach mal nicht einmal unbedingt einen Blick in die Sourcen werfen, denn es ist sogar richtig für system dokumentiert in der <a href="http://msdn.microsoft.com/en-us/library/277bwbdz.aspx">MSDN</a>.</p>
<blockquote><p>The <span><span class="keyword">system</span></span> function passes <span class="parameter"><em>command</em></span> to the command interpreter, which executes the string as an operating-system command. <span><span class="keyword">system</span></span> refers to the <span><span class="keyword">COMSPEC</span></span> and <span><span class="keyword">PATH</span></span> environment variables that locate the command-interpreter file (the file named CMD.EXE in Windows 2000 and later). If <span class="parameter"><em>command</em></span> is NULL, the function simply checks to see whether the command interpreter exists.</p></blockquote>
<p>Also kurz und bündig: Es wird zwangsläufig immer ein Konsolenfenster geöffnet. Das verschwindet zwar sofort wieder, wenn man eine GUI Applikation startet, aber das kann man vermeiden indem man gleich <em>ShellExecute </em>verwendet.</p>
<p>Ganz anders sieht es mit der Doku bei <a href="http://msdn.microsoft.com/en-us/library/96ayss4b.aspx">_popen</a> aus. <em>_popen </em>scheint sich anzubieten, um die Ausgaben eines Tools in eine Datei umzuleiten. Aber auch <em>_popen </em>nutzt wie <em>system CMD.EXE /c </em>(<em>COMSPEC</em>). Um das heraus zu bekommen muss man allerdings den Source Code der <em>CRT </em>zu Rate ziehen. Das bedeutet, dass auch bei Verwendung von <em>_popen </em>ein Flackern durch ein Konsolenfenster nicht ausbleibt.</p>
<p>Wie man es richtig macht, wenn man die stdin/stdout umleiten will findet man in den wohlbekannten Artikeln der MSDN <a href="http://support.microsoft.com/kb/190351">http://support.microsoft.com/kb/190351</a> und <a href="http://msdn.microsoft.com/en-us/library/ms682499.aspx">http://msdn.microsoft.com/en-us/library/ms682499.aspx</a>. Durch die Verwendung von CreateProcess lässt sich auch ganz vermeiden, dass der zweite Prozess angezeigt wird.</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/09/04/aufflackern-eines-konsolenfensters-bei-nutzung-system-und-_popen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abgespecktes 4NT als TCC/LE von JP-Software als Freeware</title>
		<link>http://blog.m-ri.de/index.php/2008/06/22/abgespecktes-4nt-als-tccle-von-jp-software-als-freeware/</link>
		<comments>http://blog.m-ri.de/index.php/2008/06/22/abgespecktes-4nt-als-tccle-von-jp-software-als-freeware/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 16:23:04 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[4NT]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[COMSPEC]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=275</guid>
		<description><![CDATA[Ich bin seit Jahren ein begeisterter Fan von 4NT (kennengelernt habe ich es noch als 4DOS unter DOS 4.0). Was man so alles vermisst wenn man mal mit CMD.EXE arbeitet merke ich immer sofort, wenn ich ein DIR oder COPY ausführe und die komplexen Ranges, die 4NT bietet , sofort vermisse. Ganz zu schweigen von [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin seit Jahren ein begeisterter Fan von 4NT (kennengelernt habe ich es noch als 4DOS unter DOS 4.0).<br />
Was man so alles vermisst wenn man mal mit <em>CMD.EXE</em> arbeitet merke ich immer sofort, wenn ich ein <em>DIR </em>oder <em>COPY </em>ausführe und die komplexen <em>Ranges, </em>die 4NT bietet , sofort vermisse.<br />
Ganz zu schweigen von netten Befehlen wie <em>LIST, SELECT </em>und anderem.</p>
<p>Auf den großen Bruder <em>Take Command </em>habe ich bisher immer verzichtet.<br />
Ich verwende 4NT gerade auch da, wo ich komplexe Batchfiles für den gesamten Weg vom Build bis zum Setup benötige. All&#8217; das Kopieren von Dateien und Tools anwerfen, die dann irgendwann ein fertiges SETUP Paket erzeugen. Es ist einfach unschlagbar von den internen Funktionen, die hier geboten werden.</p>
<p>Jetzt hat mich JP-Software überrascht:</p>
<ol>
<li>Negativ: <em>4NT </em>als Produkt alleine gibt es nicht mehr. Man kann den gesamten Funktionsumfang nur noch als <em>Take Command </em>erhalten.</li>
<li>Positiv: Es gibt <em>4NT </em>in etwas abgespeckter Form nun als <em>TCC/LE (Take Command Console LE)</em> kostenlos <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </li>
</ol>
<p>Soweit ich das sehe fehlt nur der Batch-Debugger und der Batch-Compiler, die ich sowieso kaum nutze, sonst sind alle meine gliebten Befehlszeilenfunktionen vorhanden.<br />
In den internen Funktionen wird man evtl. die Datums- und Zeitfunktionen vermissen, die komplett herausgenommen wurden. Gleichfalls wie einige andere Funktionen.<br />
Selbst mit den eingeschränkten Funktionen: TCC/LE ist ein Muss <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p>Download hier: http://www.jpsoft.com/tccledes.htm</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/06/22/abgespecktes-4nt-als-tccle-von-jp-software-als-freeware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tipps &amp; Tricks:EXE Dateien in der Eingabeaufforderung/Batches überall zugänglich machen ohne die Verwendung von PATH</title>
		<link>http://blog.m-ri.de/index.php/2008/05/03/tipps-tricksexe-dateien-in-der-eingabeaufforderungbatches-ueberall-zugaenglich-machen-ohne-die-verwendung-von-path/</link>
		<comments>http://blog.m-ri.de/index.php/2008/05/03/tipps-tricksexe-dateien-in-der-eingabeaufforderungbatches-ueberall-zugaenglich-machen-ohne-die-verwendung-von-path/#comments</comments>
		<pubDate>Sat, 03 May 2008 17:54:42 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VS-Tipps&Tricks]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/index.php/2008/05/03/tipps-tricksexe-dateien-in-der-eingabeaufforderungbatches-ueberall-zugaenglich-machen-ohne-die-verwendung-von-path/</guid>
		<description><![CDATA[Ich verwende sehr oft eine Eingabeaufforderung/Console/CMD.EXE/4-NT Session (wie man es auch nennen mag), weil vieles für mich einfach so schneller geht. Zudem verwende ich eine Reihe von netten Helferleins (Tools), die zum Teil auch in meinen Buildprozessen integriert sind. Dort wird manchmal auch etwas gemacht was über ein TF CHECKOUT hinausgeht, oder was eben sowieso durch [...]]]></description>
			<content:encoded><![CDATA[<p>Ich verwende sehr oft eine Eingabeaufforderung/Console/CMD.EXE/<a target="_blank" href="http://www.jpsoft.com/">4-NT</a> Session (wie man es auch nennen mag), weil vieles für mich einfach so schneller geht.<br />
Zudem verwende ich eine Reihe von netten Helferleins (Tools), die zum Teil auch in meinen Buildprozessen integriert sind. Dort wird manchmal auch etwas gemacht was über ein <em>TF CHECKOUT </em>hinausgeht, oder was eben sowieso durch VS in den Path eingetragen wurde.</p>
<p>In den meisten Fällen nutze ich die normalen Installationsroutinen für diese Tools. Das Problem ist dann aber, dass diese Tools sich über X-<em>C:\Program Files\</em>Verzeichnisse verteilen.<br />
Jetzt bei jedem Tool zu wissen wo es installiert ist übersteigt meine Kapazitäten und meine Lust die Pfade einzugeben. Es genügt, wenn ich weiß dass ich die Powertools des <em>TFS </em>mit <em><a href="http://msdn.microsoft.com/de-de/teamsystem/aa718351.aspx">TFPT </a></em>aufrufen möchte, oder <a href="http://www.7-zip.org/">7z</a>.<br />
Nun jeden dieser Pfade in PATH einzutragen ist ja wirklich auch nicht der Schreier. Das ganze wegen einer EXE&#8230;</p>
<p>Es gibt einen einfachen Weg sich Tools so zu behandeln, dass man sie von überall aufrufen kann. Dieser Weg ist in der Shell verborgen und lautet:<br />
<em>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\<br />
</em>Jeder, der schon mal ein Installationsprogramm geschrieben hat kennt diesen Eintrag.</p>
<p>Was man zu tun hat ist ganz simpel: Man erzeugt einfach über <em>RegEdit.exe </em>in diesem Ast einen neuen Schlüssel mit dem Namen der EXE, die man gerne überall benutzen möchte (z.B. <em>7Z.EXE</em> oder <em>TFPT.EXE</em>). Auf der rechten Seite als Standardwert trägt man einfach den vollständigen Pfad ein, wo diese EXE zu finden ist (in meinem Beispiel also: <em>C:\Program Files\7-Zip\7z.exe </em>oder eben <em>C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools\TFPT.exe</em>).<br />
So einfach kann es manchmal sein <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>BTW: Leider geht das ganze nicht mit<br />
<em>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\!<br />
</em>Es gibt zwar einige dämliche Programme, die hier Eintragungen machen, allerdings haben die keine Wirkung.</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/05/03/tipps-tricksexe-dateien-in-der-eingabeaufforderungbatches-ueberall-zugaenglich-machen-ohne-die-verwendung-von-path/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; auf die Powershell umbiegen kann</title>
		<link>http://blog.m-ri.de/index.php/2008/02/13/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-auf-die-powershell-umbiegen-kann/</link>
		<comments>http://blog.m-ri.de/index.php/2008/02/13/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-auf-die-powershell-umbiegen-kann/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 20:42:16 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[COMSPEC]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/index.php/2008/02/13/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-auf-die-powershell-umbiegen-kann/</guid>
		<description><![CDATA[Torsten Schröder hat mir einen netten Kommentar in meinem letzten Blog-Artikel Vista: Wie man den Kontextmenübefehl “Eingabeaufforderung hier öffnen” umbiegen kann gegeben. Er meinte (Zitat): &#8220;noch einen Tick besser fänd ich es, wenn man es Richtung Powershell umbiegt!&#8221; Nun das gefällt mir auch und es ist auch nicht schwer. Mit dem folgenden kleinen Hack in der Registry [...]]]></description>
			<content:encoded><![CDATA[<p>Torsten Schröder hat mir einen netten Kommentar in meinem letzten Blog-Artikel <a rel="bookmark" href="http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/" title="Permanent Link: Vista: Wie man den Kontextmenübefehl “Eingabeaufforderung hier öffnen” umbiegen kann">Vista: Wie man den Kontextmenübefehl “Eingabeaufforderung hier öffnen” umbiegen kann</a> gegeben. Er meinte (Zitat):<br />
<em>&#8220;noch einen Tick besser fänd ich es, wenn man es Richtung </em><a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"><em>Powershell </em></a><em>umbiegt!&#8221;</em></p>
<p>Nun das gefällt mir auch und es ist auch nicht schwer. Mit dem folgenden kleinen Hack in der Registry kann man auch diesen erweiterten Kontextmenübefehl auch die <em>Powershell </em>umbiegen.</p>
<p class="ccode">Einfach in der Registry unter <strong><em>HKEY_CLASSES_ROOT\Directory\shell\cmd\command</em></strong><br />
den Eintrag: <em><strong>cmd.exe /s /k pushd &#8220;%V&#8221;</strong></em><br />
z.B. in <em><strong>&#8220;C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe&#8221; -noexit -command &#8220;set-location &#8216;%V&#8217;&#8221;</strong></em> tauschen.</p>
<p>Damit lässt sich nun auch für mich das erweiterte Kontextmenü unter <em>Vista </em>perfekt nutzen:</p>
<ul>
<li><em>4NT </em>integriert sich mit eigenen Kontextmenü-Befehlen.</li>
<li>und die <em>Powershell</em> ist nun über das erweiterte Kontextmenü des <em>Vista</em>-Explorers durch das Drücken der <em>Umschalt</em>-Taste extrem einfach zu erreichen.</li>
</ul>
<p>Anmerkung: Wer den Faden verloren hat, alles beginnt mit diesem Tipp:<br />
<a rel="bookmark" href="http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/" title="Permanent Link: Zusätzliche Befehle im Explorer-Kontextmenü von Vista">Zusätzliche Befehle im Explorer-Kontextmenü von Vista</a>  ;-)</p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/02/13/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-auf-die-powershell-umbiegen-kann/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vista: Wie man den Kontextmenübefehl &#8220;Eingabeaufforderung hier öffnen&#8221; umbiegen kann</title>
		<link>http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/</link>
		<comments>http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 19:28:00 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[COMSPEC]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/</guid>
		<description><![CDATA[In meinem Artikel Zusätzliche Befehle im Explorer-Kontextmenü von Vista habe ich ja erwähnt, dass der Menüpunkt Eingabeaufforderung hier öffnen immer CMD.EXE verwendet und nicht den Befehlszeileninterpreter, der durch COMSPEC definiert ist. Aber mit einem kleinen Hack in der Registry kann man auch diesen Befehl auf den eigenen Befehlszeileninterpreter umbiegen. Einfach in der Registry unter HKEY_CLASSES_ROOT\Directory\shell\cmd\command den [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem Artikel <a rel="bookmark" href="http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/" title="Permanent Link: Zusätzliche Befehle im Explorer-Kontextmenü von Vista">Zusätzliche Befehle im Explorer-Kontextmenü von Vista</a> habe ich ja erwähnt, dass der Menüpunkt <em>Eingabeaufforderung hier öffnen</em> immer CMD.EXE verwendet und nicht den Befehlszeileninterpreter, der durch COMSPEC definiert ist.<br />
Aber mit einem kleinen Hack in der Registry kann man auch diesen Befehl auf den eigenen Befehlszeileninterpreter umbiegen.</p>
<p class="ccode">Einfach in der Registry unter <strong><em>HKEY_CLASSES_ROOT\Directory\shell\cmd\command</em></strong><br />
den Eintrag: <em><strong>cmd.exe /s /k pushd &#8220;%V&#8221;</strong></em><br />
z.B. in <em><strong>&#8220;C:\Program Files\4NT\4NT.EXE&#8221; /s /k pushd &#8220;%V&#8221;</strong></em> tauschen.</p>
<p>Anmerkung: Da 4NT normalerweise auch seine eigenen Einträge in den Kontextmenüs des Explorers macht, kann man es natürlich auch als Vorteil ansehen, wenn man bei Bedarf den originalen Befehlszeileninterpreter starten kann. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/02/11/vista-wie-man-den-kontextmenuebefehl-eingabeaufforderung-hier-oeffnen-umbiegen-kann/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zusätzliche Befehle im Explorer-Kontextmenü von Vista</title>
		<link>http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/</link>
		<comments>http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 19:55:46 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[COMSPEC]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/</guid>
		<description><![CDATA[Gerade habe ich durch Zufall im Explorer von Windows Vista entdeckt, dass sich das Kontextmenü verändert, wenn man die Umschalttaste festhält. Es ist hierbei egal ob man dies mit der rechten Maustaste oder mit der Kontextmenütaste macht. Es erscheinen 3 zusätzliche Befehle, wenn man eine Datei selektiert hat: An Startmenü anheften Zur Schnellstartleiste hinzufügen Als Pfad [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade habe ich durch Zufall im Explorer von <em>Windows Vista </em>entdeckt, dass sich das Kontextmenü verändert, wenn man die Umschalttaste festhält. Es ist hierbei egal ob man dies mit der rechten Maustaste oder mit der Kontextmenütaste macht. Es erscheinen 3 zusätzliche Befehle, wenn man eine Datei selektiert hat:</p>
<ol>
<li>An Startmenü anheften</li>
<li>Zur Schnellstartleiste hinzufügen</li>
<li>Als Pfad kopieren</li>
</ol>
<p>und 2 neue Befehle wenn man ein Verzeichnis ausgewählt hat:</p>
<ol>
<li>Eingabeaufforderung hier öffnen</li>
<li>Als Pfad kopieren </li>
</ol>
<p>Die beiden ersten Befehle für Dateien kann man vergessen.</p>
<p>Ganz anders sieht das jedoch mit dem letzten Befehl <em>Als Pfad kopieren </em>aus<em>.  </em>Der ist überaus nützlich um den Pfad einer Datei, oder gar die Pfade mehrerer Dateien in die Zwischenablage zu kopieren.<br />
Unter XP hatte ich dazu immer noch das uralte <em>Windows 95</em> Powertoy <em>SendToX</em> verwendet, das es leider für spätere Windows Versionen nicht mehr gab. Eigentlich schade, aber nun verschmerzbar.</p>
<p>Auch der Befehl <em>Eingabeaufforderung hier öffnen</em> ist sehr nützlich. Denn mit diesem Befehl kann man direkt ein DOS-Fenster in einem bestimmten Verzeichnis öffnen. Dafür gibt es zwar auch Registry-Hacks, aber Vista liefert das inklusive.<br />
Leider verwendet Vista hier immer <em>CMD.EXE</em> und nicht den Befehlszeileninterpreter, der in <em>COMSPEC</em> eingetragen ist. Ich verwende seit Jahren <a href="http://www.jpsoft.com/"><em>4NT.EXE</em> </a>und deshalb ist bei mir auch <em>4NT.EXE </em>in <em>COMSPEC </em>eingetragen. Aber das ist verschmerzbar, denn 4NT mach seine eigenen Einträge im Explorer Kontextmenü, wenn man dies wünscht.</p>
<p>PS: Entdeckt habe ich das ganze, weil ich wusste, dass man bei einem Word Dokument zusätzlich den Befehl <em>Schreibgeschützt Öffnen</em> angeboten bekommt, wenn man die Umschalttaste festhält und das Kontextmenü öffnet über die rechte Maustaste oder die Kontextmenütaste. Das funktioniert auch für Excel-Dateien. Vielleicht wusste das ja auch noch nicht jeder <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2010 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>]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2008/01/14/zusaetzliche-befehle-im-explorer-kontextmenue-von-vista/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

