Что нового

[Окна, Диалоги] Сворачивается и почему-то обратно разворачивается окно...

scanfail

Знающий
Сообщения
244
Репутация
17
Пытался всячески, WinActivate, @SW_SHOW, @SW_MAXIMIZE, но все бессильно... Окно быстро разворачивается обратно. Хотя при ручном сворачивание она нормально становится активным окном.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
scanfail [?]
Даже пробовал запустить процесс, заморозить его и потом отморозить, не помогает
И не поможет, т.к кода по прежнему нет.
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
CreatoR [?]
И не поможет, т.к кода по прежнему нет.
Код:
Код:
#RequireAdmin

#include <GetHandle.au3>

Global $pid = "Divina.bin"
Global $iProc = ProcessExists($pid)
Global $win = WinGetTitle(GetHandle($pid))

Func start()
   If ProcessExists($pid) Then
	  WinActivate($win)
	  EndIf
	  EndFunc

start()

GetHandle.au3:
Код:
#include <WinAPIEx.au3>

Func GetHandle($sProcess)
    Local $iEnum = _WinAPI_EnumProcessWindows(ProcessExists($sProcess))
    If (@error) Or (Not IsArray($iEnum)) Then
        Return 0
    EndIf   
    Return $iEnum[1][0]
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
scanfail
Во-первых этот код проверить сложно, т.к он работает с процессом и окном которого у меня нет.
А во-вторых в GetHandle нужно передавать PID ($iProc в данном случае), а не имя процесса ($pid в данном случае).
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
CreatoR [?]
Во-первых этот код проверить сложно, т.к он работает с процессом и окном которого у меня нет.А во-вторых в GetHandle нужно передавать PID ($iProc в данном случае), а не имя процесса ($pid в данном случае).
А вы уверены насчет PID? Вроде и так работает, разве только сворачивается сразу.

P.S. - Попробовал и с PID, тоже самое...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
scanfail [?]
Попробовал и с PID, тоже самое
Я не заметил что в GetHandle есть ProcessExists.
В любом случае, проверить проблему не могу.
Возможно сама программа циклический сворачивает своё окно.
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
Странно.. А какие еще варианты могут быть? Ибо нужно чтобы название окна брал с помощью процесса, просто в название окна пишется версия клиента, например: 1.256, а в следующем обновление она будет скажем: 1.257, так намного удобнее...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
scanfail [?]
просто в название окна пишется версия клиента, например: 1.256, а в следующем обновление она будет скажем: 1.257
Можно по RegExp найти окно:

Код:
$hWin = WinGetHandle('[REGEXPTITLE:Title.*(\d+\.\d+)?]')
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
CreatoR [?]
Можно по RegExp найти окно:
Попробовал, тоже самое...


Добавлено:
Сообщение автоматически объединено:

Если программа(в моем случае игра) в оконном режиме, то все нормально работает, а вот с полноэкранным беда...
 
Верх