为什么 ControlSend () 不起作用,但它在教育任务上效果很好
why does not ControlSend () work, but it works great on educational tasks
我无法理解为什么 ControlSend() 在我的示例(Notepad++)中不处理,而在教程示例(Notepad)中它停止显示自己。
我无法理解什么是错误和战斗错误,并且它无法解决ControlSend()。
我在 windows 10
工作
...
; увы эту строку не отрабатывает , но при это ошибку не выводит (not wotk :( )
;$hWnd5 =ControlSend($hWnd, "Tab", "[CLASS:SysTabControl32]", " new 1 ")
If Not $hWnd5 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
Exit
EndIf
...
为什么这不起作用???
所有鳕鱼
; Запуск блокнота только так вызывается
Run('C:\kononov\Notepad++\notepad++.exe')
; Ожидание 5 секунд до появление окна блокнота и проверка
$hWnd = WinWait("[CLASS:Notepad++]", "", 5)
If Not $hWnd Then
MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
Exit
EndIf
;ControlClick(handle, button1);
; проверка открития
$hWnd1 = WinGetHandle($hWnd, "[CLASS:ToolbarWindow32; INSTANCE:1]")
If Not $hWnd1 Then
MsgBox(4096, 'Сообщение', 'Строчка окна не найдена,WinGetHandle, завершаем работу скрипта')
Exit
EndIf
; нажатие клавиши и проверка , нажатие клавиши "новый "
$hWnd3 =ControlClick($hWnd, "", "[CLASS:ToolbarWindow32]", "Left", 1,11, 12)
If Not $hWnd3 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
Exit
EndIf
; нажатие клавиши и проверка , нажатие на рабочей поверхности
$hWnd4 =ControlClick($hWnd, "", "[CLASS:SysTabControl32]", "Left", 1,550, 50)
If Not $hWnd4 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
Exit
EndIf
; Высылает строку символов в элемент увы строуон не реализует
$hWnd5 = ControlSend("[CLASS:Notepad++]", "Tab", "[CLASS:SysTabControl32]", "This is some text")
Send("asddas") ; вот эту срочку прекрастно отрабатывает
; увы эту строку не отрабатывает , но при это ошибку не выводит
;$hWnd5 =ControlSend($hWnd, "Tab", "[CLASS:SysTabControl32]", " new 1 ")
If Not $hWnd5 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
Exit
EndIf
; Закрывает блокнот. ( пока открытым держим )
; WinClose($hWnd)
结果
尝试这样的事情:
您可以跳过 ControlSend 中的参数,例如 ControlID。
Opt('WinTitleMatchMode', 4)
ShellExecute('notepad++.exe', '', '', '', @SW_SHOW)
Sleep(100)
$h = WinGetHandle("[CLASS:Notepad++]", "")
ConsoleWrite($h & @CRLF)
ConsoleWrite("WA " & WinActivate($h) & @crlf)
ControlSend("[CLASS:Notepad++]", "", '', '^n')
Sleep(200)
ControlSend("[CLASS:Notepad++]", "", '', 'It works :-) yes')
;~ WinSetTitle($h, '', @UserName)
我无法理解为什么 ControlSend() 在我的示例(Notepad++)中不处理,而在教程示例(Notepad)中它停止显示自己。 我无法理解什么是错误和战斗错误,并且它无法解决ControlSend()。 我在 windows 10
工作...
; увы эту строку не отрабатывает , но при это ошибку не выводит (not wotk :( )
;$hWnd5 =ControlSend($hWnd, "Tab", "[CLASS:SysTabControl32]", " new 1 ")
If Not $hWnd5 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
Exit
EndIf
...
为什么这不起作用???
所有鳕鱼
; Запуск блокнота только так вызывается
Run('C:\kononov\Notepad++\notepad++.exe')
; Ожидание 5 секунд до появление окна блокнота и проверка
$hWnd = WinWait("[CLASS:Notepad++]", "", 5)
If Not $hWnd Then
MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
Exit
EndIf
;ControlClick(handle, button1);
; проверка открития
$hWnd1 = WinGetHandle($hWnd, "[CLASS:ToolbarWindow32; INSTANCE:1]")
If Not $hWnd1 Then
MsgBox(4096, 'Сообщение', 'Строчка окна не найдена,WinGetHandle, завершаем работу скрипта')
Exit
EndIf
; нажатие клавиши и проверка , нажатие клавиши "новый "
$hWnd3 =ControlClick($hWnd, "", "[CLASS:ToolbarWindow32]", "Left", 1,11, 12)
If Not $hWnd3 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
Exit
EndIf
; нажатие клавиши и проверка , нажатие на рабочей поверхности
$hWnd4 =ControlClick($hWnd, "", "[CLASS:SysTabControl32]", "Left", 1,550, 50)
If Not $hWnd4 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
Exit
EndIf
; Высылает строку символов в элемент увы строуон не реализует
$hWnd5 = ControlSend("[CLASS:Notepad++]", "Tab", "[CLASS:SysTabControl32]", "This is some text")
Send("asddas") ; вот эту срочку прекрастно отрабатывает
; увы эту строку не отрабатывает , но при это ошибку не выводит
;$hWnd5 =ControlSend($hWnd, "Tab", "[CLASS:SysTabControl32]", " new 1 ")
If Not $hWnd5 Then
MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
Exit
EndIf
; Закрывает блокнот. ( пока открытым держим )
; WinClose($hWnd)
结果
尝试这样的事情: 您可以跳过 ControlSend 中的参数,例如 ControlID。
Opt('WinTitleMatchMode', 4)
ShellExecute('notepad++.exe', '', '', '', @SW_SHOW)
Sleep(100)
$h = WinGetHandle("[CLASS:Notepad++]", "")
ConsoleWrite($h & @CRLF)
ConsoleWrite("WA " & WinActivate($h) & @crlf)
ControlSend("[CLASS:Notepad++]", "", '', '^n')
Sleep(200)
ControlSend("[CLASS:Notepad++]", "", '', 'It works :-) yes')
;~ WinSetTitle($h, '', @UserName)