Страница 1 из 1
Функция не поддерживается...
Добавлено: Чт ноя 08, 2007 19:21
aLexx
Пытаюсь из своей программы отослать ТС одну из комманд:
cm_Copy=905;Copy files
cm_RenMov=906;Rename/Move files
cm_MoveOnly=1005;Move (F6)
Получаю сабж.
А вот переместить через буфер обмена:
cm_CutToClipboard=2007;(32-bit) Cut selected files to clipboard
переход на другую панель
cm_PasteFromClipboard=2009;(32-bit) Paste from clipboard to current dir
и всё ОК. Но это ведь через (_|_) !!!
Как правильно сделать с помощью нужных комманд?
PS. Кстати, тоже самое сообщение получаю, если просто отослать в ТС код клавиш F5 или F6...
Добавлено: Чт ноя 08, 2007 20:41
D1P
Подтверждаю.
Код: Выделить всё
SendMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 905, 0);
даёт такую байду.
Добавлено: Пт ноя 09, 2007 15:41
VadiMGP
Да все, работает, вроде. Сейчас забацал .bar файл для TCmenu с командами cm_Copy и cm_RenMov. Все работает.
Так что тут что-то другое.
Добавлено: Пт ноя 09, 2007 15:58
B4rr4cuda
Подтверждаю.
Не работают операции с файлами.
Просмотр и редактирование, также как создание каталога - работают.
На
Код: Выделить всё
cm_Delete=908;//Delete files
cm_Copy=905;//Copy files
cm_CopySamepanel=3100;//Copy within panel
cm_CopyOtherpanel=3101;//Copy to other
cm_RenMov=906;//Rename/Move files
cm_Delete=908;//Delete files
cm_MoveOnly=1005;//Move (F6)
отвечает "Функция не поддерживается".
Добавлено: Пт ноя 09, 2007 16:04
aLexx
2 VadiMGP
Чисто случайно, а не используешь ли ты "TCWSHelp" от Volniy?
Почему-то тама эти комманды поддерживаются...
А как конкретно эти кнопки выглядят?
Добавлено: Пт ноя 09, 2007 17:24
B4rr4cuda
Странное дело, тот же SendMessage с той же командой, но выполненый из плагина, работает. На команды посланые внешним приложением, говорит "Функция не поддерживается".
Добавлено: Пт ноя 09, 2007 18:11
VadiMGP
Интересная фигня получается. Заглянул в сорсы TCMenu и нашел свой собственный комментарий.
Код: Выделить всё
// Return focus back+delay - must!!
mWnd->SetFocus();
Sleep (200);
mWnd->PostMessage(WM_USER + 51, wParam, 0);
И теперь вспомнил, что действительно была такая проблема с командами, которые имеют собственные диалоги с юзером (Copy, Move, FTP...). Возврат фокуса и задержка в 200 мсек решили эту проблему.
Добавлено: Пт ноя 09, 2007 18:14
VadiMGP
B4rr4cudaТак когда из плагина, то фокус-то в ТС! Вот в чем фокус.

Добавлено: Пт ноя 09, 2007 19:00
B4rr4cuda
Точно. Проверил. Передача фокуса не помогла, а вот после выведения в форегроунд (и соответственно передачи фокуса) - все работает.
Добавлено: Вот код который пашет. Если вместо SetForegroundWindow, выполнить SetFocus - ноль эмоций.
Код: Выделить всё
Windows.SetForegroundWindow(FindWindow('TTOTAL_CMD',nil));
Sleep(2000);
PostMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 1005, 0);
Добавлено: Пт ноя 09, 2007 19:25
VadiMGP
Ну у меня в TCMenu и SetFocus работает. Возможно это связано с тем, что главное окно TCMenu невидимое. Но в общем, один черт, можно и SetForegroundWindow. Главное - вернуть фокус.