Что нового

Определение запущено ли приложение?

ol1o

Чайник
Сообщения
26
Репутация
0
как определить запущен ли word.exe на компьютере? и если запущено то нужно закрыть? если оно свернуто как развернуть?
 

ZanMax

Тестер
Сообщения
120
Репутация
5
Код:
$process="word.exe"
if ProcessExists($process) Then ProcessClose($process)
EndIf
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
ZanMax
В конструкции, когда однострочная команда следует за Then, завершающий EndIf не нужен
 
Автор
O

ol1o

Чайник
Сообщения
26
Репутация
0
а как развернуть и сделать активным? через WinActivate тока развернулся и на переднем плане стал но не стал активным.
 

ZanMax

Тестер
Сообщения
120
Репутация
5
kaster сказал(а):
ZanMax
В конструкции, когда однострочная команда следует за Then, завершающий EndIf не нужен
Спасибо. Незнал такого :smile: всегда ставлю ENDIF
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
ol1o сказал(а):
а как развернуть и сделать активным? через WinActivate тока развернулся и на переднем плане стал но не стал активным.
Да, я замечал, что WinActivate() иногда подглючивает, но так и не нашел зависимости. Попробуй использовть

Код:
Opt('WinWaitDelay', 0)


в начале скрипта.
 
Автор
O

ol1o

Чайник
Сообщения
26
Репутация
0
все равно не прокатило результат тот же. на переднем плане и не активная
Код:
Opt('WinWaitDelay', 0)
WinActivate ("word")
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
ZanMax сказал(а):
kaster сказал(а):
ZanMax В конструкции, когда однострочная команда следует за Then, завершающий EndIf не нужен
Спасибо. Незнал такого :smile: всегда ставлю ENDIF
ну это странно, ибо это приведет к ошибке.
попробуй ;)
PS:
я имею в виду не такой скрипт
Код:
$process="word.exe"
 if ProcessExists($process) Then
     ProcessClose($process)
 EndIf

а именно
Код:
$process="word.exe"
if ProcessExists($process) Then ProcessClose($process)
EndIf

который ты привел. последний приведет к ошибке
Добавлено:
Сообщение автоматически объединено:

ol1o
попробуй
Код:
WinSetState('Titlte', '', @SW_MINIMIZE);свернуть
WinSetState('Titlte', '', @SW_MAXIMIZE);развернуть
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
ol1o сказал(а):
все равно не прокатило результат тот же. на переднем плане и не активная
Тогда так.

Код:
Opt('WinWaitDelay', 0)

Do
	If Not WinActivate('Word') Then
		ExitLoop
	EndIf
	Sleep(250)
Until BitAND(WinGetState('Word'), 8)
 
Автор
O

ol1o

Чайник
Сообщения
26
Репутация
0
:shok: :shok: :shok:
отрабатывает 3 секунды и ... Короче тоже самое. становится на передний план и не активное.

я уже думаю мышкой тыкнуть но не хочется.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
ol1o сказал(а):
:shok: :shok: :shok:
отрабатывает 3 секунды и ... Короче тоже самое. становится на передний план и не активное.

я уже думаю мышкой тыкнуть но не хочется.
А так?

Код:
DllCall('user32.dll', 'none', 'SwitchToThisWindow', 'hwnd', WinGetHandle('Word'), 'int', 1)
 
Автор
O

ol1o

Чайник
Сообщения
26
Репутация
0
:laugh:
прикол не понятный но..
попробовал на другом компьютере
Код:
DllCall('user32.dll', 'none', 'SwitchToThisWindow', 'hwnd', WinGetHandle('KX-TDA600 Maintenance Console'), 'int', 1)

и сработало.

наверное придется переставить винду.
 

r35p3ct

Продвинутый
Сообщения
226
Репутация
60
Я в своей проге проверял состояние курсора, но это актуально если окно в фокусе.
 
Верх