Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Total Commander (Часть 8)

Модерирует : gyra, Maz

articlebot (20-03-2016 21:01): Обсуждение продолжается в части 9  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
#NoTrayIcon
 
Global Const $WM_COPYDATA = 0x004A
 
$hTC = WinGetHandle('[CLASS:TTOTAL_CMD]')
AutoItWinSetTitle(@ScriptFullPath)
$hWndPar = WinGetHandle(@ScriptFullPath)
 
#Region ;Обрабатываем командную строку, если пустая - появится окно выбора каталога
If $CmdLine[0] = 0 Then
    While 1
        $sPath = FileSelectFolder('Укажите каталог для распаковки', '', 7)
        If @error And $sPath = '' Then Exit
        If @error Or Not StringInStr(FileGetAttrib($sPath), "D") Then
            MsgBox(4096, 'Выбор каталога для копирования', 'Вы указали "' & $sPath & '", а не каталог')
        Else
            ExitLoop
        EndIf
    WEnd
ElseIf $CmdLine[0] = 1 Then
    $sPath = StringTrimRight($CmdLine[1], 1)
Else
    Exit
EndIf
#EndRegion
 
_TC_cd_command('', $sPath, 'ST') ;открываем каталог в неактивной панели в новой вкладке
ControlSend('', '', $hTC, '{F5}') ;посылаем F5
$hWnd = WinWait('[CLASS:TInpComboDlg]') ;ждем появления окна копирования и
ControlSend('', '', $hWnd, '{ENTER}') ;отправляем ему Enter
 
; =============================================================================
; CD для перехода в другой каталог на одной или обеих панелях.
; Строка lpData должна быть в следующем формате (пример для языка C/C++):
; "c:\\test1\x0dc:\\test2\x00ST\x00"
; Первый путь - левая панель, второй - правая; любой из них может быть опущен (но симмвол-разделитель \x0d должен оставаться).
; Флаги после первого нулевого символа опциональны. "S": трактовать пути как исходный/целевой; "T": открывать пути в новых вкладках.
; Аналог:
; $COMMANDER_EXE = EnvGet('COMMANDER_EXE')
; Run('"' & $COMMANDER_EXE & '" /O /S /T /L="' & $left & '" /R="' & $right & '"')
 
Func _TC_cd_command($l, $r, $sFlag = '')
    Local $sCommand = $l & @CR & $r & ChrW(0) & $sFlag
    Local $pCDcom = DllStructCreate("char[" & StringLen($sCommand)+ 1 & "]")
    Local $pCopyData = DllStructCreate("ulong_ptr;dword;ptr")
    DllStructSetData($pCDcom, 1, $sCommand)
    DllStructSetData($pCopyData, 1, Asc('C') + 256 * Asc('D'))
    DllStructSetData($pCopyData, 2, DllStructGetSize($pCDcom))
    DllStructSetData($pCopyData, 3, DllStructGetPtr($pCDcom))
    DllCall("user32.dll", "int", "SendMessageW", "hwnd", $hTC, "int", $WM_COPYDATA, "wparam", $hWndPar, "lparam", DllStructGetPtr($pCopyData))
EndFunc


Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 20:55 24-06-2015 | Исправлено: Skif_off, 20:56 24-06-2015
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Total Commander (Часть 8)
articlebot (20-03-2016 21:01): Обсуждение продолжается в части 9


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru