Страница 2 из 3
Добавлено: Ср окт 11, 2006 16:14
Моторокер
Хотел подсоединиться заново по FTP при ошибке подключения, отправляю сообщение.
const
cm_FtpConnect=550; // Connect to FTP
SendMessage(hParent, WM_USER + 51, cm_FtpConnect, 0)
Опа! Программа останавливается до нажатия кнопки Соединить или Отмена. А я ещё и Enter хотел нажать вдогонку.. Не получается.
Добавлено: Ср окт 11, 2006 19:50
Belkin
Моторокер писал(а):Программа останавливается до нажатия кнопки Соединить или Отмена. А я ещё и Enter хотел нажать вдогонку..
Попробуй
PostMessage вместо
SendMessage. Должно помочь

Добавлено: Пн окт 30, 2006 08:19
Моторокер
Работает. Теперь в Total Commander вместо ненужного сообщения «Сервер не найден» выводится FTP диалог.
Добавлено: Вс ноя 12, 2006 18:49
CaptainFlint
На случай, если кто-то не заметил:
15.09.06 Added: Support for accessibility tools (e.g. for blind users) to main lists+separate tree+sync+CD-Tree, allows to retrieve current line via LB_GETTEXT
Т.о., семёрка наконец-то предоставляет простой и эффективный способ получения списка файлов из своей панели! Налетай, народ.

Добавлено: Пн ноя 13, 2006 08:37
Belkin
Да, обнаружил в твоем переводе History. Зверски обрадовался.

Спасибо.
Добавлено: Пн ноя 13, 2006 19:50
Yams
Т.о., семёрка наконец-то предоставляет простой и эффективный способ получения списка файлов из своей панели! Налетай, народ.
Ооо, спасибо огромное за информацию!!! Буду смотреть, изучать! Если это то, что думаю, буду просить всех пользователей тулсы моей переходить на седьмую версию!!!
Добавлено: Пн дек 20, 2010 22:31
iglezz
Как через SendMessage можно передать команде cm_List имя файла?
Такой вот скрипт на AutoIt не работает — открывает файл под курсором
Код: Выделить всё
$hwnd = WinGetHandle("Total Commander")
If NOT @error Then
DllCall("user32.dll", "int", "SendMessage", "hwnd", $hwnd , "int" , 1075, "int", 903 , "str", "c:\temp\test.txt" )
EndIf
Добавлено: Пн дек 20, 2010 22:42
Вахмурка
Как через SendMessage можно передать команде cm_List имя файла?
Насчет SendMessage не знаю, но указанная задача решается так:
Код: Выделить всё
%COMMANDER_PATH%\Totalcmd.exe /o /S=L имя_файла
Добавлено: Пн дек 20, 2010 22:46
Flasher
Добавлено: Пн дек 20, 2010 23:01
iglezz
Эти варианты я и так знаю. Нужно именно через SendMessage/PostMessage. Гугление, увы, ничего не дало

Сгодится пример на любом языке, разберусь как-нибудь.
Добавлено: Пн дек 20, 2010 23:31
Вахмурка
Попробовал. Не у тебя одного ничего не получилось

Кстати, попробуй следующее:
Код: Выделить всё
TOTALCMD#BAR#DATA
cm_List
%COMMANDER_PATH%\TOTALCMD.EXE
cm_List
903
и посмотри на поля Parametrs и Start path получившейся кнопки. Наверное, это ж-ж неспроста.
Похоже, в такой постановке твоя задача тупо не решается.
Добавлено: Пн дек 20, 2010 23:34
Flasher
iglezz
А не проще написать для каких целей такая свистопляска? Может, другое решение найдётся.
Добавлено: Пн дек 20, 2010 23:35
iglezz
Вахмурка
Мне из собственного скрипта надо вызвать листер, что накладывает ограничения на используемые методы. А вариант с запуском totalcmd.exe /S=L просто медленный, но пока приходится его использовать.
Flasher
Прикручиванием просмотра разных файлов занимаюсь. Для тех случаев, когда плагины либо не устраивают чем-то, либо просто отсутствуют.
Методика такова: просматриваемый файл конвертером преобразуем во что-нибудь смотрибельное листером, после чего листером его и открываем.
Добавлено: Пн дек 20, 2010 23:52
Flasher
iglezz
Правильно ли я понял, что нужно на одну кнопку/команду повесить автоматический выбор при открытии любого файла под курсором либо листерного плагина, либо программы? Только не совсем ясно, при чём тут конвертер? Он тоже в этом скрипте фигурирует?
Или это надо на Alt+F3 (кн. "По типам файлов...") повесить?
Добавлено: Вт дек 21, 2010 00:21
iglezz
Flasher писал(а):iglezz
Правильно ли я понял, что нужно на одну кнопку/команду повесить автоматический выбор листерного плагина при открытии любого файла под курсором? А то я не совсем понимаю, что значит "преобразуем конвертером".
Не совсем так.
Есть скрипт (пока это просто батник, готовящийся превратится в autoit-скрипт). Скрипту в качестве параметра передаётся имя файла под курсором. Скрипт проверяет расширение файла и, если это требуется, производит преобразование в один из удобоваримых для листера форматов. После чего, собственно, вызывается листер.
Для наглядности сам скрипт (подчищенный от отладочных echo и т.п.):
Код: Выделить всё
@echo off
setlocal enabledelayedexpansion
set paramstr=%1
set fext=%~x1
if not %fext%A==A set fext=%fext:.=%
set viewfile=%1
set tempfile=0
if "%fext%"=="svg" (
set tempfile=1
set viewfile=%TEMP%\tmp%DATE:.=%%RANDOM%.png
rsvg-convert.exe -o "!viewfile!" -f png -a -w 768 -h 384 "%~1"
goto viewInLister
)
:viewInLister
"%commander_path%\totalcmd.exe" %commander_cmdline% /O /S=L "%viewfile:"=%" & (
echo.
)
if %tempfile%==1 (
if exist "%viewfile:"=%" (
del /f /q "%viewfile:"=%"
)
)