Versteckte Dateien anzeigen nach Win Vorgabe
Moderators: Hacker, Stefan2, white
Versteckte Dateien anzeigen nach Win Vorgabe
Hallo,
ist es möglich das TC die Ansicht von Versteckten- und Systemdateien als Vorgabe von Windows übernimmt ODER kann ich mit einem Befehl eine laufende TC-Instanz dazu bringen die Ansichten zu wechseln ?
Hintergrund:
Ich möchte eine Taste meiner Notebook-Tastatur dazu verwenden die Ansichten zu switchen..ich weiß zwar noch nicht welchen Befehl ich wie an W7 schicken muss um das zu bewerkstelligen, aber vielleicht kann das auch TC..Problem ist ja das die zu verwendende Taste nicht im TC Shortcut-Menue auftaucht..ist eine spezielle Taste am Notebook die normalerweise ein Herstellertool zur Systemkonfiguration startet.
Gruss maat
ist es möglich das TC die Ansicht von Versteckten- und Systemdateien als Vorgabe von Windows übernimmt ODER kann ich mit einem Befehl eine laufende TC-Instanz dazu bringen die Ansichten zu wechseln ?
Hintergrund:
Ich möchte eine Taste meiner Notebook-Tastatur dazu verwenden die Ansichten zu switchen..ich weiß zwar noch nicht welchen Befehl ich wie an W7 schicken muss um das zu bewerkstelligen, aber vielleicht kann das auch TC..Problem ist ja das die zu verwendende Taste nicht im TC Shortcut-Menue auftaucht..ist eine spezielle Taste am Notebook die normalerweise ein Herstellertool zur Systemkonfiguration startet.
Gruss maat
Im TC ist es "cm_SwitchHidSys"
Windows speichert die Einstellung in der Registry:
Man könnte nun zB nen AutoIt-Script schreiben, welches die Reg-Werte setzt und eine definierbare Tastenkombination an TC sendet. Diese muss dann natürlich cm_SwitchHidSys auslösen.
Das Herstellertool tauscht man dann gegen die Script-Exe aus, falls nicht anders konfigurierbar.
In etwa so:
Die erweiterte Logik überlass ich mal als Denksport.
Windows speichert die Einstellung in der Registry:
Code: Select all
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000001
und
"Hidden"=dword:00000002
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowSuperHidden"=dword:00000000
und
"ShowSuperHidden"=dword:00000001
Das Herstellertool tauscht man dann gegen die Script-Exe aus, falls nicht anders konfigurierbar.
In etwa so:
Code: Select all
$valHidden = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden")
If $valHidden = 2 Then
$newValHidden = 1
Else
$newValHidden = 2
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden)
$valSuperHidden = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden")
If $valSuperHidden = 0 Then
$newValSuperHidden = 1
Else
$newValSuperHidden = 0
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", $newValSuperHidden)
; Für Strg+Shift+h -> cm_SwitchHidSys
WinActivate("[CLASS:TTOTAL_CMD]")
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
Füge in die WCMD_DEU.MNU den Eintrag Menüitem, an gewünschter Stelle, etwa so ein:
POPUP "&Ansicht"
MENUITEM ...
MENUITEM ...
MENUITEM SEPARATOR
MENUITEM "Versteckte+Systemdateien ein/aus", 2011
END_POPUP
POPUP "&Ansicht"
MENUITEM ...
MENUITEM ...
MENUITEM SEPARATOR
MENUITEM "Versteckte+Systemdateien ein/aus", 2011
END_POPUP
#133258 Personal license
TC 7.04a & TC 7.50 > TC 7.50a + TC 7.56a > 7.57 > 8.01 > 8.50 > 8.52a
Windows XP SP3 & Windows 7 HP (32 bit) & Windows 8 (64 bit)
--
und auch aktuelle TC-U3-Version mit Windows XP & Windows 7 HP & Windows 8 (64 bit)
TC 7.04a & TC 7.50 > TC 7.50a + TC 7.56a > 7.57 > 8.01 > 8.50 > 8.52a
Windows XP SP3 & Windows 7 HP (32 bit) & Windows 8 (64 bit)
--
und auch aktuelle TC-U3-Version mit Windows XP & Windows 7 HP & Windows 8 (64 bit)
@krokus: das ist mir schon bekannt, ich möchte doch aber mit einer speziellen Tastaturtaste umschalten die es im TC nicht gibt.
@zoster: das könnte was werden! Am liebsten die Registryvariante, hier stellt sich aber das Problem das TC seine eigene Einstellung hat. Deswegen auch die Frage nach einer systembedingten Anzeige im TC. Vielleicht weiss Hr.. Ghisler ob sich TC auch an Windows orientieren kann.
Aber dein Beispiel zur Übergabe an den TC unten in der Bat sieht viel versprechend aus! Das würde mir zur Not auch reichen.. Am We probier ich das mal
In den Tastenkombinationseinstellungen von TC tauchen zahlreiche OEM Tasten auf. Weiss jemand was die zu bedeuten haben oder hab die nur ich weil sie verfügbar sind.
Danke dir!
@zoster: das könnte was werden! Am liebsten die Registryvariante, hier stellt sich aber das Problem das TC seine eigene Einstellung hat. Deswegen auch die Frage nach einer systembedingten Anzeige im TC. Vielleicht weiss Hr.. Ghisler ob sich TC auch an Windows orientieren kann.
Aber dein Beispiel zur Übergabe an den TC unten in der Bat sieht viel versprechend aus! Das würde mir zur Not auch reichen.. Am We probier ich das mal

