HankHank wrote: | ||||
Так ясно. По началу строчка wsprintf показалась заумной. И я решил, что хватит с меня и первого параметра с путём, куда надо переключить активную панель. А откуда эта инфо ? |
HankHank wrote: | ||||
Да, так работает. Буду ковать дальше. |
HankHank wrote: | ||
Ещё заметил такую деталь. Может, интересно кому.
Вот здесь http://www.firststeps.ru/mfc/winapi/win/r.php?126 прочитал про WM_COPYDATA:
У меня же передача параметров срабатывает, происходит переход куда требуется, но SendMessage возвращает при этом 0. |
Code: |
|
MVV wrote: |
Я ваще не пойму, какое отношение имеет мышиный хук к командной строке - вход в папку с помощью мыши в ТК никогда не затрагивал содержимого командной строки. |
MVV wrote: |
зачем тебе командная строка в пределах твоего плагина - какие там могут быть команды? |
MVV wrote: |
панель состояния - далеко не единственная панель в окне ТК, поэтому просто поиском окна с заданным классом искать ее не советую. |
Quote: |
А пользователю всё едино, если он зашёл в Коммандер – что плагин, что “штатные панели”. |
Quote: |
Каким разумным способом можно поискать командную строку и извлечь её содержимое ? |
Quote: |
Посмотрел попристальнее на командную строку в обычных режимах Коммандера и в плагине. |
Quote: |
Пока у меня в плагине осуществляется вылет в сетевое окружение коммандера (где все плагины) после двойного клика или нажатия Enter. |
MVV wrote: | ||
Между прочим, какую папку ты будешь делать текущей при выполнении команды из папки твоего плагина? У тебя она там попросту неопределена. Да и команда copy - это внутренняя команда командного интерпретатора Windows, она без него вообще не работает, а ему тоже нужна рабочая папка. |
Code: |
|
Code: |
|
MVV wrote: |
Юзай мой способ поиска панели с текущим путем (путь тебе все равно пригодится) - рядом (с тем же предком) будет окно командной строки. |
MVV wrote: | ||
Да, я об этом и говорил. Я сам иногда перехожу между папками мышью, чтобы не стирать набранную командную строку - и я не ожидаю, что она будет выполнена в этот момент. |
MVV wrote: | ||
То есть, ничего не работает? А как же хуки, которые блокируют команду и устанавливают нужный путь? |
Quote: |
Всё работает на ура. Ходьба вверх-вниз через итем [..] происходит лучше не придумаешь. На порядок лучше, чем в AHK. |
Quote: |
А вот вариант, когда дополнительно что-то введено в командную строку TC + в одной из панелей сетевое окружение моего плагина "на верхнем уровне" + в командной строке делаю двойной клик мышью или нажимаю Enter, - вот тогда происходит вылет на уровень выше, т.е в сетевое окружение коммандера (где список плагинов и прочее). А должна по идее выполниться командная строка. |
MVV wrote: |
Под сетевым окружением твоего плагина "на верхнем уровне" ты
понимаешь папку своего плагина? |
MVV wrote: |
Если в командной строке делать даблклик или жать Enter, ТК чисто выполняет командную строку, при этом папка не меняется (если, конечно, команда не cd).
|
MVV wrote: |
И этот клик по идее игнорируется хуками, так как при этом активное окно - не файловая панель. |
MVV wrote: |
И поведение это изменению не поддается, да и нет в том необходимости. |
MVV wrote: |
Или ты хочешь выполнять эту командную строку? |
Code: |
while (1) { |
MVV wrote: |
...при особом желании выполнить командную строку, которую ТК передаст тебе, вызывав функцию FsExecuteFile в момент нажатия юзером клавиши Enter или даблклике мышью по непустой командной строке. Извлекать текст командной строки при этом тебе абсолютно не нужно. |
MVV wrote: |
Замечу, что в этом месте может играть роль то, что плагин не поддерживает Юникод, так как командная строка может содержать юникод-символы не из системной кодовой страницы. Также при выполнении команды не забывай, что текущая рабочая папка не определена. |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours