1

Тема: AHK: скрипт для управления несколькими приложениями

Здравствуйте форумчане, прошу помочь создать скрипт для управления несколькими приложениями

Попытаюсь объяснить для чего нужно, и что именно нужно.

Собрал карпк (комп в машину) после выбора фронтендов на комп, решил что опитмальный вариант - отсутствие фронтэнда.

Установил виндовс 8, кинул все нужные приложения в MetroUI и теперь вот надо сделать скрипт:

для программ

1 фубар2000
2 программа для радио
3 навигация
4 диагностика авто.

в основном не дает покоя вот какая ситуация.

Я запускаю фубар2000 и слушаю музыку, вдруг мне надоело слушать музыку и захотелось послушать радио, я нажимаю ктрл+альт+n и автохоткей должен закрыть фубар2000 и запустить скажем приложение 2.exe (в нашем случае радио)

либо же у меня запущен навигатор в фулл скрине (3.exe) и я хочу что бы опять на экране появилось радио (2.ехе), но оно не закрыто и свернуто, и надо что бы при нажатии все тех же  ктрл+альт+n скрипт чекнул запущенно ли приложение, и если оно запущенно то просто развернуть его и сделать активным.

проверять активность приложения и разворачивать его я смог сделать из скрипта который создается при установки автохоткея. а дальше не могу. Прошу помочь всех кто сможет

2 (изменено: Indomito, 2012-04-18 13:13:08)

Re: AHK: скрипт для управления несколькими приложениями

Ответ на ваш вопрос в этом топике AHK: Как правильно написать скрипт-менеджер других скриптов?

Achtung!  Для работы того что там написано у вас должна быть версия AHK_L

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

3

Re: AHK: скрипт для управления несколькими приложениями

друг. если нечего сказать лучше промолчать.

вот кое что сделал

Foobar_Path = E:\Foobar2000\foobar2000.exe


^!n::

    Process, Exist, Foobar2000.exe ; 
    If ErrorLevel 
        FooBarControl( "exit" )



IfWinExist SatAmp -
    WinActivate
else
    Run E:\SatAmp\SatAmp.exe
return


;-------------------------------------------------------------------------------
FooBarControl( fooCommand )
{
  
    BatchLines_Before := A_BatchLines 
    SetBatchLines, -1 

    Process, Exist, foobar2000.exe 
    Foo_PID := ErrorLevel 
    If NOT Foo_PID 
        Return 
   
    h_process := DllCall( "OpenProcess"            
                        , "UInt", 0x10|0x400    
                        , "Int" , False            
                        , "UInt", Foo_PID )       
    If ( ErrorLevel OR h_process = 0 ) 
        Goto, fbc_Return 

    VarSetCapacity( FooExePath, 255 )
    DllCall( "psapi.dll\GetModuleFileNameExA"   
            , "UInt", h_process                    
            , "UInt", 0                           
            , "Str" , FooExePath               
            , "UInt", 255 )                      
    fbc_Return:
    DllCall( "CloseHandle", "UInt", h_process )
    
    RunWait, e:\foobar2000\foobar2000.exe /exit 
    SetBatchLines, %BatchLines_Before%
    Return
} 
;-------------------------------------------------------------------------------

теперь нужно сделать кнопку обратную этой - при запуске фубара закрыть сатамп.ехе кто подскажет как закрывать окно через ахк?

4

Re: AHK: скрипт для управления несколькими приложениями

WinClose , WinTitle

5 (изменено: Indomito, 2012-04-18 15:47:37)

Re: AHK: скрипт для управления несколькими приложениями

Или так

;--- Закрытие окна приложения, если оно существует
fnWinClose(vWin)
{
SetTitleMatchMode, 2
IfWinExist, %vWin%
  {
    WinClose
    ;WinKill
    return true
  }
return false
}

что бы не промахнуться с названием окна.

OFF: mish0k извиняюсь за свой пред. пост, т.к. не очень было понятно что ты именно хотел.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

6

Re: AHK: скрипт для управления несколькими приложениями

Indomito взаимно извиняюсь за резкость. По скрипту - спасибо. вот токо дуб я в этом. полагаю фун-ция возвращаеит тру или фальс. не сумею ей воспользоватся. если не тяжело то можно с моими именами показать (footbar.exe SatAmp.exe) имена окон footbar2000 и SatAmp -

7 (изменено: Indomito, 2012-04-18 17:34:12)

Re: AHK: скрипт для управления несколькими приложениями

Например... но для тебя надо поправить/изменить содержимое двух переменных:  vWinName и vRunName 1-я и 2-я строчка

vWinName := "Mozilla Firefox"
vRunName := "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"

if (fnWinClose(vWinName))
  return
Run, %vRunName%
return

fnWinClose(vWin)
{
SetTitleMatchMode, 2
IfWinExist, %vWin%
  {
    WinClose
    ;WinKill
    return true
  }
return false
}

P.S. Можно в vWinName писать и так: vWinName := "ahk_class Photoshop" т.к. для Adobe Photoshop CS5 (64 Bit) имя окна это имя редактируемого файла.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

8

Re: AHK: скрипт для управления несколькими приложениями

не закрывает ту программу которую нужною просто открывает вторую

9 (изменено: Indomito, 2012-04-18 18:39:51)

Re: AHK: скрипт для управления несколькими приложениями

mish0k пишет:

не закрывает ту программу которую нужною просто открывает вторую

т.е. второй экземпляр программы которая описана в vRunName?

P.S. Проверь правильность имени окна. Я например вместо Firefox написал FireFox и долго не мог понять в чём проблема.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

10

Re: AHK: скрипт для управления несколькими приложениями

OFF: Что такое фубар? Случаем не из этой оперы?

11 (изменено: ypppu, 2012-04-18 19:43:54)

Re: AHK: скрипт для управления несколькими приложениями

Типун тебе на язык, ypppu!

Всё гораздо банальнее. Это плеер фообар2000.

Окна правильно писал. И с калькулятором пробовал, он и его не хотел закрывать.

12 (изменено: Indomito, 2012-04-18 19:46:32)

Re: AHK: скрипт для управления несколькими приложениями

mish0k пишет:

окна правильно писал. и с калькулятором пробывал он и его не хотел закрывать

для самопроверки скопировал из своего же поста свой скрипт, выгрузил все остальные.
1. Запустил Мозиллу
2. Запустил скрипт - мозилла закрылась
3. Запустил скрипт - мозилла открылась

Проверь внимательнее или покажи скрипт с калькулятором, я гляну - мало ли где ты ошибся или я не то написал или ты меня не понял... всякое бывает.

OFF: ypppu "Не выдержела душа поэта...." - я про правку поста

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

13

Re: AHK: скрипт для управления несколькими приложениями

mish0k, Indomito — ответ здесь: Правила форума, §3.3.