In den Tastenkombinationseinstellungen von TC tauchen zahlreiche OEM Tasten auf. Weiss jemand was die zu bedeuten haben oder hab die nur ich weil sie verfügbar sind.
Danke dir!
Hab grad festgestellt, daß der TC-Zustand sofort in die Wincmd.ini geschrieben wird, sodaß man den TC als führendes Kriterium nutzen kann:
Erfordert [F5] im Explorer.
Bzgl der OEM-Tasten schau mal in die Hilfe. Sind nur für Sonderzeichen auf US-Tastaturen. Wüsste nicht, daß man eigene Keycodes einpflegen kann und ob die Notebookspezialtasten irgendwo verfügbar sind.
Code: Select all
; Für Strg+Shift+h -> cm_SwitchHidSys
WinActivate("[CLASS:TTOTAL_CMD]")
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
$fileTcIni = EnvGet("COMMANDER_INI")
$valTcShowHidden = IniRead($fileTCIni, "Configuration", "ShowHiddenSystem", "NOT_FOUND")
If $valTcShowHidden = 1 Then
$newValHidden = 1
$newValSuperHidden = 1
Else
$newValHidden = 2
$newValSuperHidden = 0
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", $newValSuperHidden)
Bzgl der OEM-Tasten schau mal in die Hilfe. Sind nur für Sonderzeichen auf US-Tastaturen. Wüsste nicht, daß man eigene Keycodes einpflegen kann und ob die Notebookspezialtasten irgendwo verfügbar sind.
Hallo ZoSTeR,
ich habe mir jetzt mal AutoIT installiert, mit der 32bit Option, nicht diese native 64bit option angewählt. Das Programm ist so eingestellt das eine *.au3 Datei ausgeführt wird wenn sie aufgerufen wird. Im About vom Autoit steht folgende Version:
SciTE-Lite
Version 2.28
Jan 29 2012 21:33:22
Mein Betriebssystem ist W7pro 64bit
TC 8.05B 64bit
Jetzt wollte ich nur mal ein Script erstellen mit der TC Variante, quasi um die Grundfunktion herzustellen. Ich erstellte eine *.au3 Datei mit dem Code:
WinActivate("[CLASS:TTOTAL_CMD]")
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
Egal wie ich es ausführe, ob als *.au3 oder compiliert als exe, es passsiert nichts. Das TC Fenster kommt in den Vordergrund, an den Einstellungen ändert sich aber nichts.
Der Shortcut STRG-SHIFT-H funktioniert aber innerhalb TC und schaltet die Ansichten um.
Hast du eine Idee? Ist bestimmt ein Anfängerfehler !
Gruss maat
ich habe mir jetzt mal AutoIT installiert, mit der 32bit Option, nicht diese native 64bit option angewählt. Das Programm ist so eingestellt das eine *.au3 Datei ausgeführt wird wenn sie aufgerufen wird. Im About vom Autoit steht folgende Version:
SciTE-Lite
Version 2.28
Jan 29 2012 21:33:22
Mein Betriebssystem ist W7pro 64bit
TC 8.05B 64bit
Jetzt wollte ich nur mal ein Script erstellen mit der TC Variante, quasi um die Grundfunktion herzustellen. Ich erstellte eine *.au3 Datei mit dem Code:
WinActivate("[CLASS:TTOTAL_CMD]")
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
Egal wie ich es ausführe, ob als *.au3 oder compiliert als exe, es passsiert nichts. Das TC Fenster kommt in den Vordergrund, an den Einstellungen ändert sich aber nichts.
Der Shortcut STRG-SHIFT-H funktioniert aber innerhalb TC und schaltet die Ansichten um.
Hast du eine Idee? Ist bestimmt ein Anfängerfehler !
Gruss maat
Versteckte/System-Dateien - Standard Hotkey - Hauptmenü
Das Standard-Tastaturkürzel dafür ist STRG + H.
Es hat im Total Commander in den Optionen einen Konfigurations-Dialog in "Diverses".
Zuerst wird "(o) Hotkey" aktiviert, einen Haken bei "[x] STRG" gemacht, im Auswahlfeld noch der Buchstabe "H" gewählt.
Im Feld für den Befehl gibt man ein: "cm_SwitchHidSys".
Optionen - Diverses:
(o) Hotkey
[x] Control (STRG) + H
Command (Befehl) "cm_SwitchHidSys"
Von nun an kann mit STRG+H die Ansicht für Versteckte/System-Dateien an- und abgeschaltet werden.
Hauptmenü
Unabhängig davon kann das Hauptmenü auch für diese Funktion genutzt werden.
Bei Aktivität wird zwar ein Haken oder ein Icon im Menu abgebildet
aber der gewählte Hotkey wird nicht aus der Konfigurationsdatei ausgelesen.
Der Hotkey muss also eingetragen werden.
Im Hauptmenü eintragen zB in: [Ansicht]
MENUITEM "Versteckte/System-Dateien\tSTRG+H", cm_SwitchHidSys
Es hat im Total Commander in den Optionen einen Konfigurations-Dialog in "Diverses".
Zuerst wird "(o) Hotkey" aktiviert, einen Haken bei "[x] STRG" gemacht, im Auswahlfeld noch der Buchstabe "H" gewählt.
Im Feld für den Befehl gibt man ein: "cm_SwitchHidSys".
Optionen - Diverses:
(o) Hotkey
[x] Control (STRG) + H
Command (Befehl) "cm_SwitchHidSys"
Von nun an kann mit STRG+H die Ansicht für Versteckte/System-Dateien an- und abgeschaltet werden.
Hauptmenü
Unabhängig davon kann das Hauptmenü auch für diese Funktion genutzt werden.
Bei Aktivität wird zwar ein Haken oder ein Icon im Menu abgebildet
aber der gewählte Hotkey wird nicht aus der Konfigurationsdatei ausgelesen.
Der Hotkey muss also eingetragen werden.
Im Hauptmenü eintragen zB in: [Ansicht]
MENUITEM "Versteckte/System-Dateien\tSTRG+H", cm_SwitchHidSys
Ok, da ist schonmal ein Fehler ausgemerzt. Ich dachte "^+h" bedeutet STRG+SHIFT+H . Habs den Shortcut im TC dahingehend nochmal abgeändert bzw. so abgespeichert. Trotzdem funktioniert mein Script nur bis dahin das der TC in den Vordergrund kommt. Eine Ansichtsänderung findet nicht statt. Der Shortcut "^+h" auf der Tastatur funktioniert aber im TC, die Ansicht wird umgeschalten.
"^+h" bedeutet STRG+SHIFT+H in AutoIt. Eine Standardbelegung für "cm_SwitchHidSys" gibt es im TC nicht.
Die 64bit Version des TC hat andere Controlnamen. Diese lassen sich mit "Au3Info.exe" ermitteln.
Statt
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
jetzt
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:Window]", "^+h")
Die 64bit Version des TC hat andere Controlnamen. Diese lassen sich mit "Au3Info.exe" ermitteln.
Statt
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
jetzt
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:Window]", "^+h")
@ZoSTer
Funktioniert EINWANDFREI! Beides, TC und Explorer
Für alle zum mitschreiben, hier der Code für TC64bit zum Umschalten der Ansicht "versteckte Dateien" und "Systemdateien" per script:
Ich habe mir das als *.exe kompiliert und starte somit die Umschaltung mittels einer dedizierten Taste auf meinem Notebook für TC und Explorer zugleich.
EDIT: Leider funktionierte das Umschalten im Explorer damit nur einmal, trotz aktualisieren des Explorer-Fensters. Muss ich den Pfad zur wincmd.ini nicht explizit irgendwie angeben ?
Hab ich probiert, keine Änderung im Explorer und das ist ganz sicher der Pfad zu meiner ini.
Vielen Dank ZoSTer !
Gruss maat
Funktioniert EINWANDFREI! Beides, TC und Explorer

