Core2Duo76
Новичок
- Сообщения
- 58
- Репутация
- 1
Всем привет! Делаю мелкий скрипт запуска проги и нажатия ГК. Запускает прогу по адресу, пауза, ищем имя окна для того процесса, активируем это окно и жмем ГК. Вот нажатие и не работает, одно решение нашел с функцией _sendEx, просматривающую не залипла ли клавиша контрол. А она взяла и не помогла. Вот в чем дело???
Код:
#include <WinAPIEx.au3>
#include <Misc.au3>
$path = FileReadLine(@ScriptDir & '\адрес программы.txt',1)
$send= FileReadLine(@ScriptDir & '\адрес программы.txt',2)
$path=StringReplace($path,'"','')
Run($path)
ConsoleWrite($path & @CRLF)
ConsoleWrite($send & @CRLF)
$prc_name = StringLower(StringRegExpReplace($path, '.+\\([^\\]+)$', '$1'))
sleep(7000)
ConsoleWrite($prc_name & @CRLF)
$winname = _WinGetForProc($prc_name)
WinActivate($prc_name)
sleep(1000)
_SendEx("{rctrl}o")
Func _SendEx($sSend_Data)
Local $hUser32DllOpen = DllOpen("User32.dll")
While _IsPressed("10", $hUser32DllOpen) Or _IsPressed("11", $hUser32DllOpen) Or _IsPressed("12", $hUser32DllOpen)
Sleep(10)
WEnd
Send($sSend_Data)
DllClose($hUser32DllOpen)
EndFunc
Func _WinGetForProc($sProcName)
$alist = ProcessList($sProcName)
For $i = 1 To $alist[0][0]
$iProcPid = $alist[$i][1]
Next
$aData = _WinAPI_EnumProcessWindows($iProcPid, 0)
$iWin = $aData[1][0]
$sTitle = WinGetTitle($iWin)
Return $sTitle
EndFunc ;==>_WinGetForProc