Kontexmenü_creator:
Es ist ein Toll welches einstellungen in der Registry vornimmt.
Und zwar die Rechtsklick menü werte.
Man kann:
Im "Background" menü also rechtsklick auf einer freien stelle ein beliebiges Programm einstellen.
im "Drive" menü kann man rechtsklick auf einem Laufwerk machen und eben falls ein Programm starten lassen,
und Parameter verwenden. Z.B. für ein Backup-Programm.
im "Folder" menü kann man rechtsklick auf einem Ordnern machen und eben falls ein Programm starten lassen,
und Parameter verwenden. Z.B. für ein Programm wie "name_change" mit Parametern.
>>>Neuerung.
Alles an Programmen wird in einer Ini gespeichert um so ggf. auch Portable zu nutzen
PS: Macht was ihr wollt damit
Wenn es euch gefällt schreibt :p
Hauptteil
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=K:\cnc3nod.ico
#AutoIt3Wrapper_Outfile=Kontexmenu_creator.exe
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=BuFF
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <RegFunc.au3>
#include <array.au3>
#include <file.au3>
#include <GuiListView.au3>
If IsArray($CmdLine) Then
If $CmdLine[0] > 0 Then
If $CmdLine[1] <> "" Then
If $CmdLine[0] = 1 Then
ShellExecute($CmdLine[1])
Exit
Else
ShellExecute($CmdLine[1], $CmdLine[2])
Exit
EndIf
Else
ConsoleWrite("Fehler Keine Datei angegeben")
Exit
EndIf
EndIf
EndIf
Global $g_szVersion = "Regchanger1_" & FileGetVersion(@ScriptName)
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion)
If FileExists(@WindowsDir & "\open.exe") Then
Local $nurso = True
Else
FileCopy(@ScriptDir & "\open.exe", @WindowsDir & "\open.exe")
EndIf
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1)
#Region ### START Koda GUI section ### Form=C:\Users\Ron\Documents\AutoIT3\Kontexmenu_creator\Kontexmenu.kxf
$Kontexmenu = GUICreate("Kontexmenü - Ersteller", 616, 354, 174, 222)
GUISetOnEvent($GUI_EVENT_CLOSE, "KontexmenuClose")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "KontexmenuMinimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "KontexmenuMaximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "KontexmenuRestore")
$tab = GUICtrlCreateTab(8, 8, 593, 329)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$allgemein = GUICtrlCreateTabItem("Normales Rechtsklickmenü")
$Input_pfad = GUICtrlCreateInput("", 32, 64, 473, 21)
GUICtrlSetOnEvent(-1, "Input_pfadChange")
$Input_name = GUICtrlCreateInput("", 31, 184, 121, 21)
GUICtrlSetOnEvent(-1, "Input_nameChange")
GUICtrlCreateLabel("Pfad zum Programm:", 32, 40, 101, 17)
GUICtrlSetOnEvent(-1, "Label4Click")
GUICtrlCreateLabel("Name des Eintrags:", 32, 160, 96, 17)
GUICtrlSetOnEvent(-1, "Label5Click")
$Button_pfad = GUICtrlCreateButton("Suchen", 520, 64, 51, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_pfadClick")
$Button_hinzufugen = GUICtrlCreateButton("Hinzufügen", 168, 184, 75, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_hinzufugenClick")
$List1 = GUICtrlCreateList("", 27, 224, 361, 97)
GUICtrlSetOnEvent(-1, "List1Click")
$Button_suchen = GUICtrlCreateButton("Suchen", 419, 224, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_suchenClick")
$Button_entfernen = GUICtrlCreateButton("Löschen", 419, 264, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_entfernenClick")
$Checkbox_nachfragen = GUICtrlCreateCheckbox("Ohne Nachfragen Löschen?", 411, 296, 161, 17)
GUICtrlSetOnEvent(-1, "Checkbox_nachfragenClick")
$drive = GUICtrlCreateTabItem("Drive Rechtsklickmenü")
$input_drive_pfad = GUICtrlCreateInput("", 31, 72, 473, 21)
GUICtrlSetOnEvent(-1, "input_drive_pfadChange")
$Input_drive_name = GUICtrlCreateInput("", 31, 192, 121, 21)
GUICtrlSetOnEvent(-1, "Input_drive_nameChange")
GUICtrlCreateLabel("Pfad zum Programm:", 31, 48, 101, 17)
GUICtrlSetOnEvent(-1, "Label15Click")
GUICtrlCreateLabel("Name des Eintrags:", 31, 168, 96, 17)
GUICtrlSetOnEvent(-1, "Label16Click")
$button_drive_program = GUICtrlCreateButton("Suchen", 519, 72, 51, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "button_drive_programClick")
$Button_drive_hinzufugen = GUICtrlCreateButton("Hinzufügen", 159, 192, 75, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_drive_hinzufugenClick")
$List2 = GUICtrlCreateList("", 27, 224, 361, 97)
GUICtrlSetOnEvent(-1, "List2Click")
$Button_drive_suchen = GUICtrlCreateButton("Suchen", 426, 232, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_drive_suchenClick")
$Button_drive_loschen = GUICtrlCreateButton("Löschen", 426, 264, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_drive_loschenClick")
$Checkbox_drive_nachfragen = GUICtrlCreateCheckbox("Ohne Nachfragen Löschen?", 426, 304, 161, 17)
GUICtrlSetOnEvent(-1, "Checkbox_drive_nachfragenClick")
GUICtrlCreateLabel("Parameter Übergabe:", 32, 104, 105, 17)
GUICtrlSetOnEvent(-1, "Label23Click")
$Input_drvie_parameter = GUICtrlCreateInput("%1", 32, 128, 121, 21)
GUICtrlSetOnEvent(-1, "Input_drvie_parameterChange")
GUICtrlCreateLabel("Windows übergabeparameter für datein und verzeichnise lautet: %1", 176, 128, 322, 17)
GUICtrlSetOnEvent(-1, "Label25Click")
$ordner = GUICtrlCreateTabItem("Ordner Rechtsklickmenü")
$Input_ordner_pfad = GUICtrlCreateInput("", 40, 66, 473, 21)
GUICtrlSetOnEvent(-1, "Input_ordner_pfadChange")
$Input_ordner_name = GUICtrlCreateInput("", 32, 194, 121, 21)
GUICtrlSetOnEvent(-1, "Input_ordner_nameChange")
GUICtrlCreateLabel("Pfad zum Programm:", 40, 42, 101, 17)
GUICtrlSetOnEvent(-1, "Label29Click")
GUICtrlCreateLabel("Name des Eintrags:", 32, 170, 96, 17)
GUICtrlSetOnEvent(-1, "Label30Click")
$Button_ordner_programm = GUICtrlCreateButton("Suchen", 528, 66, 51, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ordner_programmClick")
$Button_ordner_hinzufugen = GUICtrlCreateButton("Hinzufügen", 168, 194, 75, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ordner_hinzufugenClick")
$List3 = GUICtrlCreateList("", 27, 226, 361, 97)
GUICtrlSetOnEvent(-1, "List3Click")
$Button_ordner_suchen = GUICtrlCreateButton("Suchen", 419, 234, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ordner_suchenClick")
$Button_ordner_loschen = GUICtrlCreateButton("Löschen", 419, 266, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ordner_loschenClick")
$Checkbox_ordner_nachfragen = GUICtrlCreateCheckbox("Ohne Nachfragen Löschen?", 419, 306, 161, 17)
GUICtrlSetOnEvent(-1, "Checkbox_ordner_nachfragenClick")
GUICtrlCreateLabel("Parameter Übergabe:", 36, 104, 105, 17)
GUICtrlSetOnEvent(-1, "Label37Click")
$Input_ordner_parameter = GUICtrlCreateInput("%1", 36, 128, 121, 21)
GUICtrlSetOnEvent(-1, "Input_ordner_parameterChange")
GUICtrlCreateLabel("Windows übergabeparameter für datein und verzeichnise lautet: %1", 176, 128, 322, 17)
GUICtrlSetOnEvent(-1, "Label39Click")
$aus_ini_laden = GUICtrlCreateTabItem("Aus ini laden")
$Input_iniload = GUICtrlCreateInput("", 32, 56, 329, 21)
GUICtrlSetOnEvent(-1, "Input_iniloadChange")
$Button_iniload = GUICtrlCreateButton("Ini Laden", 376, 56, 75, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_iniloadClick")
$Button_ini_start_load = GUICtrlCreateButton("Setze Werte Aus ini", 64, 120, 123, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ini_start_loadClick")
$Button_ini_del_load = GUICtrlCreateButton("Werte wieder Löschen", 368, 120, 123, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button_ini_del_loadClick")
GUICtrlCreateTabItem("")
GUICtrlSetOnEvent(-1, "tabChange")
TraySetClick("9")
$exitmenutray = TrayCreateItem("Beenden")
TrayItemSetOnEvent(-1, "exitmenutrayClick")
$offnenmenutray = TrayCreateItem("Öffnen")
TrayItemSetOnEvent(-1, "offnenmenutrayClick")
$hidemenutray = TrayCreateItem("Verstecken")
TrayItemSetOnEvent(-1, "hidemenutrayClick")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $dateiname, $all_exe = False, $ordner_exe = False, $drive_exe = False
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
GUICtrlSetData($Input_iniload, IniRead(@ScriptDir & "\Kontexmenu.ini", "Pfad_load_ini", "var", @ScriptDir & "\settings.ini"))
While 1
Sleep(100)
WEnd
#Region löschen der reg einträge
Func Button_entfernenClick()
If GUICtrlRead($Checkbox_nachfragen) = 4 Then
$antwort = MsgBox(4, "System", "Wollen sie wirklich " & _GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1)) & " Löschen?")
If $antwort = 6 Then
$data = _GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1))
RegDelete("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $data)
_GUICtrlListBox_DeleteString($List1, _GUICtrlListBox_FindString($List1, $data, True))
EndIf
Else
$data = _GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1))
RegDelete("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $data)
_GUICtrlListBox_DeleteString($List1, _GUICtrlListBox_FindString($List1, $data, True))
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_entfernenClick
Func Button_drive_loschenClick()
If GUICtrlRead($Checkbox_drive_nachfragen) = 4 Then
$antwort = MsgBox(4, "System", "Wollen sie wirklich " & _GUICtrlListBox_GetText($List2, _GUICtrlListBox_GetCurSel($List2)) & " Löschen?")
If $antwort = 6 Then
$data = _GUICtrlListBox_GetText($List2, _GUICtrlListBox_GetCurSel($List2))
RegDelete("HKEY_CLASSES_ROOT\Drive\shell\" & $data)
_GUICtrlListBox_DeleteString($List2, _GUICtrlListBox_FindString($List2, $data, True))
EndIf
Else
$data = _GUICtrlListBox_GetText($List2, _GUICtrlListBox_GetCurSel($List2))
RegDelete("HKEY_CLASSES_ROOT\Drive\shell\" & $data)
_GUICtrlListBox_DeleteString($List2, _GUICtrlListBox_FindString($List2, $data, True))
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_drive_loschenClick
Func Button_ordner_loschenClick()
If GUICtrlRead($Checkbox_ordner_nachfragen) = 4 Then
$antwort = MsgBox(4, "System", "Wollen sie wirklich " & _GUICtrlListBox_GetText($List3, _GUICtrlListBox_GetCurSel($List3)) & " Löschen?")
If $antwort = 6 Then
$data = _GUICtrlListBox_GetText($List3, _GUICtrlListBox_GetCurSel($List3))
RegDelete("HKEY_CLASSES_ROOT\Folder\shell\" & $data)
_GUICtrlListBox_DeleteString($List3, _GUICtrlListBox_FindString($List3, $data, True))
EndIf
Else
$data = _GUICtrlListBox_GetText($List3, _GUICtrlListBox_GetCurSel($List3))
RegDelete("HKEY_CLASSES_ROOT\Folder\shell\" & $data)
_GUICtrlListBox_DeleteString($List3, _GUICtrlListBox_FindString($List3, $data, True))
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_ordner_loschenClick
#EndRegion löschen der reg einträge
#Region Hinzufügen der reg einträge
Func Button_hinzufugenClick()
If GUICtrlRead($Input_name) <> "" And GUICtrlRead($Input_pfad) And FileExists(GUICtrlRead($Input_pfad)) Then
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & GUICtrlRead($Input_name), "Icon", "REG_SZ", '"' & GUICtrlRead($Input_pfad) & '"')
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & GUICtrlRead($Input_name) & "\Command", "", "REG_SZ", '"' & GUICtrlRead($Input_pfad) & '"')
If $all_exe = False Then RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & GUICtrlRead($Input_name) & "\Command", "", "REG_SZ", "open.exe " & '"' & GUICtrlRead($Input_pfad) & '"')
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & GUICtrlRead($Input_name), "", "REG_SZ", GUICtrlRead($Input_name))
$all_exe = False
Else
MsgBox(0, "System", "Fehler nicht alle Felder sind ausgefüllt! Oder Programm existiert nicht!")
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_hinzufugenClick
Func Button_drive_hinzufugenClick()
If GUICtrlRead($Input_drive_name) <> "" And GUICtrlRead($input_drive_pfad) And FileExists(GUICtrlRead($input_drive_pfad)) Then
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & GUICtrlRead($Input_drive_name), "Icon", "REG_SZ", '"' & GUICtrlRead($input_drive_pfad) & '"')
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & GUICtrlRead($Input_drive_name) & "\Command", "", "REG_SZ", '"' & GUICtrlRead($input_drive_pfad) & '" ' & GUICtrlRead($Input_drvie_parameter))
If $drive_exe = False Then RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & GUICtrlRead($Input_drive_name) & "\Command", "", "REG_SZ", "open.exe " & '" ' & GUICtrlRead($input_drive_pfad) & '" ' & GUICtrlRead($Input_drvie_parameter))
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & GUICtrlRead($Input_drive_name), "", "REG_SZ", GUICtrlRead($Input_drive_name))
$drive_exe = False
Else
MsgBox(0, "System", "Fehler nicht alle Felder sind ausgefüllt! Oder Programm existiert nicht!")
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_drive_hinzufugenClick
Func Button_ordner_hinzufugenClick()
If GUICtrlRead($Input_ordner_name) <> "" And GUICtrlRead($Input_ordner_pfad) And FileExists(GUICtrlRead($Input_ordner_pfad)) Then
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & GUICtrlRead($Input_ordner_name), "Icon", "REG_SZ", '"' & GUICtrlRead($Input_ordner_pfad) & '"')
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & GUICtrlRead($Input_ordner_name) & "\Command", "", "REG_SZ", '"' & GUICtrlRead($Input_ordner_pfad) & '" ' & GUICtrlRead($Input_ordner_parameter))
If $ordner_exe = False Then RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & GUICtrlRead($Input_ordner_name) & "\Command", "", "REG_SZ", "open.exe " & '"' & GUICtrlRead($Input_ordner_pfad) & '" ' & GUICtrlRead($Input_ordner_parameter))
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & GUICtrlRead($Input_ordner_name), "", "REG_SZ", GUICtrlRead($Input_ordner_name))
$ordner_exe = False
Else
MsgBox(0, "System", "Fehler nicht alle Felder sind ausgefüllt! Oder Programm existiert nicht!")
EndIf
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_ordner_hinzufugenClick
#EndRegion Hinzufügen der reg einträge
#Region Suchen button
Func Button_pfadClick()
$fileload = FileOpenDialog("Programm Auswählen", "", "Alle Dateien (*.*)")
If $fileload <> "" Then
GUICtrlSetData($Input_pfad, $fileload)
$filearray = StringSplit($fileload, "\")
$number = UBound($filearray) - 1
If $filearray[$number] <> "" Then GUICtrlSetData($Input_name, $filearray[$number])
$dateiname = $filearray[$number]
If StringInStr($filearray[$number], ".exe") >= 1 Then $all_exe = True
EndIf
EndFunc ;==>Button_pfadClick
Func button_drive_programClick()
$fileload = FileOpenDialog("Programm Auswählen", "", "Alle Dateien (*.*)")
If $fileload <> "" Then
GUICtrlSetData($input_drive_pfad, $fileload)
$filearray = StringSplit($fileload, "\")
$number = UBound($filearray) - 1
If $filearray[$number] <> "" Then GUICtrlSetData($Input_drive_name, $filearray[$number])
$dateiname = $filearray[$number]
If StringInStr($filearray[$number], ".exe") >= 1 Then $drive_exe = True
EndIf
EndFunc ;==>button_drive_programClick
Func Button_ordner_programmClick()
$fileload = FileOpenDialog("Programm Auswählen", "", "Alle Dateien (*.*)")
If $fileload <> "" Then
GUICtrlSetData($Input_ordner_pfad, $fileload)
$filearray = StringSplit($fileload, "\")
$number = UBound($filearray) - 1
If $filearray[$number] <> "" Then GUICtrlSetData($Input_ordner_name, $filearray[$number])
$dateiname = $filearray[$number]
If StringInStr($filearray[$number], ".exe") >= 1 Then $ordner_exe = True
EndIf
EndFunc ;==>Button_ordner_programmClick
#EndRegion Suchen button
#Region Suchen der einzelnen einträge (liste)
Func Button_suchenClick()
_GUICtrlListBox_ResetContent($List1)
$ar = _GetRegSubKeys("HKEY_CLASSES_ROOT\Directory\Background\shell")
;_ArrayDisplay($ar)
For $i = 0 To UBound($ar) - 1 Step +1
If $ar[$i] <> "cmd" Then _GUICtrlListBox_InsertString($List1, $ar[$i])
Next
EndFunc ;==>Button_suchenClick
Func Button_drive_suchenClick()
_GUICtrlListBox_ResetContent($List2)
$ar = _GetRegSubKeys("HKEY_CLASSES_ROOT\Drive\shell")
;_ArrayDisplay($ar)
For $i = 0 To UBound($ar) - 1 Step +1
If $ar[$i] <> "cmd" And $ar[$i] <> "encrypt-bde" And $ar[$i] <> "encrypt-bde-elev" And $ar[$i] <> "find" And $ar[$i] <> "manage-bde" And $ar[$i] <> "manage-bde-elev" And $ar[$i] <> "resume-bde" And $ar[$i] <> "resume-bde-elev" And $ar[$i] <> "unlock-bde" Then _GUICtrlListBox_InsertString($List2, $ar[$i])
Next
EndFunc ;==>Button_drive_suchenClick
Func Button_ordner_suchenClick()
_GUICtrlListBox_ResetContent($List3)
$ar = _GetRegSubKeys("HKEY_CLASSES_ROOT\Folder\shell")
;_ArrayDisplay($ar)
For $i = 0 To UBound($ar) - 1 Step +1
If $ar[$i] <> "explore" And $ar[$i] <> "open" And $ar[$i] <> "opennewprocess" And $ar[$i] <> "opennewwindow" Then _GUICtrlListBox_InsertString($List3, $ar[$i])
Next
EndFunc ;==>Button_ordner_suchenClick
#EndRegion Suchen der einzelnen einträge (liste)
#Region Ini settings
Func Button_iniloadClick()
$fileload = FileOpenDialog("Einstellungs Ini", "", "Konfig-Dat (*.ini)")
If $fileload <> "" Then GUICtrlSetData($Input_iniload, $fileload)
EndFunc ;==>Button_iniloadClick
Func Button_ini_start_loadClick()
Local $lines
Local $singelline
$Pfad_for_ini = IniRead(@ScriptDir & "\Kontexmenu.ini", "Pfad_load_ini", "var", @ScriptDir & "\settings.ini")
_FileReadToArray($Pfad_for_ini, $lines)
For $i = 0 To $lines[0] Step +1
$singelline = StringSplit($lines[$i], "<->", 1)
If $singelline[0] == 5 Then
If $singelline[1] == "Drive" Then
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $singelline[2], "Icon", "REG_SZ", $singelline[4])
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $singelline[2], "", "REG_SZ", $singelline[3])
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $singelline[2] & "\Command", "", "REG_SZ", $singelline[5])
EndIf
If $singelline[1] == "Folder" Then
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & $singelline[2], "Icon", "REG_SZ", $singelline[4])
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & $singelline[2], "", "REG_SZ", $singelline[3])
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & $singelline[2] & "\Command", "", "REG_SZ", $singelline[5])
EndIf
If $singelline[1] == "Background" Then
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $singelline[2], "Icon", "REG_SZ", $singelline[4])
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $singelline[2], "", "REG_SZ", $singelline[3])
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $singelline[2] & "\Command", "", "REG_SZ", $singelline[5])
EndIf
EndIf
Next
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_ini_start_loadClick
Func Button_ini_del_loadClick()
Local $lines
Local $singelline
$Pfad_for_ini = IniRead(@ScriptDir & "\Kontexmenu.ini", "Pfad_load_ini", "var", @ScriptDir & "\settings.ini")
_FileReadToArray($Pfad_for_ini, $lines)
For $i = 0 To $lines[0] Step +1
$singelline = StringSplit($lines[$i], "<->", 1)
If $singelline[0] == 5 Then
If $singelline[1] == "Drive" Then
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $singelline[2])
EndIf
If $singelline[1] == "Folder" Then
RegWrite("HKEY_CLASSES_ROOT\Folder\shell\" & $singelline[2])
EndIf
If $singelline[1] == "Background" Then
RegWrite("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $singelline[2])
EndIf
EndIf
Next
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
EndFunc ;==>Button_ini_del_loadClick
#EndRegion Ini settings
Func KontexmenuClose()
$file = FileOpen(GUICtrlRead($Input_iniload), 2)
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
$anzahl = _GUICtrlListBox_GetCount($List1)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List1, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Background<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
$anzahl = _GUICtrlListBox_GetCount($List2)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List2, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Drive<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
$anzahl = _GUICtrlListBox_GetCount($List3)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List3, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Folder<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
IniWrite(@ScriptDir & "\Kontexmenu.ini", "Pfad_load_ini", "var", GUICtrlRead($Input_iniload))
FileClose($file)
GUISetState(@SW_HIDE)
EndFunc ;==>KontexmenuClose
Func exitmenutrayClick()
$file = FileOpen(GUICtrlRead($Input_iniload), 2)
Button_drive_suchenClick()
Button_ordner_suchenClick()
Button_suchenClick()
$anzahl = _GUICtrlListBox_GetCount($List1)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List1, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Directory\Background\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Background<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
$anzahl = _GUICtrlListBox_GetCount($List2)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List2, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Drive<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
$anzahl = _GUICtrlListBox_GetCount($List3)
For $i = 0 To $anzahl - 1
$text = _GUICtrlListBox_GetText($List3, $i)
$Temp_name = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text, "")
$Temp_Icon = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text, "Icon")
$Temp_programm = RegRead("HKEY_CLASSES_ROOT\Folder\shell\" & $text & "\command", "")
If $text == "" Then $text = "..."
If $Temp_name == "" Then $Temp_name = "..."
If $Temp_Icon == "" Then $Temp_name = "..."
If $Temp_programm == "" Then $Temp_name = "..."
FileWriteLine($file, "Folder<->" & $text & "<->" & $Temp_name & "<->" & $Temp_Icon & "<->" & $Temp_programm)
Next
IniWrite(@ScriptDir & "\Kontexmenu.ini", "Pfad_load_ini", "var", GUICtrlRead($Input_iniload))
FileClose($file)
Exit
EndFunc ;==>exitmenutrayClick
Func offnenmenutrayClick()
GUISetState(@SW_SHOW)
EndFunc ;==>offnenmenutrayClick
Func hidemenutrayClick()
GUISetState(@SW_HIDE)
EndFunc ;==>hidemenutrayClick
UDF von BugFix
Spoiler anzeigen
;========================================================================================
; Function Name: _GetRegSubKeys($HKEY)
; Description: Ermittelt die Unterschlüssel für den übergebenen Schlüssel
; Parameter(s): $HKEY der Registryschlüssel
; Return Value(s): Erfolg Array mit den Unterschlüsseln
; Fehler Leerstring (keine Unterschlüssel vorhanden oder Schlüssel existiert nicht)
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;========================================================================================
Func _GetRegSubKeys($HKEY)
If StringInStr($HKEY, '\') Then
If StringRight($HKEY, 1) = '\' Then
$HKEY = StringTrimRight($HKEY, 1)
Local $strKeyPath = ''
Else
Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
$HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
EndIf
Else
Local $strKeyPath = ''
EndIf
Select
Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
$HKEY = 0x80000002
Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
$HKEY = 0x80000003
Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
$HKEY = 0x80000001
Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
$HKEY = 0x80000000
Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
$HKEY = 0x80000005
EndSelect
Local $arrSubKeys = '', $subkey
Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
$oReg.EnumKey ($HKEY, $strKeyPath, $arrSubKeys)
Return $arrSubKeys
EndFunc ;==>_GetRegSubKeys
;========================================================================================
; Function Name: _GetRegRights($HKEY)
; Description: Ermittelt die Rechte des Abfragenden für den übergebenen Schlüssel
; Parameter(s): $HKEY der zu prüfende Registryschlüssel
; Return Value(s): String mit Auflistung der Rechte:
; Q Key Query Value
; S Key Set Value
; C Key Create Sub Key
; D Delete
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;========================================================================================
Func _GetRegRights($HKEY)
Local $bHasAccessRight, $sRights = ''
If StringInStr($HKEY, '\') Then
If StringRight($HKEY, 1) = '\' Then
$HKEY = StringTrimRight($HKEY, 1)
Local $strKeyPath = ''
Else
Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
$HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
EndIf
Else
Local $strKeyPath = ''
EndIf
Select
Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
$HKEY = 0x80000002
Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
$HKEY = 0x80000003
Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
$HKEY = 0x80000001
Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
$HKEY = 0x80000000
Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
$HKEY = 0x80000005
EndSelect
Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
$oReg.CheckAccess($HKEY, $strKeyPath, 0x0001, $bHasAccessRight)
If $bHasAccessRight = True Then $sRights &= 'Q'
$oReg.CheckAccess($HKEY, $strKeyPath, 0x0002, $bHasAccessRight)
If $bHasAccessRight = True Then $sRights &= 'S'
$oReg.CheckAccess($HKEY, $strKeyPath, 0x0004, $bHasAccessRight)
If $bHasAccessRight = True Then $sRights &= 'C'
$oReg.CheckAccess($HKEY, $strKeyPath, 0x00010000, $bHasAccessRight)
If $bHasAccessRight = True Then $sRights &= 'D'
Return $sRights
EndFunc ;==>_GetRegRights
;========================================================================================
; Function Name: _GetRegValues($HKEY)
; Description: Ermittelt alle Namen, Typen und Werte in einem gegebenen Schlüssel
; Parameter(s): $HKEY der Registryschlüssel
; Return Value(s): Erfolg Array[i][0] = Name
; Array[i][1] = Typ
; Array[i][2] = Wert
; Fehler Leerstring (Schlüssel existiert nicht oder ist ohne Einträge)
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;========================================================================================
Func _GetRegValues($HKEY)
Local $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
If StringInStr($HKEY, '\') Then
If StringRight($HKEY, 1) = '\' Then
$HKEY = StringTrimRight($HKEY, 1)
Local $strKeyPath = ''
Else
Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
$HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
EndIf
Else
Local $strKeyPath = ''
EndIf
Select
Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
$HKEY = 0x80000002
Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
$HKEY = 0x80000003
Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
$HKEY = 0x80000001
Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
$HKEY = 0x80000000
Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
$HKEY = 0x80000005
EndSelect
Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Local $arrValueNames, $arrValueTypes, $strValue
$oReg.EnumValues($HKEY, $strKeyPath, $arrValueNames, $arrValueTypes)
$OEvent = ObjEvent($oReg, "EnumValues")
If Not IsArray($arrValueNames) Then Return ''
Local $arOut[UBound($arrValueNames)][3]
For $i = 0 To UBound($arrValueNames) -1
$arOut[$i][0] = $arrValueNames[$i]
Switch $arrValueTypes[$i]
Case 1
$arOut[$i][1] = 'REG_SZ'
$oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
Case 2
$arOut[$i][1] = 'REG_EXPAND_SZ'
$oReg.GetExpandedStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
Case 3
$arOut[$i][1] = 'REG_BINARY'
$oReg.GetBinaryValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
Case 4
$arOut[$i][1] = 'REG_DWORD'
$oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
Case 7
$arOut[$i][1] = 'REG_MULTI_SZ'
$oReg.GetMultiStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
EndSwitch
$arOut[$i][2] = $strValue
Next
Return $arOut
EndFunc ;==>_GetRegValues
Func MyErrFunc()
Return
Endfunc