Für alle zum mitschreiben, hier der Code für TC64bit zum Umschalten der Ansicht "versteckte Dateien" und "Systemdateien" per script:
Code: Select all
; Für Strg+Shift+h -> cm_SwitchHidSys
WinActivate("[CLASS:TTOTAL_CMD]")
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:Window]", "^+h")
$fileTcIni = EnvGet("COMMANDER_INI")
$valTcShowHidden = IniRead($fileTCIni, "Configuration", "ShowHiddenSystem", "NOT_FOUND")
If $valTcShowHidden = 1 Then
$newValHidden = 1
$newValSuperHidden = 1
Else
$newValHidden = 2
$newValSuperHidden = 0
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", $newValSuperHidden)
EDIT: Leider funktionierte das Umschalten im Explorer damit nur einmal, trotz aktualisieren des Explorer-Fensters. Muss ich den Pfad zur wincmd.ini nicht explizit irgendwie angeben ?
Code: Select all
$fileTcIni = EnvGet("c:\totalcmd\wincmd.ini")
Vielen Dank ZoSTer !
Gruss maat
Kein Problem, nen bisserl Rumgefrickel belebt Geist und Körper 
Um einem absehbaren Problem vorzubeugen:
ShowSuperHidden ist abhängig von ShowHidden dh:
SH an + SSH an = h und hs Dateien sichtbar
SH an + SSH aus = h Dateien sichtbar
SH aus + SSH an = nur normale Dateien sichtbar
In der ersten Scriptvariante werden die Einstellungen unabhängig voneinander geändert, sodaß u.U. hs-Dateien niemals sichtbar werden.
Lange Rede, kurzer Sinn: ShowSuperHidden immer auf 1 setzen (wenn grundsätzlich gewünscht).
Script ohne TC:

