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

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

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

Maz (29-03-2022 21:29): Плагины для Total Commander (часть 4)|  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Skif_off

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

Код:
;OpenFromTC.au3
;
;Открытие файла, используя внутренние ассоциации ТС: в качестве параметра - полное имя файла, окно ТС будет активировано, в новой вкладке будет открыт каталог файла и на файле установлен курсор, далее ТС будет послана команда cm_Return (программный аналог Enter).
;Стоит иметь в виду: ТС попытается открыть файл даже при отсутствии внутренних ассоциаций, используя системные, а если по умолчанию в ТС файл по Enter открывается как папка (с помощью wcx-плагина, например), то так и будет.
#NoTrayIcon
 
Opt('WinWaitDelay', 100)
 
Global Const $WM_COPYDATA = 0x004A
Global Const $WM_USER = 0x400
 
Global $hTC, $hWndPar
 
If $CmdLine[0] <> 1 Then
    MsgBox(48 + 4096, @ScriptName, 'Проверьте параметры запуска, выходим.')
    Exit
EndIf
$hTC = WinGetHandle('[CLASS:TTOTAL_CMD]')
If @error Then
    MsgBox(48 + 4096, @ScriptName, 'Окно ТС не найдено, выходим.')
    Exit
EndIf
AutoItWinSetTitle(@ScriptFullPath)
$hWndPar = WinGetHandle(@ScriptFullPath)
WinActivate($hTC)
_TC_cd_command(__CheckANSItoUTF8($CmdLine[1] & '\\'), '', 'ST')
Sleep(250)
_TC_cm_command(1001)
 
;ANSI >> UTF-8 (if needed)
Func __CheckANSItoUTF8($sStr)
    Local $sTmp, $BOM = Chr(239) & Chr(187) & Chr(191) ; \xEF \xBB \xBF
    $sTmp = BinaryToString(StringToBinary($sStr, 1), 1)
    If Not ($sStr == $sTmp) Then
        $sStr = BinaryToString(StringToBinary($sStr, 4))
        Return $BOM & $sStr
    Else
        Return $sStr
    EndIf
EndFunc   ;==>__CheckANSItoUTF8
 
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   ;==>_TC_cd_command
 
Func _TC_cm_command($Command)
    DllCall("user32.dll", "int", "PostMessage", "hwnd", $hTC, "int", $WM_USER + 51, "wparam", $Command, "lparam", 0)
EndFunc   ;==>_TC_cm_command

Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 15:03 18-08-2018 | Исправлено: Skif_off, 15:04 18-08-2018
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Плагины для Total Commander (часть 3)
Maz (29-03-2022 21:29): Плагины для Total Commander (часть 4)|


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru