1 (изменено: Куприян, 2011-03-30 21:11:38)

Тема: AHK: Дать процессу команду стоп при определенном условии...

Во-первых Здравствуйте!
Во-вторых Я задавал этот вопрос в разделе про CMD\BAT. Там сказали что этот вопрос легко может решится в данном разделе.
Второй раз я писать не собираюсь, так что вот Цитата моего сообщения из раздела CMD\BAT.

Во - первых: Здравствуйте!
Во - вторых: Предисловие
У меня есть одна програмка, но у нее незначительный минус - она мешается в играх, в этой программе не предусмотрено "взаимодействие с другими программами"
В - третьих: Сам вопрос:
Помогите пожалуста, кто нибудь дайте, пожалуста, мне скрипт (Или как звать его правильнее Макрос или код?) для bat: Например у меня запустилась игра (Igra.exe) то CMD дает команду чтобы моя программа (programmy.exe) приастанавливала свои действия. Т.е. моя программ сделана для украшения интерфейса Windows, и чтобы вот эти визуализации пропали (Около курсора У меня одна хрень есть, но в играх где курсора нет фигня получается, по экрану эта хрень двигается и не красиво получается). А когда процесс моей игры исчезал (Igra.exe) CMD давал команду чтобы поя программа (programmy.exe) возобнавляла свои действия.
Да и вот чтобы желательно чтобы CMD в трей при запуске сворачивался.
(P.S. Если этот вопрос закроют, то пожалуста отправте мне ответ через ЛС или Mail (Я указал что мне могут присылать сообщения, но майла самого не видно))

Заранее спасибо
Да и еще можно ли сделать так чтобы он в место Igra.exe, он смотрел из TXT например в TXT tut.txt Есть две записи Privet.exe и Poka.exe. И если хоть один из них будет запущен, то Моя программа приостанавливала свои действия,
Кстати у нее есть две кнопки в меню - Pause script И Suspend autohotkey.

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

2 (изменено: ilya20069, 2011-03-30 23:17:20)

Re: AHK: Дать процессу команду стоп при определенном условии...

Metka:                                       ; Метка на которую будет возвращаться скрипт
WinWait, Заголовок_окна_игры                 ; Заголовок можно узнать программой Window Spy
Process, Close, ukrashalka.exe               ; Уничтожает процес с названием ukrashalka.exe
WinWaitClose, Заголовок_окна_игры            ; Ожидание закрытия игры
Run, ukrashalka.exe, C:\Progra~1\ukrashalkO\ ; Указываем имя запускаемого файла и путь к нему 
Goto Metka
return

Для одной игры хватит.

3 (изменено: Куприян, 2011-03-30 23:13:46)

Re: AHK: Дать процессу команду стоп при определенном условии...

Спасибо конечно, но у меня полно игр, Если писать для каждой с ума сойти можно, да и еще можно ли сделать так чтобы без Win + P? (Просто я в автозагрузку положу и все - если игра запустится скрипт автоматически процесс выгрузит, а как игра закончится обратно запустит)

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

4 (изменено: ilya20069, 2011-03-30 23:16:36)

Re: AHK: Дать процессу команду стоп при определенном условии...

На "дофига" игр допилить не смогу, тут гуру местные в помощь, без вин п сделал, см. выше.

5

Re: AHK: Дать процессу команду стоп при определенном условии...

Да и вопрос я в AutoHotKey не шарю - так что куда этот код мягко говоря засовывать (Грубо говоря запихивать=))

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

6 (изменено: ilya20069, 2011-03-30 23:21:42)

Re: AHK: Дать процессу команду стоп при определенном условии...

Cохранить в текстовый документ с расширением .ahk (При условии, что Auto Hot Key установлен, если нет - вот ), после правой кнопкой на файл и выбрать пункт Compile Script.

7 (изменено: ilya20069, 2011-03-31 14:00:28)

Re: AHK: Дать процессу команду стоп при определенном условии...

Вот сделал скрипт котрый будет следить за неограниченным количеством игр.
В папке со скриптом должны быть созданы файлы 1.ini и 1.txt.
1.ini вида:

[General]
NumGame=4    ;количество строк в файле 1.txt

В 1.txt вписываешь заголовки игр на одну строку.
Чувствую что за такой код, мне оторвут руки

IniRead, NumGame, 1.ini, General, NumGame
Nums:=NumGame
DefaultNums:=NumGame
chtenie:
FileReadLine, Line%NumGame%, 1.txt, %NumGame%
NumGame:=NumGame - 1
if NumGame < 1
 {
    Goto Waiter
 }
Goto chtenie
Waiter:
Game:=Line%Nums%
IfWinExist, %Game%
 {
    Process, Close, ukrashalka.exe               
    WinWaitClose, %Game%           
    Run, ukrashalka.exe, C:\Progra~1\ukrashalkO
 }
Nums:=Nums - 1
if Nums < 1
 {
    sleep 1000
    Nums:=DefaultNums
 }
Goto Waiter
return

*упал на пол и забился в угол*

8

Re: AHK: Дать процессу команду стоп при определенном условии...

ilya20069, желательно отступы в код добавлять, дабы читать было легче.

9

Re: AHK: Дать процессу команду стоп при определенном условии...

А в INI что там? Для интереса - я же должен знать что у меня на компе)))

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

10

Re: AHK: Дать процессу команду стоп при определенном условии...

В 1.txt вписываешь заголовки игр на одну строку.

То есть на одну строку один процесс?

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

11

Re: AHK: Дать процессу команду стоп при определенном условии...

ilya20069 пишет:

после правой кнопкой на файл и выбрать пункт Compile Script

Зачем?

Куприян пишет:

А в INI что там? Для интереса - я же должен знать что у меня на компе)))

Так показано же содержимое INI-файла. Вообще-то непонятно, зачем ещё эти два лишних файла, если можно список процессов держать прямо в скрипте. Он ведь тоже текстовый файл.

12

Re: AHK: Дать процессу команду стоп при определенном условии...

А усе понял,

YMP пишет:
ilya20069 пишет:

после правой кнопкой на файл и выбрать пункт Compile Script

Зачем?

Куприян пишет:

А в INI что там? Для интереса - я же должен знать что у меня на компе)))

Так показано же содержимое INI-файла. Вообще-то непонятно, зачем ещё эти два лишних файла, если можно список процессов держать прямо в скрипте. Он ведь тоже текстовый файл.

Для меня лучше держать в отдельном текстовом файле

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

13 (изменено: ilya20069, 2011-03-31 13:52:58)

Re: AHK: Дать процессу команду стоп при определенном условии...

2 YMP

Зачем?

Просто считаю что пользоваться интерпритатором надо только при отладке, плюс после компилирования для запуска скрипта больше не требуется наличие самого языка.
Два лишних файла как раз для того чтобы не держать настройки внутри скрипта). Скомпилил один раз и все. Даже если завтра г-ну Куприяну переустановят Windows и добавят пару игр, ему не придется копать код и вешать AutoHotKey.
в данном скрипте мне кажется можно было обойтись всего парой Loop'ов, но я не разобрался с ним.


2 Куприян
Файлы 1.ini и 1.txt вы должны создать сами.
В 1.txt вписать ЗАГОЛОВКИ игр. Их можно найти программой Window Spy, включите программу и кликните мышкой на окно игры, в Window Spy появится информация о окне, в том числе и заголовок.
В 1.ini вписать кол-во строк которые вы добавили в 1.txt.

14

Re: AHK: Дать процессу команду стоп при определенном условии...

Я повторюсь

В 1.txt вписываешь заголовки игр на одну строку.

То есть на одну строку один процесс?

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

15 (изменено: ilya20069, 2011-03-31 14:01:14)

Re: AHK: Дать процессу команду стоп при определенном условии...

Да.

16

Re: AHK: Дать процессу команду стоп при определенном условии...

Кстати я обнаружил что моя программка написана на этом же языке, к щастью я увидел в директории AutoHotKey, ярлычок с именем recoding или чтото в этом роде вот ща он лазиет в этой программе - надеюсь успешно - тогда я выложу код этой программы, и надеюсь чтобы кто нибудь помог мне внидрить выше написанный код в программу. Или просто даст скрипт который можно будет внидрить в программу, который добавит функцию не взаимодействовать программами.

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

17 (изменено: Куприян, 2011-03-31 14:14:29)

Re: AHK: Дать процессу команду стоп при определенном условии...

Ой я удаляю это сообщение - он просто за мышкой следил)))

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

18 (изменено: ilya20069, 2011-03-31 14:16:03)

Re: AHK: Дать процессу команду стоп при определенном условии...

В файле ini уберите  -  " ;количество строк в файле 1.txt "
А код вашей проги сейчас поковыряю.
А что она делает?

19

Re: AHK: Дать процессу команду стоп при определенном условии...

Блин вот бы раскампилировать ту прогу и внидрить

Кстати выше указанный скрипт выдает Error:
http://i.pixs.ru/thumbs/0/9/4/TATATATjpg_2440145_1945094.jpg

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

20 (изменено: ilya20069, 2011-03-31 14:28:01)

Re: AHK: Дать процессу команду стоп при определенном условии...

для декомпиляции есть утилита, а AutoScriptWriter лишь записывает за вами действия

21 (изменено: Куприян, 2011-03-31 14:28:53)

Re: AHK: Дать процессу команду стоп при определенном условии...