Um einem absehbaren Problem vorzubeugen:
ShowSuperHidden ist abhängig von ShowHidden dh:
SH an + SSH an = h und hs Dateien sichtbar
SH an + SSH aus = h Dateien sichtbar
SH aus + SSH an = nur normale Dateien sichtbar
In der ersten Scriptvariante werden die Einstellungen unabhängig voneinander geändert, sodaß u.U. hs-Dateien niemals sichtbar werden.
Lange Rede, kurzer Sinn: ShowSuperHidden immer auf 1 setzen (wenn grundsätzlich gewünscht).
Script ohne TC:
Code: Select all
$valHidden = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden")
If $valHidden = 2 Then
$newValHidden = 1
Else
$newValHidden = 2
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", 1)
Der TC ist gestartet? Das Script kann in der Form nur bei laufendem TC funktionieren.matixx wrote:EDIT: Leider funktionierte das Umschalten im Explorer damit nur einmal, trotz aktualisieren des Explorer-Fensters.
Eins für alles:
Code: Select all
; v21
$fileTcIni = "c:\Program Files\TotalCmd\wincmd.ini"
If WinExists("[CLASS:TTOTAL_CMD]") Then
; TC läuft:
WinActivate("[CLASS:TTOTAL_CMD]")
; Für Strg+Shift+h -> cm_SwitchHidSys
; Ist TC 32 oder 64bit?
$envVarTC = EnvGet("COMMANDER_EXE")
$strTcExe = StringRight($envVarTC, 14)
If $strTcExe = "TOTALCMD64.EXE" Then
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:Window]", "^+h")
Else
ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h")
EndIf
; Windows folgt TC:
$valTcShowHidden = IniRead($fileTCIni, "Configuration", "ShowHiddenSystem", "NOT_FOUND")
If $valTcShowHidden = 1 Then
$newValHidden = 1
$newValSuperHidden = 1
Else
$newValHidden = 2
; Könnte man auf 1 stehen lassen:
$newValSuperHidden = 0
EndIf
Else
; TC läuft nicht:
$valHidden = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden")
If $valHidden = 2 Then
$newValHidden = 1
$newValTcShowHidden = 1
Else
$newValHidden = 2
$newValTcShowHidden = 0
EndIf
$newValSuperHidden = 1
; TC folgt Windows:
IniWrite($fileTcIni, "Configuration", "ShowHiddenSystem", $newValTcShowHidden)
EndIf
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", $newValSuperHidden)
*Edit: ca. 20 Edits später

