dank1
|
Posted: Tue Oct 06, 2015 18:47 Post subject: |
|
|
Вот скрипт:
 open_cpannel_element_v_1_1.ahk Code: | #keyHistory 0 ; отключить историю
#singleInstance force ; запретить запуск нескольких копий программы
#hotkeyInterval 0 ; disable the warning dialog if a key is held down
#noTrayIcon ; без иконки в трее
#noEnv ; запрещаем имена переменных как у переменных окружения
setBatchLines, -1 ; максимальная скорость для скрипта
sendMode Input ; новый режим высылки без задержки и с повышенной надежностью
#IfWinActive ahk_class TTOTAL_CMD
ENTER::
Send_WM_COPYDATA(cmd:="A")
If (Item <> "") || MainMenuFocus(WinExist("A"))
SendInput, {Enter}
Else {
WinGet, TCHWND, ID, A
OnMessage(0x4a, "Receive_WM_COPYDATA")
Send_WM_COPYDATA(cmd:="SP")
Path:=% Item
Send_WM_COPYDATA(cmd:="SN")
Name:=% Item
full_path := Path . Name
ADMINISTRATION := "shell:::{D20EA4E1-3957-11d2-A40B-0C5020524153}"
AUTORUN := "shell:::{9C60DE1E-E5FC-40f4-A487-460851A8D915}"
BACKUP_AND_RESTORE := "shell:::{B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}"
BITLOCKER_DRIVE_ENCRYPTION := "shell:::{D9EF8727-CAC2-4e60-809E-86F80A666C91}"
CREDENTIAL_MANAGER := "shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}"
DEFAULT_PROGRAMS := "shell:::{17cd9488-1228-4b2f-88ce-4298e93e0966}"
DEVICES_AND_PRINTERS := "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"
EASE_OF_ACCESS_CENTER := "shell:::{D555645E-D4F8-4c29-A827-D93C859C4F2A}"
ELECTRICAL_POWER := "shell:::{025A5937-A6BE-4686-A844-36FE4BEC8B6D}"
FONTS := "control fonts"
GETTING_STARTED := "shell:::{CB1B7F8C-C50A-4176-B604-9E24DEE8D4D1}"
HOME_GROUP := "shell:::{67CA7650-96E6-4FDD-BB43-A8E774F73A57}"
ICONS_IN_THE_NOTIFICATION_AREA := "shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}"
LOCATION_AND_OTHER_SENSORS := "shell:::{E9950154-C418-419e-A90A-20C5287AE24B}"
NETWORK_AND_SHARING_CENTER := "shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}"
PARENT_CONTROL := "shell:::{96AE8D84-A250-4520-95A5-A47A7E3C548B}"
PERFORMANCE_INFORMATION_AND_TOOLS := "shell:::{78F3955E-3B90-4184-BD14-5397C15F1EFC}"
PERSONALIZATION := "shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}"
PROGRAMS_AND_FEATURES := "shell:::{7b81be6a-ce2b-4676-a29e-eb907a5126c5}"
RECOVERY := "shell:::{9FE63AFD-59CF-4419-9775-ABCC3849F861}"
REMOTE_DESKTOP_CONNECTION := "shell:::{241D7C96-F8BF-4F85-B01F-E2B043341A4B}"
SCREEN := "shell:::{C555438B-3C23-4769-A71F-B6D3D9B6053A}"
SPEECH_RECOGNITION := "shell:::{58E3C745-D971-4081-9034-86E34B30836A}"
SUPPORT_CENTER := "shell:::{BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6}"
SYNC_CENTER := "shell:::{9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}"
SYSTEM := "shell:::{BB06C0E4-D293-4f75-8A90-CB05B6477EEE}"
TROUBLESHOOTING := "shell:::{C58C4893-3BE0-4B45-ABB5-A63E4B8C8651}"
USER_ACCOUNTS := "shell:::{60632754-c523-4b62-b45c-4172da012619}"
WINDOWS_FIREWALL := "shell:::{4026492F-2F69-46B8-B9BF-5654FC07E423}"
WINDOWS_UPDATE := "shell:::{36eef7db-88ad-4e81-ad49-0e313f0c35f8}"
ALL_CONTROL_PANEL_ITEMS := "Все элементы панели управления"
APPEARANCE_AND_PERSONALIZATION := "Оформление и персонализация"
HARDWARE_AND_SOUND := "Оборудование и звук"
NETWORK_AND_INTERNET := "Сеть и Интернет"
PROGRAMS := "Программы"
SPECIAL_ABILITIES := "Специальные возможности"
SYSTEM_AND_SECURITY := "Система и безопасность"
USER_ACCOUNTS_AND_PARENTAL_CONTROL := "Учетные записи пользователей и семейная безопасность"
lst1 := ["\\" USER_ACCOUNTS_AND_PARENTAL_CONTROL "\Учетные записи пользователей|" USER_ACCOUNTS ""
,"\\" USER_ACCOUNTS_AND_PARENTAL_CONTROL "\Родительский контроль|" PARENT_CONTROL ""
,"\\" USER_ACCOUNTS_AND_PARENTAL_CONTROL "\Диспетчер учетных данных|" CREDENTIAL_MANAGER ""
,"\\" SPECIAL_ABILITIES "\Центр специальных возможностей|" EASE_OF_ACCESS_CENTER ""
,"\\" SPECIAL_ABILITIES "\Распознавание речи|" SPEECH_RECOGNITION ""
,"\\" SYSTEM_AND_SECURITY "\Электропитание|" ELECTRICAL_POWER ""
,"\\" SYSTEM_AND_SECURITY "\Шифрование диска BitLocker|" BITLOCKER_DRIVE_ENCRYPTION ""
,"\\" SYSTEM_AND_SECURITY "\Центр поддержки|" SUPPORT_CENTER ""
,"\\" SYSTEM_AND_SECURITY "\Центр обновления Windows|" WINDOWS_UPDATE ""
,"\\" SYSTEM_AND_SECURITY "\Система|" SYSTEM ""
,"\\" SYSTEM_AND_SECURITY "\Брандмауэр Windows|" WINDOWS_FIREWALL ""
,"\\" SYSTEM_AND_SECURITY "\Архивация и восстановление|" BACKUP_AND_RESTORE ""
; ,"\\" SYSTEM_AND_SECURITY "\Администрирование|" ADMINISTRATION ""
,"\\" NETWORK_AND_INTERNET "\Центр управления сетями и общим доступом|" NETWORK_AND_SHARING_CENTER ""
,"\\" NETWORK_AND_INTERNET "\Домашняя группа|" HOME_GROUP ""
,"\\" PROGRAMS "\Программы по умолчанию|" DEFAULT_PROGRAMS ""
; ,"\\" PROGRAMS "\Программы и компоненты|" PROGRAMS_AND_FEATURES ""
,"\\" APPEARANCE_AND_PERSONALIZATION "\Экран|" SCREEN ""
; ,"\\" APPEARANCE_AND_PERSONALIZATION "\Шрифты|" FONTS ""
,"\\" APPEARANCE_AND_PERSONALIZATION "\Центр специальных возможностей|" EASE_OF_ACCESS_CENTER ""
,"\\" APPEARANCE_AND_PERSONALIZATION "\Персонализация|" PERSONALIZATION ""
,"\\" HARDWARE_AND_SOUND "\Электропитание|" ELECTRICAL_POWER ""
,"\\" HARDWARE_AND_SOUND "\Экран|" SCREEN ""
; ,"\\" HARDWARE_AND_SOUND "\Устройства и принтеры|" DEVICES_AND_PRINTERS ""
,"\\" HARDWARE_AND_SOUND "\Автозапуск|" AUTORUN ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Электропитание|" ELECTRICAL_POWER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Экран|" SCREEN ""
; ,"\\" ALL_CONTROL_PANEL_ITEMS "\Шрифты|" FONTS ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Шифрование диска BitLocker|" BITLOCKER_DRIVE_ENCRYPTION ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Центр управления сетями и общим доступом|" NETWORK_AND_SHARING_CENTER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Центр специальных возможностей|" EASE_OF_ACCESS_CENTER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Центр синхронизации|" SYNC_CENTER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Центр поддержки|" SUPPORT_CENTER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Центр обновления Windows|" WINDOWS_UPDATE ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Учетные записи пользователей|" USER_ACCOUNTS ""
; ,"\\" ALL_CONTROL_PANEL_ITEMS "\Устройства и принтеры|" DEVICES_AND_PRINTERS ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Устранение неполадок|" TROUBLESHOOTING ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Счетчики и средства производительности|" PERFORMANCE_INFORMATION_AND_TOOLS ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Система|" SYSTEM ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Родительский контроль|" PARENT_CONTROL ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Распознавание речи|" SPEECH_RECOGNITION ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\" PROGRAMS " по умолчанию|" DEFAULT_PROGRAMS ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\" PROGRAMS " и компоненты|" PROGRAMS_AND_FEATURES ""
; ,"\\" ALL_CONTROL_PANEL_ITEMS "\Приступая к работе|" GETTING_STARTED ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Подключения к удаленным рабочим столам и приложениям RemoteApp|" REMOTE_DESKTOP_CONNECTION ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Персонализация|" PERSONALIZATION ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Значки области уведомлений|" ICONS_IN_THE_NOTIFICATION_AREA ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Домашняя группа|" HOME_GROUP ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Диспетчер учетных данных|" CREDENTIAL_MANAGER ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Датчик расположения и другие датчики|" LOCATION_AND_OTHER_SENSORS ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Восстановление|" RECOVERY ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Брандмауэр Windows|" WINDOWS_FIREWALL ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Архивация и восстановление|" BACKUP_AND_RESTORE ""
; ,"\\" ALL_CONTROL_PANEL_ITEMS "\Администрирование|" ADMINISTRATION ""
,"\\" ALL_CONTROL_PANEL_ITEMS "\Автозапуск|" AUTORUN ""]
loop % lst1.MaxIndex()
if inStr(lst1[a_Index], full_path "|") = 1 {
command := subStr(lst1[a_Index], inStr(lst1[a_Index], "|") + 1)
run % command
return
}
SendInput, {Enter}
}
Return
MainMenuFocus(hwnd) {
static OBJID_MENU := 0xFFFFFFFD
VarSetCapacity(MBI, size := 4*4 + A_PtrSize*4, 0)
NumPut(size, MBI)
DllCall("GetMenuBarInfo", Ptr, hwnd, Int, OBJID_MENU, Int, 0, Ptr, &MBI)
Return *(&MBI + 4*4 + A_PtrSize*3) & 1
}
Send_WM_COPYDATA(ByRef cmd, aWinID=0x0) {
global TCHWND
DetectHiddenWindows, On
len:=StrLen(cmd) + 1
if( A_IsUnicode ) {
cmdStr:=cmd
VarSetCapacity(cmd, StrPut(cmd, "cp0"))
Loop, % len
NumPut( Asc(SubStr(cmdStr, A_Index, 1)), cmd, A_Index - 1, "Char")
}
VarSetCapacity(CopyDataStruct, A_PtrSize * 3)
NumPut(Asc("G") + 256 * Asc(A_IsUnicode ? "W" : "A"), CopyDataStruct)
NumPut(len , CopyDataStruct, A_PtrSize)
NumPut(&cmd, CopyDataStruct, A_PtrSize * 2)
SendMessage, 0x4A, WinExist(A_ScriptFullPath " ahk_class AutoHotkey"), &CopyDataStruct, , % "ahk_id " TCHWND
}
Receive_WM_COPYDATA(wParam, lParam, msg, hwnd) {
global Item
Item:=StrGet(NumGet(lParam + A_PtrSize * 2))
} |
Немного сократил условие проверки. Работает исправно в обычном режиме, но косячит в режиме дерева ( Ctrl + F8 ) так как не правильно получает пути (из тех методов WM_COPY что описаны у тебя) надо как то допиливать (моя магия не действует на такие вещи).
Flasher wrote: | А спешим ведь. Тут ещё проблема с цепочками навигации Alt+F11/F12 и панелью управления Alt+Shift+F11. |
А это еще что такое? У меня при нажатии этих кеев ничего не происходит.
В общем еще есть над чем работать...
Last edited by dank1 on Wed Oct 07, 2015 20:39; edited 4 times in total |
|