Что нового

Послать Enter в Shell.Explorer.2

vanekzver

Новичок
Сообщения
91
Репутация
2
Как послать send "{ENTER}" в этот скрипт, чтобы enter нажался на странице ya.ru

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Obj1 = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($Obj1, 0, 0, 633, 454)
GUISetState(@SW_SHOW)
$Obj1.Navigate("http://ya.ru")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
vanekzver [?]
Как послать send "{ENTER}" в этот скрипт
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Obj1 = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($Obj1, 0, 0, 633, 454)
GUISetState(@SW_SHOW)
$Obj1.Navigate("http://ya.ru")

_Send('{ENTER}')

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func _Send($sSendKey, $iTimeOut = 10000)
	
	Local $t = TimerInit()
	Do
		Sleep(250)
		If TimerDiff($t) > $iTimeOut Then _
			Return SetError(1, 0, 0)
	Until $Obj1.readyState = 4
	Send($sSendKey)
	
	Return SetError(0, 0, 1)
EndFunc ;==>_Send
 
Автор
V

vanekzver

Новичок
Сообщения
91
Репутация
2
Просто так получается, но через GuiCtrlCreateButton не работает, все что можно перепробывал


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

Нет никаких идей?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Я проверял на WinXP SP2 IE7, всё работает.
Проверить в другой конфигурации нет возможности.

Попробуйте так:
Код:
;...
_Send('{ENTER}', 'input', 1)
;...
Func _Send($sSendKey, $iTeg, $iIndex = 0, $iTimeOut = 10000)
	
	Local $t = TimerInit()
	Do
		Sleep(250)
		If TimerDiff($t) > $iTimeOut Then _
			Return SetError(1, 0, 0)
	Until $Obj1.readyState = 4
	
	$oInput = $Obj1.document.getElementsByTagName($iTeg)
	$oInput($iIndex).focus()
	Send($sSendKey)
	
	Return SetError(0, 0, 1)
EndFunc ;==>_Send
 
Верх