Все скачал декомпилятор, вот исходный код этой программы, нельзя ли внедрить Выше указанный код?, кстати тот код не работает, я вписал в 1.txt Opera.exe и не хрена (Я вроде бы и не такой тупой - в место ukrashalka.exe подставил свою, в место C:\Progra~1\ukrashalkO подставил где моя программа была). Запускаю оперу, а MouseClok.exe не выгружается.

CoordMode,Mouse,Screen
START:
tid1=%A_HOUR%:%A_MIN%
MouseGetPos,x1,y1
If x2=%x1%
  If y2=%y1%
    If tid2=%tid1%
      Goto,UNMOVED
ToolTip,%tid1%
WinSet,TransColor,0x1EFFFF 100,%tid1%
UNMOVED:
StringTrimLeft,uke,A_YWeek,4
Menu,Tray,Tip,%A_DDDD% %A_DD%. %A_MMMM% %A_YYYY% - week %uke% - day %A_YDay%
Sleep,10
x2=%x1%
y2=%y1%
tid2=%tid1%
Goto,START
Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

22

Re: AHK: Дать процессу команду стоп при определенном условии...

Илья правильно да? Кстати я погуглил и как раз на твой вопрос декомпилятора попал от туда и скачал))) id 44387

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

23

Re: AHK: Дать процессу команду стоп при определенном условии...

Правильно, Илья. Дело в том что в 1.txt надо вписывать не исполняемые файлы, а заголовок окна. Попробуйте без .exe и с большой буквы в заголовке у оперы вроде так написано. В пуске тоже отображается заголовок

24 (изменено: Куприян, 2011-03-31 14:54:47)

Re: AHK: Дать процессу команду стоп при определенном условии...

Он в место того чтобы закрывать процесс его открывает если я в оперу зайду.
Если не заметили то уже и 2 есть

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

25

Re: AHK: Дать процессу команду стоп при определенном условии...

Ну да, после закрытия оперы процесс открывается.

26 (изменено: Куприян, 2011-03-31 14:47:37)

Re: AHK: Дать процессу команду стоп при определенном условии...

После ОТКРЫТИЯ оперы а НЕ закрытия!!


А да и еще - чтобы избавить меня от необходимости в автозагрузку два ярлыка класть - нельзя ли добавить строчку чтобы при запуске скрипта он открывал Mouseclock.exe который лежит в той же самой директории что и .ahk?

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

27 (изменено: ilya20069, 2011-03-31 14:55:45)

Re: AHK: Дать процессу команду стоп при определенном условии...

Скомпилил ваш код, вот сейчас тестирую у себя - все работает.

28

Re: AHK: Дать процессу команду стоп при определенном условии...

Run, MouseClock.exe

Добавьте в начало любого скрипта

29

Re: AHK: Дать процессу команду стоп при определенном условии...

Ну давайте попробуем его - как он у меня приживется

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

30 (изменено: ilya20069, 2011-03-31 15:42:47)

Re: AHK: Дать процессу команду стоп при определенном условии...

http://i.pixs.ru/thumbs/9/2/5/1GIF_5943768_1945925.jpg
вот мой вариант теста при котором все работало, хотя у меня при любых тестах все работает

IniRead, NumGame, 1.ini, General, NumGame
Nums:=NumGame
DefaultNums:=NumGame
chtenie:
FileReadLine, Line%NumGame%, 1.txt, %NumGame%
NumGame:=NumGame - 1
if NumGame < 1
 {
    Goto Waiter
 }
Goto chtenie
Waiter:
Game:=Line%Nums%
IfWinExist, %Game%
 {
    Process, Close,1.exe               
    WinWaitClose, %Game%           
    Run, 1.exe, C:\
 }
Nums:=Nums - 1
if Nums < 1
 {
    sleep 1000
    Nums:=DefaultNums
 }
Goto Waiter
return

31 (изменено: Куприян, 2011-03-31 16:29:23)

Re: AHK: Дать процессу команду стоп при определенном условии...

А как вы так Akell pad сделали Черным в нутри (Ну где писать надо), да и спасибо, ща затестим

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

32

Re: AHK: Дать процессу команду стоп при определенном условии...

Это сам скрипт - а если его в программу внедрить?

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

33

Re: AHK: Дать процессу команду стоп при определенном условии...

у меня на 22 строчке ошибку выдает

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

34

Re: AHK: Дать процессу команду стоп при определенном условии...

А все устранил

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...

35

Re: AHK: Дать процессу команду стоп при определенном условии...

Ну ладно создам другую тему Так Как это уже выходит за рамки данной темы спасибо за внимание!!!

Мужик обманул Мужика - Жулик; Купец обманул Купца - Коммерсант; Генерал обманул Генерала - Стратег; Король обманул Короля - Политик. Все зависит от обстоятельств, но обстоятельства делаем мы - люди. Так что дерзайте...