Das Script erstellt den neuen Skriptbefehl ToggleDoubleclickAction, der es ermöglicht, für diverse konfigurierbare Dateitypen und/oder für Ordner die bei Doppelklick ausgeführte Aktion temporär zu ändern, ohne dies unter Einstellungen=>Dateitypen vornehmen zu müssen.
Es stehen 5 konfigurierbare Dateityp-Gruppen (A_Dateitypen bis E_Dateitypen) mit einer zugeordneten alternativen Aktion zur Verfügung (i.d.R. ein Pfad zur ausführbaren Datei einer Anwendung; A_Aktion bis E_Aktion). Außerdem kann die Aktion bei Doppelklick auf einen Ordner (Go-Befehl mit beliebigen Argumenten) konfiguriert werden. Vor der ersten Verwendung muss mindestens eine der Gruppen konfiguriert werden, da das Script sonst wirkungslos bleibt.
Konfiguration der Dateitypgruppen und ihrer Aktionen
Beispiel: Die ausführbaren Dateitypen .reg, .vbs, .js, .bat, .cmd so konfigurieren, dass sie bei aktiviertem Zustand nicht gestartet, sondern zur Bearbeitung in Notepad geöffnet werden.
Nachdem das Script wie unter Was ist ein Script-AddIn? beschrieben installiert wurde, gehe nach Einstellungen=>Voreinstellungen=>Symbolleisten=>Skripts und markiere den Eintrag ToggleDoubleclickAction. Klicke jetzt auf den Button Konfigurieren und trage für den Wert von A_Dateitypen den String .reg .vbs .js .bat .cmd ein. Die Trennzeichen sind beliebig, ich verwende wegen der besseren Lesbarkeit Leerzeichen. Wichtig: Die Dateiendungen müssen mit dem zugehörigen vorangestellten Punkt eingetragen werden!
Für den Wert von A_Aktion trage /windows/notepad.exe ein. Es können Aliase verwendet werden, was gerade bei der Verwendung vom USB-Stick besonders nützlich ist.
Für die anderen Gruppen kannst du analog verfahren und z.B. für B_Dateitypen und B_Aktion Dateiendungen von Bilddateien und den Pfad einer Anwendung eintragen, um im aktivierten Zustand statt des kleinen Standard-Bildbetrachters die dicke Bildbearbeitung bei Doppelklick zu starten.
Wenn die Aktion bei Doppelklick auf einen Ordner geändert werden soll, muss als Wert bei Ordneraktion eine Variante des Befehls Go, also etwa Go NEWTAB=findexisting eingetragen werden.
Alle Aktionen verwenden {filepath} als Argument.
Erstellen eines Symbolleisten-Schalters:
Nach der Script-Installation steht der neue Befehl ToggleDoubleclickAction im Anpassen-Menü (Reiter Befehle=>Skriptbefehle) zur Verfügung und kann per Drag & Drop in eine Symbolleiste gezogen werden. Damit der Zustand des Icons (Aktiviert/Deaktiviert) sichtbar wird, muss des Befehl nun im Befehlseditor geöffnet werden, da eine weitere Zeile hinzugefügt werden muss.
Trage im Befehlseditor in der obersten Zeile @toggle:if $glob!:tdca. Dadurch ändert sich der Zustand des Schalters, je nachdem ob die Variable tdca existiert oder nicht. Der fertige Schalter-Befehl sieht dann so aus:
Code: Alles auswählen
@toggle:if $glob!:tdca
ToggleDoubleclickAction
Wenn der Befehl ohne Argumente verwendet wird, werden alle Gruppen/Aktionen aktiviert.
Wichtig:wenn ein Argument verwendet wird muss auch die @Toggle-Zeile geändert werden, indem dem Variablennamen der zugeordnete Buchstabe angehängt wird. Bei Argument Gruppe_A heisst die Variable z.B. tdcaA; für das Argument Ordner heisst die Variable tdcaO. Bei Verwendung mehrere Argumente darf nur eine der entsprechenden Variablen als Indikator verwendet werden.
Der fertige Schalter-Befehl bei Verwendung der Argumente Gruppe_A und Ordner sowie der Variable für die Ordneraktion als Indikator sähe dann also so aus:
Code: Alles auswählen
@toggle:if $glob!:tdcaO
ToggleDoubleclickAction Gruppe_a Ordner
Das Script ToggleDoubleclickAction:
Code: Alles auswählen
Option Explicit
'ToggleDoubleclickAction
' (c) 2014 Kundal
'
' This is a script for Directory Opus.
' See http://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information.
' Called by Directory Opus to initialize the script
Function OnInit(initData)
initData.name = "ToggleDoubleclickAction"
initData.desc = "Ändert die bei Doppelklick ausgeführte Aktion für Dateitypen und Ordner."
initData.copyright = "(c) 2014 Kundal"
initData.version = "v1.1"
initData.default_enable = true
initData.config.Ordneraktion = ""
initData.config.A_Dateitypen = ""
initData.config.A_Aktion = ""
initData.config.B_Dateitypen = ""
initData.config.B_Aktion = ""
initData.config.C_Dateitypen = ""
initData.config.C_Aktion = ""
initData.config.D_Dateitypen = ""
initData.config.D_Aktion = ""
initData.config.E_Dateitypen = ""
initData.config.E_Aktion = ""
Dim cmd, url, uid
Set cmd = initData.AddCommand
url = "http://www.haage-partner.de/forum/viewtopic.php?f=45&t=4612"
uid = "FFE9F1A0-7499-4F26-9EEB-13E0CF713CF6"
cmd.name = "ToggleDoubleclickAction"
cmd.method = "OnToggleDoubleclickAction"
cmd.desc = "Ändert die bei Doppelklick ausgeführte Aktion für bestimmte Dateitypen. (Dateitypen und Aktion sind konfigurierbar)"
cmd.label = " Doppelklick-Aktion wechseln"
cmd.icon = "script"
cmd.template = "Ordner/S,Gruppe_A/S,Gruppe_B/S,Gruppe_C/S,Gruppe_D/S,Gruppe_E/S"
End Function
Function OnAboutScript(data) 'v0.1
Dim cmd : Set cmd = DOpus.Create.Command()
If (Not cmd.Commandlist("s").exists("ScriptWizard")) Then
If (DOpus.Dlg.Request("Das Add-In 'ScriptWizard' wurde nicht gefunden."&vbCrLf&vbCrLf&_
"Installiere 'ScriptWizard' von [resource.dopus.com]."&vbCrLf&"Das Add-In aktiviert diesen Dialog und bietet ausserdem "&_
"einfaches updaten von Scripts und vieles mehr.","Ja, zum Download!|Abbrechen", "No About.. ", data.window)) Then _
cmd.RunCommand("http://resource.dopus.com/viewtopic.php?f=35&t=23179")
Else
cmd.RunCommand("ScriptWizard ABOUT WIN="&data.window&" FILE="""&Script.File&"""")
End If
End Function
Dim var_All, var_A, var_B, var_C, var_D, var_E, var_O
var_All = DOpus.vars.Exists ("tdca")
var_A = DOpus.vars.Exists ("tdcaA")
var_B = DOpus.vars.Exists ("tdcaB")
var_C = DOpus.vars.Exists ("tdcaC")
var_D = DOpus.vars.Exists ("tdcaD")
var_E = DOpus.vars.Exists ("tdcaE")
var_O = DOpus.vars.Exists ("tdcaO")
' Called when a file or folder is double-clicked
Function OnDoubleClick(doubleClickData)
Dim A_A, A_D, B_A, B_D, C_A, C_D, D_A, D_D, E_A, E_D, O_A, ext
O_A = Script.config.Ordneraktion
A_A = Script.config.A_Aktion
A_D = Script.config.A_Dateitypen
B_A = Script.config.B_Aktion
B_D = Script.config.B_Dateitypen
C_A = Script.config.C_Aktion
C_D = Script.config.C_Dateitypen
D_A = Script.config.D_Aktion
D_D = Script.config.D_Dateitypen
E_A = Script.config.E_Aktion
E_D = Script.config.E_Dateitypen
ext = doubleClickData.item.ext
On Error Resume Next
If doubleClickData.item.is_dir <> 0 Then
If (var_All = True or var_O = True) Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&O_A&" {filepath}")
End If
Else
If (var_All = True or var_A = True) Then
If InStr(A_D, ext) <>0 Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&A_A&" {filepath}")
End If
End If
If (var_All = True or var_B = True) Then
If InStr(B_D, ext) <>0 Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&B_A&" {filepath}")
End If
End If
If (var_All = True or var_C = True) Then
If InStr(C_D, ext) <>0 Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&C_A&" {filepath}")
End If
End If
If (var_All = True or var_D = True) Then
If InStr(D_D, ext) <>0 Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&D_A&" {filepath}")
End If
End If
If (var_All = True or var_E = True) Then
If InStr(E_D, ext) <>0 Then
OnDoubleClick = True
DOpus.NewCommand.RunCommand (""&E_A&" {filepath}")
End If
End If
End If
End Function
' Implement the ToggleDoubleclickAction command
Function OnToggleDoubleclickAction(ClickData)
Dim got_A, got_B, got_C, got_D, got_E, got_O, Var
got_A = ClickData.func.args.got_arg.Gruppe_A
got_B = ClickData.func.args.got_arg.Gruppe_B
got_C = ClickData.func.args.got_arg.Gruppe_C
got_D = ClickData.func.args.got_arg.Gruppe_D
got_E = ClickData.func.args.got_arg.Gruppe_E
got_O = ClickData.func.args.got_arg.Ordner
' Clear all variables
If Not (got_A =True Or got_B =True Or got_C =True Or got_D =True Or got_E =True Or got_O = True) Then
If var_All =True Then
DOpus.vars.Delete ("tdca")
Else
DOpus.vars.Set "tdca", 1
Set Var = DOpus.vars ("tdca")
Var.persist = True
End If
End If
If got_A=True Then
If var_A = True Then
DOpus.vars.Delete ("tdcaA")
Else
DOpus.vars.Set "tdcaA", 1
Set Var = DOpus.vars ("tdcaA")
Var.persist = True
End If
End If
If got_B=True Then
If var_B = True Then
DOpus.vars.Delete ("tdcaB")
Else
DOpus.vars.Set "tdcaB", 1
Set Var = DOpus.vars ("tdcaB")
Var.persist = True
End If
End If
If got_C=True Then
If var_C = True Then
DOpus.vars.Delete ("tdcaC")
Else
DOpus.vars.Set "tdcaC", 1
Set Var = DOpus.vars ("tdcaC")
Var.persist = True
End If
End If
If got_D=True Then
If var_D = True Then
DOpus.vars.Delete ("tdcaD")
Else
DOpus.vars.Set "tdcaD", 1
Set Var = DOpus.vars ("tdcaD")
Var.persist = True
End If
End If
If got_E=True Then
If var_E = True Then
DOpus.vars.Delete ("tdcaE")
Else
DOpus.vars.Set "tdcaE", 1
Set Var = DOpus.vars ("tdcaE")
Var.persist = True
End If
End If
If got_O=True Then
If var_O = True Then
DOpus.vars.Delete ("tdcaO")
Else
DOpus.vars.Set "tdcaO", 1
Set Var = DOpus.vars ("tdcaO")
Var.persist = True
End If
End If
ClickData.Func.Command.UpdateToggle
End Function
'MD5 = "8989f6cea3e14532dda6a5ba720e6d95"; DATE = "2014.11.29 - 10:46:52"