找回密码
 加入
搜索
查看: 1212|回复: 14

[网络通信] win11的记事本不一样了...[已解决]

[复制链接]
发表于 2022-7-24 10:24:43 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2022-7-24 23:06 编辑
Example()

Func Example()    
 Run("notepad.exe")
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
    ControlSetText($hWnd, "", "Edit1", "这是一些文本")
    Local $sText = ControlGetText($hWnd, "", "Edit1")
    MsgBox(0, "", "编辑控件的文本: " & $sText)
    WinClose($hWnd)
EndFunc   ;==>Example
win11系统。
昨天用这个代码做调试,发现不好使,才发现win11中记事本的底层代码可能更新了,像是使用.net框架重新写了代码
使用autoit v3 info工具无法定位到弹出保存对话框,并且弹出对话框类型不再是#32770了
附件是win11的记事本exe。谁有空的可以测试一下看看...






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-7-24 14:18:44 | 显示全部楼层
你要的是这个效果?
Example()

Func Example()
 Run("notepad.exe")
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
        ControlSend($hWnd, "", "Edit1", "这是一些文本")
    Local $sText = ControlGetText($hWnd, "", "Edit1")
    MsgBox(0, "", "编辑控件的文本: " & $sText)
    WinClose($hWnd)
EndFunc   ;==>Example
 楼主| 发表于 2022-7-24 15:53:17 | 显示全部楼层
lixiaolong 发表于 2022-7-24 14:18
你要的是这个效果?

控件类名已经不一样了,好像不灵光了


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-7-24 16:08:37 | 显示全部楼层
我的win11没有变啊,还是 #32770
发表于 2022-7-24 16:29:03 | 显示全部楼层
用 _GUICtrlRichEdit_* 尝试~
 楼主| 发表于 2022-7-24 22:27:37 | 显示全部楼层
lixiaolong 发表于 2022-7-24 16:08
我的win11没有变啊,还是 #32770

奇怪了,我这里弹出保存对话框后,用窗口探测工具都找不到#32770。
而且窗口探测器无法探测到弹出的保存对话框
 楼主| 发表于 2022-7-24 22:29:56 | 显示全部楼层
afan 发表于 2022-7-24 16:29
用 _GUICtrlRichEdit_* 尝试~
#include <GuiRichEdit.au3>

Example()

Func Example()
        Run("notepad.exe")
        Sleep(100)
        Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
        _GUICtrlRichEdit_SetText($hWnd, $hWnd & @CRLF & "这是一些文本")
        Sleep(100)
        Local $sText = _GUICtrlRichEdit_GetText($hWnd)
        MsgBox(0,  $hWnd, "编辑控件的文本: " & $sText,3)
        WinClose($hWnd)
EndFunc   ;==>Example
试过了,也不行....




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-7-24 22:32:26 | 显示全部楼层
至少句柄不对,不应该用窗口的,要 RichEdit 控件的。
探测窗口? https://www.autoitx.com/forum.ph ... &extra=page%3D1
 楼主| 发表于 2022-7-24 22:47:02 | 显示全部楼层
afan 发表于 2022-7-24 22:32
至少句柄不对,不应该用窗口的,要 RichEdit 控件的。
探测窗口? https://www.autoitx.com/forum.php?mod ...
#include <GuiRichEdit.au3>

Example()

Func Example()
        Run("notepad.exe")
        Sleep(100)
        Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
        Sleep(100)
        Local $hEdt = ControlGetHandle($hWnd,"","RichEditD2DPT1")
        Sleep(100)
        _GUICtrlRichEdit_SetText($hEdt, $hWnd & @CRLF & $hEdt & @CRLF & "这是一些文本")
        Sleep(100)
        Local $sText = _GUICtrlRichEdit_GetText($hEdt)
        MsgBox(0,  $hWnd, $hEdt & "编辑控件的文本: " & $sText)
        ;WinClose($hWnd)
EndFunc   ;==>Example
改成这样甚至都莫名其妙的卡顿,记事本还自动关闭了

[


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-7-24 22:53:07 | 显示全部楼层
cashiba 发表于 2022-7-24 22:47
改成这样甚至都莫名其妙的卡顿,记事本还自动关闭了

[

多添加调试信息,查看@Error,而不是Sleep...
自己搞吧~
 楼主| 发表于 2022-7-24 22:55:40 | 显示全部楼层
#include <GuiRichEdit.au3>

Example()

Func Example()
        Run("notepad.exe")
        Sleep(100)
        Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
        Sleep(100)
        Local $hEdt = ControlGetHandle($hWnd,"","RichEditD2DPT1")
        Sleep(100)
        ControlSetText($hWnd,"", "RichEditD2DPT1", $hWnd & @CRLF & $hEdt & @CRLF & "这是一些文本")
        Sleep(100)
        Local $sText = ControlGetText($hWnd,"", "RichEditD2DPT1")
        MsgBox(0,  $hWnd, $hEdt & "编辑控件的文本: " & $sText)
        ;WinClose($hWnd)
EndFunc   ;==>Example



跑偏了。
这个帖子本来是提醒一下win11的记事本跟之前的不同了,控件类名变了。
要用需要改下代码。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2022-7-24 23:00:34 | 显示全部楼层

另外关闭保存对话框似乎不再是#32770。窗口探测器无法把焦点定位到按钮上...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2022-7-24 23:05:10 | 显示全部楼层
afan 发表于 2022-7-24 22:53
多添加调试信息,查看@Error,而不是Sleep...
自己搞吧~

辛苦了,谢谢A大!
这个不算求助帖,只是分享一下win11的一些变化
劳各位大神费神了...
发表于 2022-7-24 23:17:23 | 显示全部楼层
cashiba 发表于 2022-7-24 23:05
辛苦了,谢谢A大!
这个不算求助帖,只是分享一下win11的一些变化
劳各位大神费神了...

就是需要将 Edit1 改为 RichEditD2DPT1 即可是吧~
看小龙的回复,貌似他的并不一样,仍为 Edit1,所以,建议首先 ControlGetHandle($hWnd,"","Edit1"),失败则改为 RichEditD2DPT1,以兼容不同的版本。

至于对话框无法探测到,我这没法测试(XP),无解~
发表于 2022-7-26 16:45:39 | 显示全部楼层
cashiba 发表于 2022-7-24 23:00
另外关闭保存对话框似乎不再是#32770。窗口探测器无法把焦点定位到按钮上...

用的这个窗口信息探测器,可以分享一下麻
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 11:05 , Processed in 0.090689 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表