- Сообщения
- 3,557
- Репутация
- 628
AutoIt: 3.3.8.1
Категория: Автоматизация
Описание: Программа создает папку в активном окне при нажатии горячих клавиш. Функция определения пути к открытой папке взята из сообщения http://autoit-script.ru/index.php/topic,5789.msg42085.html#msg42085
Код/Пример:
Источник: autoit-script.ru
Автор(ы): joiner
Сделано для примера. На Windows XP не проверял.
Категория: Автоматизация
Описание: Программа создает папку в активном окне при нажатии горячих клавиш. Функция определения пути к открытой папке взята из сообщения http://autoit-script.ru/index.php/topic,5789.msg42085.html#msg42085
Код/Пример:
Код:
#include <winapi.au3>
HotKeySet('^{F12}', '_newfolder')
HotKeySet('^{F1}', '_exit')
While 1
Sleep(100)
WEnd
Func _newfolder()
$win = _WinAPI_GetForegroundWindow()
$class = _WinAPI_GetClassName($win)
If $class = 'WorkerW' Or $class = 'Progman' Then
$name_folder = InputBox('Новая папка', 'Введите имя папки', '', '', 200, 125)
If $name_folder = '' Then Return
If Not FileExists(@DesktopDir & '\' & $name_folder) Then
DirCreate(@DesktopDir & '\' & $name_folder)
Else
MsgBox(0, '', 'Папка с таким именем существует')
EndIf
ElseIf $class = 'CabinetWClass' Then
$sPath = _GetWindowsExplorerPath($win)
$name_folder = InputBox('Новая папка', 'Введите имя папки', '', '', 200, 125)
If $name_folder = '' Then Return
If Not FileExists($sPath & '\' & $name_folder) Then
DirCreate($sPath & '\' & $name_folder)
Else
MsgBox(0, '', 'Папка с таким именем существует')
EndIf
Else
Return
EndIf
EndFunc ;==>_newfolder
Func _exit()
Exit
EndFunc ;==>_exit
Func _GetWindowsExplorerPath($hWnd)
If Not IsHWnd($hWnd) Then Return SetError(1)
Local $aWinList = WinList("[REGEXPCLASS:(Explore|Cabinet)WClass]")
While 1
For $i = 1 To UBound($aWinList) - 1
If $hWnd = $aWinList[$i][1] Then ExitLoop 2
Next
Return SetError(2)
WEnd
Local $oShellApp = ObjCreate("Shell.Application")
If Not IsObj($oShellApp) Then Return SetError(3)
Local $oShellApp_Windows = $oShellApp.Windows()
If Not IsObj($oShellApp_Windows) Then Return SetError(4)
For $oShellApp_Inst In $oShellApp_Windows
If $oShellApp_Inst.hwnd = $hWnd Then ExitLoop
Next
Local $iShellApp_Inst_SelectedItems_Count = $oShellApp_Inst.Document.SelectedItems.Count
Local $sShellApp_Inst_LocationURL = $oShellApp_Inst.LocationURL
Local $aRet = DllCall('shlwapi.dll', 'long', 'PathCreateFromUrlW', 'wstr', $sShellApp_Inst_LocationURL, 'wstr', '', 'dword*', 65534, 'dword', 0)
If Not @error And $aRet[0] = 0 Then $sShellApp_Inst_LocationURL = $aRet[2]
$oShellApp = 0
$oShellApp_Windows = 0
$oShellApp_Inst = 0
Return $sShellApp_Inst_LocationURL
EndFunc ;==>_GetWindowsExplorerPath
Источник: autoit-script.ru
Автор(ы): joiner
Сделано для примера. На Windows XP не проверял.