Buttonbar: Tastenkürzel als Button

German support forum

Moderators: white, Hacker, Stefan2

heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Buttonbar: Tastenkürzel als Button

Post by *heinzeb »

Wie kann man in Buttonbar ein Tastenkürzel z.B. von der Leertaste erzeugen?
Ich nutze Total Commander meistens nur mit der Maus und oft brach ich die Leertaste um Speicherplatz von Ordner zu berechnen..

Vielen Dank
User avatar
tuska
Power Member
Power Member
Posts: 3742
Joined: 2007-05-21, 12:17 UTC

Post by *tuska »

Wie kann man in Buttonbar ein Tastenkürzel z.B. von der Leertaste erzeugen?
Meines Erachtens gibt es diese Funktion in TC nicht.
... oft brauche ich die Leertaste um Speicherplatz von Ordner zu berechnen..
Button mit Kommando: cm_GetFileSpace (=Speicherbedarf ermitteln)
Menü "Hilfe" - "Tastatur"
ALT+Umsch+ENTER
Inhalte aller Verzeichnisse aufsummieren. Die Größen werden in der Ansicht "lang" anstelle von <DIR> angezeigt.
Abbrechen durch Gedrückt-halten der ESC-Taste.
heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Post by *heinzeb »

Danke für die Antwort,

hab mir schon gedacht, dass das nicht gehen wird.. :(
Aber vielleicht geht's über eine externe Datei, z.B. eine .bat Datei, die beim Ausführen die Leertaste simuliert?
Weiß aber nicht, wie die .bat Datei zu schreiben wäre...
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6450
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

heinzeb wrote:Danke für die Antwort,

hab mir schon gedacht, dass das nicht gehen wird.. :(
Aber vielleicht geht's über eine externe Datei, z.B. eine .bat Datei, die beim Ausführen die Leertaste simuliert?
Weiß aber nicht, wie die .bat Datei zu schreiben wäre...
Sorry, aber das alles um nicht die Leertaste drücken zu müssen.
Ich arbeite auch überwiegend mit der Maus, aber das halte ich für leicht übertrieben.
Windows 11 Home x64 Version 23H2 (OS Build 22631.3374)
TC 11.03 x64 / x86
Everything 1.5.0.1371a (x64), Everything Toolbar 1.3.2, Listary Pro 6.3.0.69
QAP 11.6.3.2 x64
User avatar
Stefan2
Power Member
Power Member
Posts: 4133
Joined: 2007-09-13, 22:20 UTC
Location: Europa

NirSoft nircmd: sendkey space press

Post by *Stefan2 »

heinzeb wrote: Aber vielleicht geht's über eine externe Datei, z.B. eine .bat Datei, die beim Ausführen die Leertaste simuliert?
Besorge die NirSofts' nircmd.exe und bau dir da draus einen Button:

Kommando: "L:\aufwerk\Pfad zu\NirSoft\nircmd.exe"
Parameters: sendkey spc press





Code: Select all

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\TOOLs\NirSoft\nircmd.exe"
sendkey spc press
%COMMANDER_PATH%\TOTALCMD.EXE,31
nircmd sendkey space press


-1


Auch interessant, falls mal die Tastatur defekt ist.

Ansonsten gibt es noch den WindowsTM Befehl 'osk' ;-)



Danke, Nir!
 
Last edited by Stefan2 on 2017-07-16, 16:18 UTC, edited 1 time in total.
User avatar
Lucky Joe
Member
Member
Posts: 161
Joined: 2012-07-25, 10:30 UTC

Post by *Lucky Joe »

Aber vielleicht geht's über eine externe Datei, z.B. eine .bat Datei, die beim Ausführen die Leertaste simuliert?
Weiß aber nicht, wie die .bat Datei zu schreiben wäre...
Wie wäre es mit AutoHotkey? Da hast du eine externe (Script-) Datei, mit der man wuderbar Tasten und Tastenkombinationen - auch abhängig vom aktiven
Fenster - programmieren bzw. ausführen lassen kann.
Das Script legst du irgendwo ab, legst in deiner Buttonbar einen neuen Button an, bei dem du als Komando Pfad und Scriptname angibst.

Das Script ist simpel:

Code: Select all

#NoEnv
SendInput,{Space}
... und schon brauchst du nur noch auf deinen Button zu drücken und das Script drückt für dich die Leertaste.

VG
Lucky Joe
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Es lebe die Vielfalt (und Flexibilität)

Code: Select all

TOTALCMD#BAR#DATA
C:\Tools\Script\sendkey.vbs
" "
C:\Windows\System32\WScript.exe,2
sendkey
C:\Tools\Script\

-1
sendkey.vbs wrote:Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
WshShell.SendKeys param
Next
für andere Parameter (neben dem Leerzeichen) siehe:
https://social.technet.microsoft.com/wiki/contents/articles/5169.vbscript-sendkeys-method.aspx

Gruss
Holger
Make our planet great again
heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Post by *heinzeb »

Das Script ist simpel:

Code: Select all

#NoEnv
SendInput,{Space}
... und schon brauchst du nur noch auf deinen Button zu drücken und das Script drückt für dich die Leertaste.

VG
Lucky Joe

Besten Dank Lucky Joe !!!
Genau das wollte ich, es funktioniert prima !!
Ich hab schon mal probiert mit dem AutoHotkey ein Script zu schreiben, hab aber keine Ahnung davon.
Wusste, dass das einfach wäre, aber wenn man keine Ahnung hat... :)
heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Post by *heinzeb »

