David G.Wolski hat das Script pcwKontex.Vbs geschrieben, mit dem Parameter an
Exe-Dateien per Kontext-Menü übergeben werden können. Geht das auch mit AutoIt?
Jetzt ja, denn es gibt nun Kontext.au3!
Beim ersten Aufruf ohne Parameter installiert sich das Skript im Kontext-Menü
von .au3-Dateien, ein zweiter Aufruf ohne Parameter deinstalliert das Skript wieder..
Ich habe das Skript so aufgebaut, daß beliebige Erweiterungen benutzt werden
können, sofern ihnen eine ausführbare Anwendung zugeordnet ist. Der Aufruf geschieht
über
Das mag für Exe- und Com-Dateien umständlich erscheinen, macht das Skript aber universell..
Btw:
Bastler erkennen schnell, daß lediglich die Variable $Erw einen anderen Wert zu
erhalten braucht, um das Kontextmenü anderer Dateien zu erweitern.
So, genug der Vorrede, hier ist der
Spoiler anzeigen
;<AutoItScript>
;+----------------------------------------------------------------------------+
Opt("MustDeclareVars", 1) ;0=no, 1=require pre-declare |
;| Header: Bestimmen der Übergabeparameter |
;| ( Alles Strings(!!!), bis auf ArgC ) |
;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
Const $Autor="Kontext.au3 ©2006 by ytwinky, MD"; |
;| EMail: [EMAIL]PIII1kSystem-AutoIt3Forum@yahoo.de[/EMAIL] |
;| AutoIt3-Version: 3.1.1.110(beta) |
;| Editor: SciTE 1.67, feste Schriftart |
;| Zweck : KontextmenüEintrag für $Erw setzen |
;| Tab auf 2 setzen wg. Lesbarkeit |
;+----------------------------------------------------------------------------+
Const $Erw="au3", $aiQM=Chr(34)
Dim $Datei, $s
If $CmdLine[0]=0 Then ;Keine Parameter? Dann (de-) installiert sich das Script selbst
Dim $HKCR="HKCR", $ErwKey, $SubKey="\Shell" &$Erw &"Kontext"
If _KeyExists($HKCR &"." &$Erw) Then
$ErwKey=RegRead($HKCR &"." &$Erw, "")
Else
MsgBox(16, $Autor, "Ooops, "&$Erw &"-Dateien sind gar nicht registriert..")
Exit 27
EndIf
If _KeyExists($HKCR &$ErwKey &$SubKey) Then ; dann soll deinstalliert werden..
RegDelete($HKCR &$ErwKey &$SubKey &"Command")
RegDelete($HKCR &$ErwKey &$SubKey)
$s="KontextMenü-Eintrag wurde erfolgreich deinstalliert"
Else ; dann soll installiert werden..
RegWrite($HKCR &$ErwKey &$SubKey, "", "REG_SZ", $Erw &"-Parameter")
RegWrite($HKCR &$ErwKey &$SubKey &"Command", "", "REG_SZ", @AutoItExe &" " &$aiQM &@ScriptFullPath &$aiQM &" " &$aiQM &"%L" &$aiQM)
$s="Kontext.au3 wurde erfolgreich installiert." &@Cr &"Im Kontextmenü jeder " &$Erw &"-Datei können jetzt Parameter über den Menüpunkt "
$s&=$aiQM &"Mit Parameter" &$aiQM &" für die " &$Erw &"-Datei angeben werden"
EndIf
MsgBox(64, $Autor, $s)
Exit
EndIf
$Datei=$CmdLine[1]
$s=Inputbox($Datei &" mit Parametern aufrufen:", $Autor)
If $s<>"" Then Run("Cmd /c Start " &$Datei &" " &$s, "", @SW_HIDE )
Exit 0
;Unterprogramme
;Diese Funktion überprüft die Registry nach vorhandenen Schlüsseln. Wird von der De/Installationsroutine benötigt.
Func _KeyExists($RegKey)
RegRead($RegKey, "")
Return @Error=0
EndFunc
;</AutoItScript>
Alles anzeigen
Happy Kontexting
ytwinky