Win7-64bit: Mit TC Buttonbar 64bit Programme starten?
Moderators: Hacker, Stefan2, white
Win7-64bit: Mit TC Buttonbar 64bit Programme starten?
Hallo,
gibt es eine Möglichkeit unter Win7 64bit, mit einem TC-Button z.B.: CMD.EXE in der 64bit Version zu starten?
Danke Tom
gibt es eine Möglichkeit unter Win7 64bit, mit einem TC-Button z.B.: CMD.EXE in der 64bit Version zu starten?
Danke Tom
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Code: Select all
%windir%\sysnative\cmd.exe
Gruß
Holger
Danke für den Link.
Wenn ich das verstanden habe, kann ich den TC wie folgt für 64bit Systeme präparieren:
1. ggf. x64-Alias wie in HolgerKs Link einrichten
2. Associations
3. Button für cmd.exe
%windir%\sysnative\cmd.exe
4. Wie sieht der Button z.B. für snippingtool.exe aus?
5. Komme ich damit nun an ein 64bit Windows, muss ich nur noch:
cmd.exe über start-programme (64bit) starten und xcopy ausführen:
6. Den xcopy führe ich wohl am besten auch auf den 32 Bit Windows-Systemen aus, damit der präparierte TC mit den Associations auch dort läuft?
Wenn ich das verstanden habe, kann ich den TC wie folgt für 64bit Systeme präparieren:
1. ggf. x64-Alias wie in HolgerKs Link einrichten
2. Associations
Code: Select all
[searches]
Windows Command Batches_SearchFor=*.bat *.cmd
Windows Command Batches_SearchIn=
Windows Command Batches_SearchText=
Windows Command Batches_SearchFlags=0|000002000020|||||||||0000|
[Associations]
Filter1=>Windows Command Batches
Filter1_open=%windir%\sysnative\cmd.exe /C "%1" %*
Filter1.icon=%windir%\sysnative\cmd.exe
%windir%\sysnative\cmd.exe
4. Wie sieht der Button z.B. für snippingtool.exe aus?
5. Komme ich damit nun an ein 64bit Windows, muss ich nur noch:
cmd.exe über start-programme (64bit) starten und xcopy ausführen:
Code: Select all
xcopy %windir%\system32\cmd.exe %windir%\sysnative\
Last edited by tom*de on 2010-10-18, 15:16 UTC, edited 2 times in total.
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
1,2,3: Ja
4: kommt darauf an wo snippingtool.exe installiert ist.
Wenn es ein 32Bit Programm ist, dann sollte es in SysWow64 liegen
Im TC bei eingeschalteter Redirection (x64DisableRedirection=0) identisch mit System32!
Ein 64-BitProgram würde in Sysnative liegen.
Im TC bei ausgeschalteter Redirection (x64DisableRedirection=1) identisch mit System32!
Explorer + Total Commander: Inhalte von system32 verschieden
Dort sollte immer System32 (Das 64Bit Systemverzeichnis!) bzw. SysWow64 (das 32Bit Systemverzeichnis) angegeben werden.
Ich weiß, es ist verwirrend..., aber MS hat es so gewollt.
Mit freundlichem Gruß
Holger
4: kommt darauf an wo snippingtool.exe installiert ist.
Wenn es ein 32Bit Programm ist, dann sollte es in SysWow64 liegen
Im TC bei eingeschalteter Redirection (x64DisableRedirection=0) identisch mit System32!
Ein 64-BitProgram würde in Sysnative liegen.
Im TC bei ausgeschalteter Redirection (x64DisableRedirection=1) identisch mit System32!
Explorer + Total Commander: Inhalte von system32 verschieden
Ein 64Bit Programm kennt Sysnative nicht.cmd.exe (64bit) starten und xcopy ausführen:
Dort sollte immer System32 (Das 64Bit Systemverzeichnis!) bzw. SysWow64 (das 32Bit Systemverzeichnis) angegeben werden.
Ich weiß, es ist verwirrend..., aber MS hat es so gewollt.
Mit freundlichem Gruß
Holger
Danke, für den Link - ist gut erklärt.
Hab noch 5. und 6. im obigen Beitrag nach-nummeriert:
zu 5. Der xcopy auf einem 64bit-win ist wohl nicht notwendig bzw. quatsch, da der Alias sysnative ja existiert?
zu 6. Ist der xcopy auf 32 bit systemen wegen den Associations-INI-Einträgen sinnvoll, um die TC-Version identisch zu halten - oder geht das auch anders?
Hab noch 5. und 6. im obigen Beitrag nach-nummeriert:
zu 5. Der xcopy auf einem 64bit-win ist wohl nicht notwendig bzw. quatsch, da der Alias sysnative ja existiert?
zu 6. Ist der xcopy auf 32 bit systemen wegen den Associations-INI-Einträgen sinnvoll, um die TC-Version identisch zu halten - oder geht das auch anders?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Hallo, tom*de.
Wenn die 64-bit Variante des xcopy Befehl ausgeführt wird, dann ist dieser Befehl überhaupt nicht ausführbar. Denn ein 64-bit Programm kennt den Alias sysnative nicht.
Wenn die 32-bit Variante des xcopy Befehl ausgeführt wird, dann kopiert er die 32-bittige cmd.exe in das 64-bit Verzeichnis system32 und überschreibt die dort bereits liegende 64-bittige cmd.exe. Ob das so der Weisheit letzter Schluß ist?
Ich denke, dass man die Punkte 5. und 6. gefahrlos komplett von jeglicher Todo-Liste streichen kann.
Karl
Dieser xcopy Befehl erscheint mir wenig sinnvoll bis mittelprächtig gefährlich.tom*de wrote:5. Komme ich damit nun an ein 64bit Windows, muss ich nur noch:
cmd.exe über start-programme (64bit) starten und xcopy ausführen:Code: Select all
xcopy %windir%\system32\cmd.exe %windir%\sysnative\
Wenn die 64-bit Variante des xcopy Befehl ausgeführt wird, dann ist dieser Befehl überhaupt nicht ausführbar. Denn ein 64-bit Programm kennt den Alias sysnative nicht.
Wenn die 32-bit Variante des xcopy Befehl ausgeführt wird, dann kopiert er die 32-bittige cmd.exe in das 64-bit Verzeichnis system32 und überschreibt die dort bereits liegende 64-bittige cmd.exe. Ob das so der Weisheit letzter Schluß ist?
Auf 32-bit Windows Versionen gibt es kein sysnative. Welches Problem versuchst du damit zu lösen, das es dort nicht gibt?tom*de wrote:6. Den xcopy führe ich wohl am besten auch auf den 32 Bit Windows-Systemen aus, damit der präparierte TC mit den Associations auch dort läuft?
Ich denke, dass man die Punkte 5. und 6. gefahrlos komplett von jeglicher Todo-Liste streichen kann.
Karl
Ja 5. ist Unsinn.
Bei 6. war die Idee, dass die gleiche TC-Konfiguration auf 32 und 64 bit Systemen funktioniert. (z.B. TC vom USB-Stick o.ä.)
Die o.g. Associations-Einträge in der INI verhindern ja sonst den Start von CMD und BAT auf 32bit Windows-Systemen, oder?
Bei 6. war die Idee, dass die gleiche TC-Konfiguration auf 32 und 64 bit Systemen funktioniert. (z.B. TC vom USB-Stick o.ä.)
Die o.g. Associations-Einträge in der INI verhindern ja sonst den Start von CMD und BAT auf 32bit Windows-Systemen, oder?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
BAT-Files werden vom TC bei <ENTER> oder Doppelklick immer direkt als 32Bit ausgeführt:Die o.g. Associations-Einträge in der INI verhindern ja sonst den Start von CMD und BAT auf 32bit Windows-Systemen, oder?
Ansonsten kann man neben den internen Befehlen auch noch den normalen Open-Befehl (name.cmd) über das Kontextmenü ausführen.ghisler(Author) wrote:Indeed exe, com, bat and lnk files are treated differently than other files: The default verb cannot be overridden via internal associations,...While the former is intentional so the user doesn't accidentally disable programs by defining a *.* internal association,...
Es gibt auch noch die Möglichkeit bei der internen Verknüpfung ein "*" anzugeben. Dann werden bei <Enter> oder Doppelklick auf einen cmd-Skript alle verfügbaren internen Kommandos in einem kleinen Menü angezeigt.
Und man kann ja auch mehrere Kommandos angeben:
Code: Select all
[searches]
Windows Command Batches_SearchFor=*.bat *.cmd
Windows Command Batches_SearchIn=
Windows Command Batches_SearchText=
Windows Command Batches_SearchFlags=0|000002000020|||||||||0000|
[Associations]
Filter1=>Windows Command Batches
Filter1_open=*
Filter1.icon=%windir%\System32\cmd.exe
Filter1_Run(Def)=%windir%\system32\cmd.exe /C "%1"
Filter1_Run(x32)=%windir%\sysWow64\cmd.exe /C "%1"
Filter1_Run(x64)=%windir%\sysnative\cmd.exe /C "%1"
Run(x32) : benutzt auf einem 64Bit System immer die 32 CMD.exe
Run(x64) : benutzt auf einem 64Bit System immer die 64 CMD.exe
Eine weitere Möglichkeit wäre den richtigen Kommandoprozessor indirekt über einen Batch aufzurufen.
In der Batchdatei müssten Umgebungsvariablen, die eindeutig auf ein 64Bit System hinweisen, überprüft werden und dann die Übergabeparameter an cmd.exe in System32/SysWow64 oder Sysnative weitergereicht werden.
Etwas ähnliches (Detektion der Bitigkeit des OS) wurde hier Selective run of an TC tied 64/86bit app under x64 or x86 OS mal diskutiert.
Gruß
Holger
Hallo HolgerK,
a) das mit dem kleinen Menü (Default,x32,x64) finde ich richtig gut, danke.
b) Als zuverlässige Unterscheidung der 3 Varianten werd ich ne kleine Startx86x32x64.CMD nutzen, die auf 32/64bit Systemen und hier in 32/64bit-Umgebungen laufen sollte. Parameter sind erlaubt:
c) Um nur einen TC-Button anzulegen, der auf 32bit und 64bit Windows funktioniert und z.B. das SnippingTool starten soll, komme ich wohl um eine CMD (die dann auch auf beiden Systemen starten soll) nicht herum.
Hier mal ein TC-Button mit obigem Script:
Hat jemand Verbesserungsvorschläge?
a) das mit dem kleinen Menü (Default,x32,x64) finde ich richtig gut, danke.
b) Als zuverlässige Unterscheidung der 3 Varianten werd ich ne kleine Startx86x32x64.CMD nutzen, die auf 32/64bit Systemen und hier in 32/64bit-Umgebungen laufen sollte. Parameter sind erlaubt:
Code: Select all
@echo off
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" echo 64bit system, 64bit Umgebung
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" start %windir%\system32\cmd.exe /C %*
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto Ende
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" echo 64bit system, 32bit Umgebung
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" start %windir%\sysnative\cmd.exe /C %*
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" goto Ende
IF "%PROCESSOR_ARCHITECTURE%"=="x86" echo 32bit system, 32bit Umgebung
IF "%PROCESSOR_ARCHITECTURE%"=="x86" start %windir%\system32\cmd.exe /C %*
:Ende
pause
Hier mal ein TC-Button mit obigem Script:
Code: Select all
Kommando:%COMMANDER_PATH%\cmd\Startx86x32x64.CMD
Parameter: snippingtool.exe
Icondatei: muss man je nach System noch manuell wählen...(?)
win32: %SystemRoot%\system32\SnippingTool.exe
win64: %SystemRoot%\sysnative\SnippingTool.exe
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Wie wäre es für den portablen Einsatz den TC einfach über eine CMD-Batch zu starten:
Das ganze als "StartTC.cmd" im TC Verzeichnis ablegen.
Der Button für das Snippingtool würde dann so aussehen:
Da ist übrigens noch ein weiterer Trick im Batch enthalten:
Das sorgt dafür, dass man alle Programme die nicht in "SysWow64(System32)" liegen aber in "Sysnative(System32)" existieren ganz einfach aus der Kommandozeile über den Suchpfad aufrufen kann.
Gruß
Holger
Code: Select all
@echo off
set REALSystem32=System32
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" set REALSystem32=Sysnative
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" set REALSystem32=Sysnative
set path=%path%;%SystemRoot%\Sysnative
start totalcmd.exe
Der Button für das Snippingtool würde dann so aussehen:
Code: Select all
TOTALCMD#BAR#DATA
%SystemRoot%\%REALSystem32%\SnippingTool.exe
%SystemRoot%\%REALSystem32%\SnippingTool.exe
SnippingTool
%SystemRoot%\%REALSystem32%
-1
Code: Select all
set path=%path%;%SystemRoot%\Sysnative
Gruß
Holger
regedit /s im Win7x64?
Danke, gute Idee.
Hab noch eine Verständnisfrage zu Win7x64 und Registry:
Folgende Datei: test.reg
1. Der TC (mit doppelclick) importiert wie erwartet beide keys A_1 und A_2 in \wow6432Node\
2. Ein 64bit-explorer (mit doppelclick) importiert wie erwartet A_1 in \Software\ und A_2 in \Wow6432Node\
Leider importiert im cmd-Fenster (64bit oder 32bit) ein
die Datei scheinbar gar nicht, oder hab ich da was übersehen?
Hab noch eine Verständnisfrage zu Win7x64 und Registry:
Folgende Datei: test.reg
Code: Select all
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\A_1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\A_2]
2. Ein 64bit-explorer (mit doppelclick) importiert wie erwartet A_1 in \Software\ und A_2 in \Wow6432Node\
Leider importiert im cmd-Fenster (64bit oder 32bit) ein
Code: Select all
regedit /s test.reg
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Doch, das sollte funktionieren.die Datei scheinbar gar nicht, oder hab ich da was übersehen?
Zumindest mit UAC auf höchster Stufe lief das hier ohne Problem.
Vielleicht versagt die Nachfrage nach der Elevation, wenn der UAC Schieberegler auf einer mittleren Stufe steht?
Oder Du hast Regedit bereits zum Kontrollieren gestartet aber keinen Refresh <F5> ausgeführt?
Am besten lässt sich das mit SysInternals:Process Monitor überprüfen.
Bei der Benutzung von Regedit ist übrigens Vorsicht angesagt.
a) Zwar ist es richtig, dass Regedit aus einem 32 bzw. 64Bit Prozess gestartet jeweils als 32 oder 64 Bit Version gestartet wird:
Aber nur dann, wenn nicht bereits eine Regedit.Exe läuft!
Jeder weiterer Aufruf wird dann an die bereits laufende Instanz weitergegeben, und je nachdem ob diese 64 oder 32bittig ist eben 64 oder 32bittig ausgeführt.
b) Rein gefühlsmäßig würde ich auch nicht versuchen eine WOW64-Schlüssel mit einer 32Bit Instanz von Regedit anzulegen.
Das könnte dazu führen, dass der dort abgelegte Inhalt im Fall der Redirection nicht gelesen wird. Der 32Bit Reg-Editor zeigt den in der 64Bit Version angezeigten Schlüssel WOW64 nicht an.
Legt er dann also einen neuen Schlüssel an, der zwar den gleichen Namen hat aber doch unterschiedlich zum (64Bit) WOW64-Pfad ist?
Der Aufruf vom TC aus (als 32Bit/64Bit Version) erfolgt übrigens am einfachsten über den regedt32.exe -Wrapper:
Code: Select all
64Bit: %SystemRoot%\sysnative\regedt32.exe
32Bit: %SystemRoot%\sysWOW64\regedt32.exe
Code: Select all
64Bit: %SystemRoot%\regedit.exe
32Bit: %SystemRoot%\sysWOW64\regedit.exe

