View previous topic :: View next topic |
Author |
Message |
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Thu Nov 08, 2007 20:21 Post subject: Функция не поддерживается... |
|
|
Пытаюсь из своей программы отослать ТС одну из комманд:
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... |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Fri Nov 09, 2007 16:41 Post subject: |
|
|
Да все, работает, вроде. Сейчас забацал .bar файл для TCmenu с командами cm_Copy и cm_RenMov. Все работает.
Так что тут что-то другое. |
|
Back to top |
|
|
B4rr4cuda
Joined: 03 Jun 2007 Posts: 376 Location: Россия, Москва
|
(Separately) Posted: Fri Nov 09, 2007 16:58 Post subject: |
|
|
Подтверждаю.
Не работают операции с файлами.
Просмотр и редактирование, также как создание каталога - работают.
На
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)
| отвечает "Функция не поддерживается". |
|
Back to top |
|
|
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Fri Nov 09, 2007 17:04 Post subject: |
|
|
2 VadiMGP
Чисто случайно, а не используешь ли ты "TCWSHelp" от Volniy?
Почему-то тама эти комманды поддерживаются...
А как конкретно эти кнопки выглядят? |
|
Back to top |
|
|
B4rr4cuda
Joined: 03 Jun 2007 Posts: 376 Location: Россия, Москва
|
(Separately) Posted: Fri Nov 09, 2007 18:24 Post subject: |
|
|
Странное дело, тот же SendMessage с той же командой, но выполненый из плагина, работает. На команды посланые внешним приложением, говорит "Функция не поддерживается". |
|
Back to top |
|
|
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Fri Nov 09, 2007 19:11 Post subject: |
|
|
Интересная фигня получается. Заглянул в сорсы TCMenu и нашел свой собственный комментарий. Code: | // Return focus back+delay - must!!
mWnd->SetFocus();
Sleep (200);
mWnd->PostMessage(WM_USER + 51, wParam, 0);
| И теперь вспомнил, что действительно была такая проблема с командами, которые имеют собственные диалоги с юзером (Copy, Move, FTP...). Возврат фокуса и задержка в 200 мсек решили эту проблему. |
|
Back to top |
|
|
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Fri Nov 09, 2007 19:14 Post subject: |
|
|
B4rr4cudaТак когда из плагина, то фокус-то в ТС! Вот в чем фокус. |
|
Back to top |
|
|
B4rr4cuda
Joined: 03 Jun 2007 Posts: 376 Location: Россия, Москва
|
(Separately) Posted: Fri Nov 09, 2007 20:00 Post subject: |
|
|
Точно. Проверил. Передача фокуса не помогла, а вот после выведения в форегроунд (и соответственно передачи фокуса) - все работает.
Добавлено: Вот код который пашет. Если вместо SetForegroundWindow, выполнить SetFocus - ноль эмоций.
Code: | Windows.SetForegroundWindow(FindWindow('TTOTAL_CMD',nil));
Sleep(2000);
PostMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 1005, 0);
|
|
|
Back to top |
|
|
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Fri Nov 09, 2007 20:25 Post subject: |
|
|
Ну у меня в TCMenu и SetFocus работает. Возможно это связано с тем, что главное окно TCMenu невидимое. Но в общем, один черт, можно и SetForegroundWindow. Главное - вернуть фокус. |
|
Back to top |
|
|
|