Ja, ist er.ZoSTeR wrote:
Der TC ist gestartet? Das Script kann in der Form nur bei laufendem TC funktionieren.
Na das sieht ja mal sehr flexibel aus. Ich würde den ssh immer auf 1 lassen wollen. Ich komme zum Ende der Woche dazu das zu testen. Vielen Dank schonmal für deine Arbeit ZoSTer!ZoSTeR wrote: Eins für alles:Pfad zur wincmd.ini gegebenenfalls anpassen.Code: Select all
; v21 $fileTcIni = "c:\Program Files\TotalCmd\wincmd.ini" If WinExists("[CLASS:TTOTAL_CMD]") Then ; TC läuft: WinActivate("[CLASS:TTOTAL_CMD]") ; Für Strg+Shift+h -> cm_SwitchHidSys ; Ist TC 32 oder 64bit? $envVarTC = EnvGet("COMMANDER_EXE") $strTcExe = StringRight($envVarTC, 14) If $strTcExe = "TOTALCMD64.EXE" Then ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:Window]", "^+h") Else ControlSend("[CLASS:TTOTAL_CMD]", "", "[CLASS:TMyPanel]", "^+h") EndIf ; Windows folgt TC: $valTcShowHidden = IniRead($fileTCIni, "Configuration", "ShowHiddenSystem", "NOT_FOUND") If $valTcShowHidden = 1 Then $newValHidden = 1 $newValSuperHidden = 1 Else $newValHidden = 2 ; Könnte man auf 1 stehen lassen: $newValSuperHidden = 0 EndIf Else ; TC läuft nicht: $valHidden = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden") If $valHidden = 2 Then $newValHidden = 1 $newValTcShowHidden = 1 Else $newValHidden = 2 $newValTcShowHidden = 0 EndIf $newValSuperHidden = 1 ; TC folgt Windows: IniWrite($fileTcIni, "Configuration", "ShowHiddenSystem", $newValTcShowHidden) EndIf RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "REG_DWORD", $newValHidden) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "REG_DWORD", $newValSuperHidden)
*Edit: ca. 20 Edits später
Gruss maat