Функция не поддерживается...
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Функция не поддерживается... Author: aLexxLocation: Новокузнецк PostPosted: Thu Nov 08, 2007 20:21
    —
Пытаюсь из своей программы отослать ТС одну из комманд:

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...

#2:  Author: D1PLocation: Тбилиси PostPosted: Thu Nov 08, 2007 21:41
    —
Подтверждаю.

Code:
SendMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 905, 0);


даёт такую байду.

#3:  Author: VadiMGP PostPosted: Fri Nov 09, 2007 16:41
    —
Да все, работает, вроде. Сейчас забацал .bar файл для TCmenu с командами cm_Copy и cm_RenMov. Все работает.
Так что тут что-то другое.

#4:  Author: B4rr4cudaLocation: Россия, Москва PostPosted: Fri Nov 09, 2007 16:58
    —
Подтверждаю.
Не работают операции с файлами.
Просмотр и редактирование, также как создание каталога - работают.
На
Code:
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)
отвечает "Функция не поддерживается".

#5:  Author: aLexxLocation: Новокузнецк PostPosted: Fri Nov 09, 2007 17:04
    —
2 VadiMGP
Чисто случайно, а не используешь ли ты "TCWSHelp" от Volniy?
Почему-то тама эти комманды поддерживаются... Sad

А как конкретно эти кнопки выглядят?

#6:  Author: B4rr4cudaLocation: Россия, Москва PostPosted: Fri Nov 09, 2007 18:24
    —
Странное дело, тот же SendMessage с той же командой, но выполненый из плагина, работает. На команды посланые внешним приложением, говорит "Функция не поддерживается".

#7:  Author: VadiMGP PostPosted: Fri Nov 09, 2007 19:11
    —
Интересная фигня получается. Заглянул в сорсы TCMenu и нашел свой собственный комментарий.
Code:
      // Return focus back+delay - must!!
      mWnd->SetFocus();
      Sleep (200);
      mWnd->PostMessage(WM_USER + 51, wParam, 0);
И теперь вспомнил, что действительно была такая проблема с командами, которые имеют собственные диалоги с юзером (Copy, Move, FTP...). Возврат фокуса и задержка в 200 мсек решили эту проблему.

#8:  Author: VadiMGP PostPosted: Fri Nov 09, 2007 19:14
    —
B4rr4cudaТак когда из плагина, то фокус-то в ТС! Вот в чем фокус. Wink

#9:  Author: B4rr4cudaLocation: Россия, Москва PostPosted: Fri Nov 09, 2007 20:00
    —
Точно. Проверил. Передача фокуса не помогла, а вот после выведения в форегроунд (и соответственно передачи фокуса) - все работает.

Добавлено: Вот код который пашет. Если вместо SetForegroundWindow, выполнить SetFocus - ноль эмоций.
Code:
Windows.SetForegroundWindow(FindWindow('TTOTAL_CMD',nil));
Sleep(2000);
PostMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 1005, 0);

#10:  Author: VadiMGP PostPosted: Fri Nov 09, 2007 20:25
    —
Ну у меня в TCMenu и SetFocus работает. Возможно это связано с тем, что главное окно TCMenu невидимое. Но в общем, один черт, можно и SetForegroundWindow. Главное - вернуть фокус.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group