Что нового

WinActivate срабатывает со 2 раза

x316x

Новичок
Сообщения
3
Репутация
0
День добрый!
пытаюсь написать маленький скрипт и столкнулся с проблемой
Код:
$aMSC_Path='C:\Program Files (x86)\1cv8\common\1CV8 Servers.msc'
ShellExecute($aMSC_Path)
Sleep(500)
;~ WinActivate(StringToBinary("Администратор информационной базы buh",4),5)
WinActivate("Администратор информационной базы buh")
Sleep(800)
Send("obm")
Send("{TAB}")
Sleep(1000)
Send("654")
Sleep(1100)
Send("{ENTER}")

1.Запускаю скрипт, окно не активное .
Запускаю скрипт повторно и он отрабатывает нормально- окно активно
думал проблема с кодировакой, но отрабатывает с такой же проблемой
2. Как получить доступ к пункту контекстного меню
 

Вложения

  • 2015-09-24 15-19-26 Скриншот экрана.png
    2015-09-24 15-19-26 Скриншот экрана.png
    31.9 КБ · Просмотры: 9

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Да, WinActivate() в некоторых случаях может не срабатывать с первого раза. И проблема эта не связана с AutoIt.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
$aMSC_Path = 'C:\Program Files (x86)\1cv8\common\1CV8 Servers.msc'
ShellExecute($aMSC_Path)

$sTitle = 'Администратор информационной базы buh'
$hWin = WinWait($sTitle, '', 3)

If $hWin Then
	WinActivate($hWin)
	
	If WinWaitActive($hWin, '', 3) Then
		SendKeepActive($hWin)
		Send("obm")
		Send("{TAB}")
		Sleep(1000)
		Send("654")
		Sleep(1100)
		Send("{ENTER}")
	EndIf
EndIf


x316x [?]
Как получить доступ к пункту контекстного меню
В большинстве случаев можно посмотреть его ID в редакторе ресурсов (например Resources Hacker) и вызвать через _SendMessage($hWin, $WM_COMMAND, ID, 0).
А ещё есть WinMenuSelectItem.
 
Верх