HolgerK wrote:Es lebe die Vielfalt (und Flexibilität)

Code: Select all

TOTALCMD#BAR#DATA
C:\Tools\Script\sendkey.vbs
" "
C:\Windows\System32\WScript.exe,2
sendkey
C:\Tools\Script\

-1
sendkey.vbs wrote:Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
WshShell.SendKeys param
Next

Gruss
Holger

Verstehe nicht ganz, wie soll man das anwenden?
Bin keine Ahnung von Scripten Schreiben... :)
Ist das für eine .bat Datei?
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Das ist eine Buttonbar-Code sowie eine VBS-Datei.
- Den Text von sendkey.vbs in eine Textdatei abspeichern
- Den Text des Button markieren, Kopieren(ins clipboard) und per Kontextmenü in der Buttonbar einfügen.
- Den neuen Button editieren und im Feld Kommando den Pfad an die zuerst abgespeicherte VBS-Datei anpassen.

Im Feld Parameter des Buttons können noch weitere Parameter angegeben werden um ganze Befehlsketten an den TC zu senden.

Im Gegensatz zu NirCmd oder AHK musst du nichts Zusätzliches installieren, da Visual Basic Script auf den meisten Rechnern direkt verfügbar ist.

Gruss
Holger
Make our planet great again
User avatar
Lucky Joe
Member
Member
Posts: 161
Joined: 2012-07-25, 10:30 UTC

Post by *Lucky Joe »

@heinzeb: AutoHotkey hat ein eigenes (deutsches) Forum mit sehr hilfsbereiten "Könnern" und eine eigene, stets aktuell gepflegte (!) deutsche Hilfe-Datei. Bei der Programmierung besteht allerdings Suchtgefahr. ;-)

@all others: sorry for off-topic

VG - Lucky Joe
heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Post by *heinzeb »

HolgerK wrote:Das ist eine Buttonbar-Code sowie eine VBS-Datei.
- Den Text von sendkey.vbs in eine Textdatei abspeichern
- Den Text des Button markieren, Kopieren(ins clipboard) und per Kontextmenü in der Buttonbar einfügen.
- Den neuen Button editieren und im Feld Kommando den Pfad an die zuerst abgespeicherte VBS-Datei anpassen.

Im Feld Parameter des Buttons können noch weitere Parameter angegeben werden um ganze Befehlsketten an den TC zu senden.

Im Gegensatz zu NirCmd oder AHK musst du nichts Zusätzliches installieren, da Visual Basic Script auf den meisten Rechnern direkt verfügbar ist.

Gruss
Holger

Ohne zusätzliche Programme zu installieren wäre noch besser..
Es stimmt aber mit dem Script was nicht, kannst du es noch mal überprüfen?
Wie gesagt, hab keine Ahnung von Scripten


Hab gefunden, das Script für .vbs muss so sein:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys " "
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

sendkey.vbs funktioniert hier ausgezeichnet.

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
	WshShell.SendKeys param
Next
Modifizier mal den Code und berichte was bei dir ausgegeben wird:

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
	Rem WshShell.SendKeys param
	WScript.Echo "Param<" & param  & ">Param"
Next
Es sollte ein Dialog mit folgendem Inhalt angezeigt werden:

Code: Select all

---------------------------
Windows Script Host
---------------------------
Param< >Param
---------------------------
OK   
---------------------------
Gruss
Holger
Make our planet great again
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Hab gefunden, das Script für .vbs muss so sein:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys " "
Das geht natürlich auch aber dann geht die Flexibilität verloren, da man nur ein SendkeySpace erhält und den Script nicht per Parameter im Button andere Befehle ausführen lassen kann.

Gruss
Holger
Make our planet great again
heinzeb
Junior Member
Junior Member
Posts: 7
Joined: 2017-07-15, 20:36 UTC

Post by *heinzeb »

HolgerK wrote:sendkey.vbs funktioniert hier ausgezeichnet.

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
	WshShell.SendKeys param
Next
Modifizier mal den Code und berichte was bei dir ausgegeben wird:

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
For Each param In WScript.Arguments
	Rem WshShell.SendKeys param
	WScript.Echo "Param<" & param  & ">Param"
Next
Es sollte ein Dialog mit folgendem Inhalt angezeigt werden:

Code: Select all

---------------------------
Windows Script Host
---------------------------
Param< >Param
---------------------------
OK   
---------------------------
Gruss
Holger

Weiß nicht was ich falsch mache, aber es funktioniert bei mir nicht.. :(
Ich kopiere den Code in die .vbs Datei, und beim Ausführen passiert nichts..
Post Reply