- Offizieller Beitrag
Hi,
wer öfter mal Zugriff auf bestimmte Systemfenster benötigt und sich bisher mit Tastaturbefehlen beholfen hat: in vielen Fällen geht dies auch per Kommandozeile.
Eigentlich mehr durch Zufall bin ich auf die CPL-Files in Windows gestoßen.
Ich hab dann mal zu allen verfügbaren Files die Aufrufparameter ermittelt und zusammengestellt.
Ich denke mal, der eine oder andere wird Verwendung dafür finden.
Spoiler anzeigen
Aufruf von Systemeinstellungen per Kommandozeile:
Aufruf "Systemeigenschaften"
Registerkarte: "Allgemein" "control.exe sysdm.cpl,,0"
Registerkarte: "Computername" "control.exe sysdm.cpl,,1"
Registerkarte: "Hardware" "control.exe sysdm.cpl,,2"
Registerkarte: "Erweitert" "control.exe sysdm.cpl,,3"
Registerkarte: "Erweitert" <Button Systemleistung-Einstellungen> "Leistungsoptionen" "control.exe sysdm.cpl,,-1"
Registerkarte: "Systemwiederherstellung" "control.exe sysdm.cpl,,4"
Registerkarte: "Automatische Updates" "control.exe sysdm.cpl,,5"
Registerkarte: "Remote" "control.exe sysdm.cpl,,6"
Aufruf "Eigenschaften von Anzeige"
Registerkarte: "Designs" "control.exe desk.cpl,,-1"
Registerkarte: "Desktop" "control.exe desk.cpl,,0"
Registerkarte: "Bildschirmschoner" "control.exe desk.cpl,,1"
Registerkarte: "Darstellung" "control.exe desk.cpl,,2"
Registerkarte: "Einstellungen" "control.exe desk.cpl,,3"
Aufruf "Software"
"Programme ändern oder entfernen" "control.exe appwiz.cpl,,0"
"Neue Programme hinzufügen" "control.exe appwiz.cpl,,1"
"Windowskomponenten hinzufügen oder entfernen" "control.exe appwiz.cpl,,2"
"Programmzugriff und -standards festlegen" "control.exe appwiz.cpl,,3"
CPL-FILE| FENSTER| PARAMETER-INDEX
- - -
ACCESS.CPL "Eingabehilfen" 1-Tastatur, 2-Sound, 3-Anzeige, 4-Maus, 5-Allgemein
INETCPL.CPL "Eigenschaften von Internet" 0-Allgemein, 1-Sicherheit, 2-Datenschutz, 3-Inhalte, 4-Verbindungen, 5-Programme, 6-Erweitert
INTL.CPL "Regions- und Sprachoptionen" 0-Regionale Einstellungen, 1-Sprache, 2-Erweitert
MAIN.CPL "Eigenschaften von Maus" 0-Tasten, 1-Zeiger, 2-Zeigeroptionen, 3-Rad, 4-Hardware, 5-Geräteeinstellungen
MMSYS.CPL "Eigenschaften von Sounds und Audiogeräte" 0-Lautstärke, 1-Sounds, 2-Audio, 3-Stimme, 4-Hardware
TELEPHON.CPL "Telefon- und Modemoptionen" 0-Wählregeln, 1-Modems, 2-Erweitert
TIMEDATE.CPL "Eigenschaften von Datum und Uhrzeit" 0-Datum und Uhrzeit, 1-Zeitzone
WSCUI.CPL "Windows-Sicherheitscenter" o.Parameter Hauptfenster, 0-Warnungseinstellungen
Folgende Fenster werden ohne Parameter aufgerufen, also "control.exe *******.cpl"
FIREWALL.CPL "Windows Firewall" Allgemein (andere Register nicht einzeln ansprechbar)
HDWWIZ.CPL "Hardware-Assistant"
JOY.CPL "Gamecontroller"
NCPA.CPL "Netzwerkverbindungen"
NETSETUP.CPL "Netzwerkinstallationsassistent"
NUSRMGR.CPL "Benutzerkonten"
ODBCCP32.CPL "ODBC-Datenquellen-Administrator"
POWERCFG.CPL "Eigenschaften von Energieoptionen"
EDIT
Hab das ganze jetzt praktikabel in eine GUI eingebettet.
- Textsuche nach Einstellungsoption ('sys' liefert z.B. alle erreichbaren Systemeigenschaften)
- Suche-Button ist DEFPUSHBUTTON
- bei Klick auf gewünschten Parameter wird der Kommandozeilenbefehl angezeigt
- Testbutton zur Vorschau
- Übernahme CmdLine-Befehl in Zwischenablage als String pur oder als "Run(Befehl)"
- alle Button per Tastatur wählbar
Edit: Jetzt angepaßt auf Version 3.2.10.0
Spoiler anzeigen
#include <GUIConstants.au3>
#Include <GuiListBox.au3>
#include <Array.au3>
Opt("GUIOnEventMode", 1)
Dim $arSearch[1] = ['']
Dim $arCPL[58][3] ; FENSTER| CPL-FILE| PARAMETER-INDEX
$arCPL[0][0] = "Systemeigenschaften - Allgemein"
$arCPL[1][0] = "Systemeigenschaften - Computername"
$arCPL[2][0] = "Systemeigenschaften - Hardware"
$arCPL[3][0] = "Systemeigenschaften - Erweitert"
$arCPL[4][0] = "Systemeigenschaften - Erweitert <Button Systemleistung-Einstellungen> Leistungsoptionen"
$arCPL[5][0] = "Systemeigenschaften - Systemwiederherstellung"
$arCPL[6][0] = "Systemeigenschaften - Automatische Updates"
$arCPL[7][0] = "Systemeigenschaften - Remote"
$arCPL[8][0] = "Eigenschaften von Anzeige - Designs"
$arCPL[9][0] = "Eigenschaften von Anzeige - Desktop"
$arCPL[10][0] = "Eigenschaften von Anzeige - Bildschirmschoner"
$arCPL[11][0] = "Eigenschaften von Anzeige - Darstellung"
$arCPL[12][0] = "Eigenschaften von Anzeige - Einstellungen"
$arCPL[13][0] = "Software - Programme ändern oder entfernen"
$arCPL[14][0] = "Software - Neue Programme hinzufügen"
$arCPL[15][0] = "Software - Windowskomponenten hinzufügen oder entfernen"
$arCPL[16][0] = "Software - Programmzugriff und -standards festlegen"
$arCPL[17][0] = "Eingabehilfen - Tastatur"
$arCPL[18][0] = "Eingabehilfen - Sound"
$arCPL[19][0] = "Eingabehilfen - Anzeige"
$arCPL[20][0] = "Eingabehilfen - Maus"
$arCPL[21][0] = "Eingabehilfen - Allgemein"
$arCPL[22][0] = "Eigenschaften von Internet - Allgemein"
$arCPL[23][0] = "Eigenschaften von Internet - Sicherheit"
$arCPL[24][0] = "Eigenschaften von Internet - Datenschutz"
$arCPL[25][0] = "Eigenschaften von Internet - Inhalte"
$arCPL[26][0] = "Eigenschaften von Internet - Verbindungen"
$arCPL[27][0] = "Eigenschaften von Internet - Programme"
$arCPL[28][0] = "Eigenschaften von Internet - Erweitert"
$arCPL[29][0] = "Regions- und Sprachoptionen - Regionale Einstellungen"
$arCPL[30][0] = "Regions- und Sprachoptionen - Sprache"
$arCPL[31][0] = "Regions- und Sprachoptionen - Erweitert"
$arCPL[32][0] = "Eigenschaften von Maus - Tasten"
$arCPL[33][0] = "Eigenschaften von Maus - Zeiger"
$arCPL[34][0] = "Eigenschaften von Maus - Zeigeroptionen"
$arCPL[35][0] = "Eigenschaften von Maus - Rad"
$arCPL[36][0] = "Eigenschaften von Maus - Hardware"
$arCPL[37][0] = "Eigenschaften von Maus - Geräteeinstellungen"
$arCPL[38][0] = "Eigenschaften von Sounds und Audiogeräte - Lautstärke"
$arCPL[39][0] = "Eigenschaften von Sounds und Audiogeräte - Sounds"
$arCPL[40][0] = "Eigenschaften von Sounds und Audiogeräte - Audio"
$arCPL[41][0] = "Eigenschaften von Sounds und Audiogeräte - Stimme"
$arCPL[42][0] = "Eigenschaften von Sounds und Audiogeräte - Hardware"
$arCPL[43][0] = "Telefon- und Modemoptionen - Wählregeln"
$arCPL[44][0] = "Telefon- und Modemoptionen - Modems"
$arCPL[45][0] = "Telefon- und Modemoptionen - Erweitert"
$arCPL[46][0] = "Eigenschaften von Datum und Uhrzeit - Datum und Uhrzeit"
$arCPL[47][0] = "Eigenschaften von Datum und Uhrzeit - Zeitzone"
$arCPL[48][0] = "Windows-Sicherheitscenter - Hauptfenster"
$arCPL[49][0] = "Windows-Sicherheitscenter - Warnungseinstellungen"
$arCPL[50][0] = "Windows Firewall - Allgemein"
$arCPL[51][0] = "Hardware-Assistant"
$arCPL[52][0] = "Gamecontroller"
$arCPL[53][0] = "Netzwerkverbindungen"
$arCPL[54][0] = "Netzwerkinstallationsassistent"
$arCPL[55][0] = "Benutzerkonten"
$arCPL[56][0] = "ODBC-Datenquellen-Administrator"
$arCPL[57][0] = "Eigenschaften von Energieoptionen"
$arCPL[0][1] = "SYSDM.CPL"
$arCPL[1][1] = "SYSDM.CPL"
$arCPL[2][1] = "SYSDM.CPL"
$arCPL[3][1] = "SYSDM.CPL"
$arCPL[4][1] = "SYSDM.CPL"
$arCPL[5][1] = "SYSDM.CPL"
$arCPL[6][1] = "SYSDM.CPL"
$arCPL[7][1] = "SYSDM.CPL"
$arCPL[8][1] = "DESK.CPL"
$arCPL[9][1] = "DESK.CPL"
$arCPL[10][1] = "DESK.CPL"
$arCPL[11][1] = "DESK.CPL"
$arCPL[12][1] = "DESK.CPL"
$arCPL[13][1] = "APPWIZ.CPL"
$arCPL[14][1] = "APPWIZ.CPL"
$arCPL[15][1] = "APPWIZ.CPL"
$arCPL[16][1] = "APPWIZ.CPL"
$arCPL[17][1] = "ACCESS.CPL"
$arCPL[18][1] = "ACCESS.CPL"
$arCPL[19][1] = "ACCESS.CPL"
$arCPL[20][1] = "ACCESS.CPL"
$arCPL[21][1] = "ACCESS.CPL"
$arCPL[22][1] = "INETCPL.CPL"
$arCPL[23][1] = "INETCPL.CPL"
$arCPL[24][1] = "INETCPL.CPL"
$arCPL[25][1] = "INETCPL.CPL"
$arCPL[26][1] = "INETCPL.CPL"
$arCPL[27][1] = "INETCPL.CPL"
$arCPL[28][1] = "INETCPL.CPL"
$arCPL[29][1] = "INTL.CPL"
$arCPL[30][1] = "INTL.CPL"
$arCPL[31][1] = "INTL.CPL"
$arCPL[32][1] = "MAIN.CPL"
$arCPL[33][1] = "MAIN.CPL"
$arCPL[34][1] = "MAIN.CPL"
$arCPL[35][1] = "MAIN.CPL"
$arCPL[36][1] = "MAIN.CPL"
$arCPL[37][1] = "MAIN.CPL"
$arCPL[38][1] = "MMSYS.CPL"
$arCPL[39][1] = "MMSYS.CPL"
$arCPL[40][1] = "MMSYS.CPL"
$arCPL[41][1] = "MMSYS.CPL"
$arCPL[42][1] = "MMSYS.CPL"
$arCPL[43][1] = "TELEPHON.CPL"
$arCPL[44][1] = "TELEPHON.CPL"
$arCPL[45][1] = "TELEPHON.CPL"
$arCPL[46][1] = "TIMEDATE.CPL"
$arCPL[47][1] = "TIMEDATE.CPL"
$arCPL[48][1] = "WSCUI.CPL"
$arCPL[49][1] = "WSCUI.CPL"
$arCPL[50][1] = "FIREWALL.CPL"
$arCPL[51][1] = "HDWWIZ.CPL"
$arCPL[52][1] = "JOY.CPL"
$arCPL[53][1] = "NCPA.CPL"
$arCPL[54][1] = "NETSETUP.CPL"
$arCPL[55][1] = "NUSRMGR.CPL"
$arCPL[56][1] = "ODBCCP32.CPL"
$arCPL[57][1] = "POWERCFG.CPL"
$arCPL[0][2] = 0
$arCPL[1][2] = 1
$arCPL[2][2] = 2
$arCPL[3][2] = 3
$arCPL[4][2] = -1
$arCPL[5][2] = 4
$arCPL[6][2] = 5
$arCPL[7][2] = 6
$arCPL[8][2] = -1
$arCPL[9][2] = 0
$arCPL[10][2] = 1
$arCPL[11][2] = 2
$arCPL[12][2] = 3
$arCPL[13][2] = 0
$arCPL[14][2] = 1
$arCPL[15][2] = 2
$arCPL[16][2] = 3
$arCPL[17][2] = 1
$arCPL[18][2] = 2
$arCPL[19][2] = 3
$arCPL[20][2] = 4
$arCPL[21][2] = 5
$arCPL[22][2] = 0
$arCPL[23][2] = 1
$arCPL[24][2] = 2
$arCPL[25][2] = 3
$arCPL[26][2] = 4
$arCPL[27][2] = 5
$arCPL[28][2] = 6
$arCPL[29][2] = 0
$arCPL[30][2] = 1
$arCPL[31][2] = 2
$arCPL[32][2] = 0
$arCPL[33][2] = 1
$arCPL[34][2] = 2
$arCPL[35][2] = 3
$arCPL[36][2] = 4
$arCPL[37][2] = 5
$arCPL[38][2] = 0
$arCPL[39][2] = 1
$arCPL[40][2] = 2
$arCPL[41][2] = 3
$arCPL[42][2] = 4
$arCPL[43][2] = 0
$arCPL[44][2] = 1
$arCPL[45][2] = 2
$arCPL[46][2] = 0
$arCPL[47][2] = 1
$arCPL[48][2] = -99
$arCPL[49][2] = 0
$arCPL[50][2] = -99
$arCPL[51][2] = -99
$arCPL[52][2] = -99
$arCPL[53][2] = -99
$arCPL[54][2] = -99
$arCPL[55][2] = -99
$arCPL[56][2] = -99
$arCPL[57][2] = -99
$guiCPL = GUICreate("Generiere CPL - CmdLine", 625, 513, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
$Group1 = GUICtrlCreateGroup(" Suche ( OHNE Suchbegriff wird Liste neu geladen )", 8, 8, 609, 49)
$inSearch = GUICtrlCreateInput("", 40, 26, 433, 21)
GUICtrlSetTip(-1, 'Mit Suche OHNE Suchbegriff' & @LF & 'wird die Liste wieder neu geladen.')
$btnSearch = GUICtrlCreateButton("Start", 500, 26, 100, 21, $BS_DEFPUSHBUTTON)
GUICtrlSetOnEvent(-1, "btnSearchClick")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$List1 = GUICtrlCreateList("", 8, 64, 609, 357)
GUICtrlSetOnEvent(-1, "List1Click")
$Group2 = GUICtrlCreateGroup(" Cmd-Line ", 8, 432, 609, 73)
$inCmdOut = GUICtrlCreateInput("", 40, 448, 433, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetColor(-1, 0x00008B)
$btnShow = GUICtrlCreateButton("&Test", 500, 448, 100, 21, 0)
GUICtrlSetOnEvent(-1, "btnShowClick")
$btnRaw = GUICtrlCreateButton("Kopiere &String pur", 68, 477, 150, 21, 0)
GUICtrlSetOnEvent(-1, "btnRawClick")
$btnRun = GUICtrlCreateButton("Kopiere String als: &Run( )", 295, 477, 150, 21, 0)
GUICtrlSetOnEvent(-1, "btnRunClick")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
Global $hList = GUICtrlGetHandle($List1)
_setList()
HotKeySet("!t", "btnShowClick")
HotKeySet("!s", "btnRawClick")
HotKeySet("!r", "btnRunClick")
While 1
Sleep(100)
WEnd
Func _setList()
For $i = 0 To UBound($arCPL)-1
GUICtrlSetData($List1, $arCPL[$i][0])
Next
EndFunc
Func btnRawClick()
Local $file = GUICtrlRead($inCmdOut)
If $file <> '' Then
ClipPut($file)
MsgBox(0, '', $file & @LF & @LF & 'wurde in Zwischenablage kopiert' )
EndIf
EndFunc
Func btnRunClick()
Local $file = GUICtrlRead($inCmdOut), $str
If $file <> '' Then
$str = "Run('" & $file & "')"
ClipPut($str)
MsgBox(0, '', $str & @LF & @LF & 'wurde in Zwischenablage kopiert' )
EndIf
EndFunc
Func btnSearchClick()
Local $toSearch = GUICtrlRead($inSearch)
ReDim $arSearch[1]
$arSearch[0] = ''
_GUICtrlListBoxClear($hList)
If $toSearch = '' Then
_setList()
Else
For $i = 0 To UBound($arCPL)-1
If StringInStr($arCPL[$i][0], $toSearch) Then
If $arSearch[0] = '' Then
$arSearch[0] = $arCPL[$i][0]
Else
ReDim $arSearch[UBound($arSearch)+1]
$arSearch[UBound($arSearch)-1] = $arCPL[$i][0]
EndIf
EndIf
Next
For $i = 0 To UBound($arSearch)-1
GUICtrlSetData($List1, $arSearch[$i])
Next
EndIf
EndFunc
Func btnShowClick()
Local $file = GUICtrlRead($inCmdOut)
If $file <> '' Then Run($file)
EndFunc
Func guiCPLClose()
Exit
EndFunc
Func List1Click()
$currPosIndex = _GUICtrlListBox_GetCaretIndex($hList)
For $i = 0 To UBound($arCPL)-1
If $arCPL[$i][0] = _GUICtrlListBox_GetText($hList, $currPosIndex) Then ExitLoop
Next
GUICtrlSetData($inCmdOut, _Generate($arCPL[$i][1], $arCPL[$i][2]))
EndFunc
Func _Generate($CPL, $PARAM)
Local $cmd = "control.exe "
If $PARAM <> -99 Then
$cmd &= $CPL & ",," & $PARAM
Else
$cmd &= $CPL
EndIf
Return $cmd
EndFunc
Func _GUICtrlListBoxClear($Handle)
Do
Local $rest = _GUICtrlListBox_DeleteString($hList, 0)
Until $rest = 0
EndFunc