Что нового

Задержа при перемещении окна

winkot

Новичок
Сообщения
169
Репутация
0
Странно работает код
Код:
ShellExecute('C:\Programs\MyProgram.exe')
WinMove('MyProgram', '', 5, 650, 500, 700)

Окно не перемещается. Оно переместится только, если дать задержку.
Код:
ShellExecute('C:\Programs\MyProgram.exe')
Sleep(500)
WinMove('MyProgram', '', 5, 650, 500, 700)


Предпологаю, что это из-за того, что окно не успевает появится после запуска программы. Но тем не менее WinWait не помогает.
Код:
ShellExecute('C:\Programs\MyProgram.exe')
WinWait('MyProgram')
WinMove('MyProgram', '', 5, 650, 500, 700)
В чем причина?
 

Norm

Продвинутый
Сообщения
279
Репутация
74
Попробуйте так
Код:
ShellExecute('C:\Programs\MyProgram.exe')
$hWnd = WinWaitActive('MyProgram','',5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf
WinMove($hWnd, '', 5, 650, 500, 700)
 

Norm

Продвинутый
Сообщения
279
Репутация
74
Бывают случаи, когда окна не реагируют правильно, если они не являются активными. Бывают также случаи, когда программа еще не завершила инициализацию, когда ее окно уже отображается.
 
Верх