Gruß
Holger
Bekomme das Kontextmenü von TC7.57a beim TC8.0 (x32) nicht zum laufen. Die [searches] und [Associations] Einträge aus dem Holgers Beitrag sind in der wincmd.ini. Trotzdem wird jede .cmd direkt gestartet, statt das Kontextmenü zu zeigen. Hab ich hier was übersehen?HolgerK wrote:Es gibt auch noch die Möglichkeit bei der internen Verknüpfung ein "*" anzugeben. Dann werden bei <Enter> oder Doppelklick auf einen cmd-Skript alle verfügbaren internen Kommandos in einem kleinen Menü angezeigt.
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Oops.HolgerK wrote:ghisler(Author) wrote:Indeed exe, com, bat and lnk files are treated differently than other files: The default verb cannot be overridden via internal associations,...While the former is intentional so the user doesn't accidentally disable programs by defining a *.* internal association,...
Da scheint Christian die Gelegenheit wahrgenommen zu haben die Ausnahme (*.exe, *.com, *.bat, *.lnk) um *.cmd zu erweitern.
Bugfix oder Bug?
Gruß
Holger
<Hinweis>
Wir schreiben das Jahr 2012, Erdenzeit 2012-06-15_18:32 UTC.
Der Warp-Antrieb ist zwar noch immer nicht erfunden, jedoch ist mittlerweile nach fast 20 Jahren Entwicklungszeit der Total Commander 8.0 64-bit erschienen. Damit hat der technische Fortschritt mit rasanten Schritten diesen Thread de facto hinfällig gemacht.
</Hinweis>
Wir schreiben das Jahr 2012, Erdenzeit 2012-06-15_18:32 UTC.
Der Warp-Antrieb ist zwar noch immer nicht erfunden, jedoch ist mittlerweile nach fast 20 Jahren Entwicklungszeit der Total Commander 8.0 64-bit erschienen. Damit hat der technische Fortschritt mit rasanten Schritten diesen Thread de facto hinfällig gemacht.

</Hinweis>
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song