Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вызов меню Тотал Коммандера из эксель - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов меню Тотал Коммандера из эксель (Макросы/Sub)
Вызов меню Тотал Коммандера из эксель
odeon16 Дата: Среда, 10.05.2017, 12:54 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, форумчане.
Помогите решить вопрос.

Есть макрос вызова программы TotalCommander.
Как изменить макрос чтобы после запуска этой программы - он бы еще запускал в TotalCommander меню "Конфигурация - Настройка" сразу после запуска ?
К сообщению приложен файл: 5467.xls(35Kb)
 
Ответить
СообщениеДобрый день, форумчане.
Помогите решить вопрос.

Есть макрос вызова программы TotalCommander.
Как изменить макрос чтобы после запуска этой программы - он бы еще запускал в TotalCommander меню "Конфигурация - Настройка" сразу после запуска ?

Автор - odeon16
Дата добавления - 10.05.2017 в 12:54
VSerg Дата: Среда, 10.05.2017, 13:14 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 2 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте, в голову приходят два решения, самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys.
[vba]
Код
Call Shell("E:\Total Commander\TOTALCMD64.EXE ")
Application.SendKeys "^a" 'сочетание вызова меню настроек
[/vba]
Второй способ похож, но должен быть более надежным и заключается в поиске окна тотала, нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem.
 
Ответить
СообщениеЗдравствуйте, в голову приходят два решения, самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения SendKeys.
[vba]
Код
Call Shell("E:\Total Commander\TOTALCMD64.EXE ")
Application.SendKeys "^a" 'сочетание вызова меню настроек
[/vba]
Второй способ похож, но должен быть более надежным и заключается в поиске окна тотала, нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem.

Автор - VSerg
Дата добавления - 10.05.2017 в 13:14
odeon16 Дата: Среда, 10.05.2017, 16:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
VSerg, применил ваш макрос.
Он - не работает.

Вызывается программа Total Commander, затем выделяются все ячейки на листе Эксель.

Я имел ввиду - запуск в TotalCommander меню "Конфигурация - Настройка" сразу после запуска.
(Прилагаю рисунок - где находится меню "Конфигурация - Настройка")

Как должен выглядеть макрос поиска окна TotalCommander , нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?
К сообщению приложен файл: 3673991.jpg(9Kb)
 
Ответить
СообщениеVSerg, применил ваш макрос.
Он - не работает.

Вызывается программа Total Commander, затем выделяются все ячейки на листе Эксель.

Я имел ввиду - запуск в TotalCommander меню "Конфигурация - Настройка" сразу после запуска.
(Прилагаю рисунок - где находится меню "Конфигурация - Настройка")

Как должен выглядеть макрос поиска окна TotalCommander , нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?

Автор - odeon16
Дата добавления - 10.05.2017 в 16:38
Gustav Дата: Среда, 10.05.2017, 18:26 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1395
Репутация: 541 ±
Замечаний: 0% ±

начинал с Excel 4.0...
самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения 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]
И после этих трёх автоматических нажатий клавиш в итоге имеем такую картинку:
К сообщению приложен файл: 2774171.png(39Kb)


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
самое простое (и наверняка самое нестабильное) это назначение горячих клавиш на вызов меню "Настроек" тотала, и из последующий вызов через отправку сообщения 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
Дата добавления - 10.05.2017 в 18:26
odeon16 Дата: Среда, 10.05.2017, 19:32 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Gustav, я никогда не пользовался программой Far - и не знаю что это такое.
В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".

Подскажите - как (хотя бы примерно) должен выглядеть макрос поиска окна TotalCommander ,выбора нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?
 
Ответить
СообщениеGustav, я никогда не пользовался программой Far - и не знаю что это такое.
В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".

Подскажите - как (хотя бы примерно) должен выглядеть макрос поиска окна TotalCommander ,выбора нужного пункта меню с его нажатием через API функции FindWindow, GetDlgItem ?

Автор - odeon16
Дата добавления - 10.05.2017 в 19:32
Udik Дата: Среда, 10.05.2017, 19:49 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1503
Репутация: 184 ±
Замечаний: 0% ±

Excel 2016 х 64
В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".

Как так, у всех есть а у Вас нет!?
К сообщению приложен файл: 6798811.jpg(71Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Среда, 10.05.2017, 19:50
 
Ответить
Сообщение
В ТоталКоммандере - у меня нет горячих клавиш на вызов "Настроек".

Как так, у всех есть а у Вас нет!?

Автор - Udik
Дата добавления - 10.05.2017 в 19:49
VSerg Дата: Среда, 10.05.2017, 19:56 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 2 ±
Замечаний: 0% ±

Excel 2013
odeon16, если у нас с вами совпадает положение элементов меню, попробуйте в макросе от Gustav заменить заголовок начала имени окна на ваш, из тотал коммандера, а строку SendKeys модифицировать следующим образом:
[vba]
Код
SendKeys "% {RIGHT 5}{ENTER 2}"
[/vba]


Сообщение отредактировал VSerg - Среда, 10.05.2017, 19:57
 
Ответить
Сообщениеodeon16, если у нас с вами совпадает положение элементов меню, попробуйте в макросе от Gustav заменить заголовок начала имени окна на ваш, из тотал коммандера, а строку SendKeys модифицировать следующим образом:
[vba]
Код
SendKeys "% {RIGHT 5}{ENTER 2}"
[/vba]

Автор - VSerg
Дата добавления - 10.05.2017 в 19:56
odeon16 Дата: Среда, 10.05.2017, 20:03 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Udik, ясно.
Спасибо за помощь.
 
Ответить
СообщениеUdik, ясно.
Спасибо за помощь.

Автор - odeon16
Дата добавления - 10.05.2017 в 20:03
Gustav Дата: Среда, 10.05.2017, 20:22 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1395
Репутация: 541 ±
Замечаний: 0% ±

начинал с Excel 4.0...
[offtop]
не пользовался программой Far - и не знаю что это такое

Всё это наследники одного дедушки - Norton Commander
Цитата оттуда ()

Культурное значение

Введённая программой парадигма работы с файлами (2 одинаковые панели, между которыми происходят операции; основные команды выполняются по функциональным клавишам) до сих пор применяется во многих файловых менеджерах: FAR, Total Commander, Double Commander и др., которые образовали целый класс программ — двухпанельные файловые менеджеры. Причём клавиши F3—F8, а также некоторые комбинации «горячих клавиш» имеют в них, как правило, такое же предназначение, что и в Norton Commander.


Мой tip box - яд 41001663842605
 
Ответить
Сообщение[offtop]
не пользовался программой Far - и не знаю что это такое

Всё это наследники одного дедушки - Norton Commander
Цитата оттуда ()

Культурное значение

Введённая программой парадигма работы с файлами (2 одинаковые панели, между которыми происходят операции; основные команды выполняются по функциональным клавишам) до сих пор применяется во многих файловых менеджерах: FAR, Total Commander, Double Commander и др., которые образовали целый класс программ — двухпанельные файловые менеджеры. Причём клавиши F3—F8, а также некоторые комбинации «горячих клавиш» имеют в них, как правило, такое же предназначение, что и в Norton Commander.

Автор - Gustav
Дата добавления - 10.05.2017 в 20:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов меню Тотал Коммандера из эксель (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!