Есть макрос вызова программы TotalCommander. Как изменить макрос чтобы после запуска этой программы - он бы еще запускал в TotalCommander меню "Конфигурация - Настройка" сразу после запуска ?
Добрый день, форумчане. Помогите решить вопрос.
Есть макрос вызова программы TotalCommander. Как изменить макрос чтобы после запуска этой программы - он бы еще запускал в TotalCommander меню "Конфигурация - Настройка" сразу после запуска ?odeon16
Здравствуйте, в голову приходят два решения, самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys. [vba]
[/vba] Второй способ похож, но должен быть более надежным и заключается в поиске окна тотала, нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem.
Здравствуйте, в голову приходят два решения, самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys. [vba]
[/vba] Второй способ похож, но должен быть более надежным и заключается в поиске окна тотала, нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem.VSerg
Вызывается программа Total Commander, затем выделяются все ячейки на листе Эксель.
Я имел ввиду - запуск в TotalCommander меню "Конфигурация - Настройка" сразу после запуска. (Прилагаю рисунок - где находится меню "Конфигурация - Настройка")
Как должен выглядеть макрос поиска окна TotalCommander , нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?
VSerg, применил ваш макрос. Он - не работает.
Вызывается программа Total Commander, затем выделяются все ячейки на листе Эксель.
Я имел ввиду - запуск в TotalCommander меню "Конфигурация - Настройка" сразу после запуска. (Прилагаю рисунок - где находится меню "Конфигурация - Настройка")
Как должен выглядеть макрос поиска окна TotalCommander , нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?odeon16
самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys.
При таком подходе (мягко говоря, нестабильном, но всё же) надо для Shell сделать нормальный фокус (по умолчанию он - Minimized) и перед SendKeys надо активировать окно при помощи AppActivate по нескольким начальным символам названия окна, главное, чтобы однозначно определялось среди других окон.
Тотал Командера у меня нет, поэтому я на Far'е потренировался меню вызывать - худо-бедно, но получается! Как видно из кода, нажимаются 3 клавиши: [vba]
Код
Sub total() 'Shell "E:\Total Commander\TOTALCMD64.EXE" Shell "C:\Program Files\Far Manager\Far.exe", vbNormalFocus
On Error Resume Next Do Err.Clear AppActivate "{C:\" 'начало имени окна Far Loop Until Err.Number = 0 On Error GoTo 0
SendKeys "{F9}{LEFT}{ENTER}" End Sub
[/vba] И после этих трёх автоматических нажатий клавиш в итоге имеем такую картинку:
самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys.
При таком подходе (мягко говоря, нестабильном, но всё же) надо для Shell сделать нормальный фокус (по умолчанию он - Minimized) и перед SendKeys надо активировать окно при помощи AppActivate по нескольким начальным символам названия окна, главное, чтобы однозначно определялось среди других окон.
Тотал Командера у меня нет, поэтому я на Far'е потренировался меню вызывать - худо-бедно, но получается! Как видно из кода, нажимаются 3 клавиши: [vba]
Код
Sub total() 'Shell "E:\Total Commander\TOTALCMD64.EXE" Shell "C:\Program Files\Far Manager\Far.exe", vbNormalFocus
On Error Resume Next Do Err.Clear AppActivate "{C:\" 'начало имени окна Far Loop Until Err.Number = 0 On Error GoTo 0
SendKeys "{F9}{LEFT}{ENTER}" End Sub
[/vba] И после этих трёх автоматических нажатий клавиш в итоге имеем такую картинку: Gustav
Gustav, я никогда не пользовался программой Far - и не знаю что это такое. В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".
Подскажите - как (хотя бы примерно) должен выглядеть макрос поиска окна TotalCommander ,выбора нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?
Gustav, я никогда не пользовался программой Far - и не знаю что это такое. В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".
Подскажите - как (хотя бы примерно) должен выглядеть макрос поиска окна TotalCommander ,выбора нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?odeon16
odeon16, если у нас с вами совпадает положение элементов меню, попробуйте в макросе от Gustav заменить заголовок начала имени окна на ваш, из тотал коммандера, а строку SendKeys модифицировать следующим образом: [vba]
Код
SendKeys "% {RIGHT 5}{ENTER 2}"
[/vba]
odeon16, если у нас с вами совпадает положение элементов меню, попробуйте в макросе от Gustav заменить заголовок начала имени окна на ваш, из тотал коммандера, а строку SendKeys модифицировать следующим образом: [vba]
Введённая программой парадигма работы с файлами (2 одинаковые панели, между которыми происходят операции; основные команды выполняются по функциональным клавишам) до сих пор применяется во многих файловых менеджерах: FAR, Total Commander, Double Commander и др., которые образовали целый класс программ — двухпанельные файловые менеджеры. Причём клавиши F3—F8, а также некоторые комбинации «горячих клавиш» имеют в них, как правило, такое же предназначение, что и в Norton Commander.
Введённая программой парадигма работы с файлами (2 одинаковые панели, между которыми происходят операции; основные команды выполняются по функциональным клавишам) до сих пор применяется во многих файловых менеджерах: FAR, Total Commander, Double Commander и др., которые образовали целый класс программ — двухпанельные файловые менеджеры. Причём клавиши F3—F8, а также некоторые комбинации «горячих клавиш» имеют в них, как правило, такое же предназначение, что и в Norton Commander.