Функция не поддерживается...
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
- aLexx
- Сообщения: 442
- Зарегистрирован: Пн мар 14, 2005 08:33
- Откуда: Новокузнецк
- Контактная информация:
Функция не поддерживается...
Пытаюсь из своей программы отослать ТС одну из комманд:
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...
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...
Подтверждаю.
даёт такую байду.
Код: Выделить всё
SendMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 905, 0);Подтверждаю.
Не работают операции с файлами.
Просмотр и редактирование, также как создание каталога - работают.
На отвечает "Функция не поддерживается".
Не работают операции с файлами.
Просмотр и редактирование, также как создание каталога - работают.
На
Код: Выделить всё
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)
Интересная фигня получается. Заглянул в сорсы TCMenu и нашел свой собственный комментарий. И теперь вспомнил, что действительно была такая проблема с командами, которые имеют собственные диалоги с юзером (Copy, Move, FTP...). Возврат фокуса и задержка в 200 мсек решили эту проблему.
Код: Выделить всё
// Return focus back+delay - must!!
mWnd->SetFocus();
Sleep (200);
mWnd->PostMessage(WM_USER + 51, wParam, 0);
Точно. Проверил. Передача фокуса не помогла, а вот после выведения в форегроунд (и соответственно передачи фокуса) - все работает.
Добавлено: Вот код который пашет. Если вместо SetForegroundWindow, выполнить SetFocus - ноль эмоций.
Добавлено: Вот код который пашет. Если вместо SetForegroundWindow, выполнить SetFocus - ноль эмоций.
Код: Выделить всё
Windows.SetForegroundWindow(FindWindow('TTOTAL_CMD',nil));
Sleep(2000);
PostMessage(FindWindow ('TTOTAL_CMD',nil), WM_USER+51, 1005, 0);