V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AmoxiDu
V2EX  ›  程序员

求助 V 友:我调用了第三方动态库,它弹了一个密码输入框,我如何在本程序(C#.NET)把字符串(即密码)发送给它?或者向他发送模拟键盘事件的消息?

  •  
  •   AmoxiDu · Oct 23, 2018 · 2937 views
    This topic created in 2751 days ago, the information mentioned may be changed or developed.
    能够使用 FindWindow 获取密码输入框的句柄,不能修改第三方动态库,求有经验的 V 友指点!
    12 replies    2018-10-23 17:30:55 +08:00
    chinvo
        1
    chinvo  
       Oct 23, 2018 via iPhone
    既然有密码框说明设计上就是要输入密码的,你可以研究下这个库的源码看看能不能跳过密码直接调用其他组件
    AmoxiDu
        2
    AmoxiDu  
    OP
       Oct 23, 2018 via Android
    @chinvo 没有那个动态库的源码,有源码我就能用 sendmessage 了😂密码是必须输入的
    ReVanTis
        3
    ReVanTis  
       Oct 23, 2018
    按你现在的思路,模拟键盘的话,
    https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys.send?view=netframework-4.7.2
    以前跑 selenium 的时候网页的弹窗我似乎用过这个。。。
    geelaw
        4
    geelaw  
       Oct 23, 2018
    最好用那个库本身的东西解决,如果不行的话就用 UI Automation
    PulpFunction
        5
    PulpFunction  
       Oct 23, 2018 via Android
    严重密码那块改一下?或者启用弹框那里注视
    chinvo
        6
    chinvo  
       Oct 23, 2018 via iPhone
    @AmoxiDu #2 用 DotPeek / ReSharper / Rider 跟一下( Go To Declaration )
    ysc3839
        7
    ysc3839  
       Oct 23, 2018
    先试试用 PostMessage 发送键盘消息。不行的话再试试 SendInput。
    可以的话用 Spy++ 查看一下窗口,截图发上来。
    aldenchang
        8
    aldenchang  
       Oct 23, 2018 via iPhone
    没太明白,你获取了密码窗体句柄把密码发给了窗体后,如果你无法修改动态库代码,也还是无法处理啊。你是想跳过密码输入的步骤?
    mingl0280
        9
    mingl0280  
       Oct 23, 2018
    办法多了去了,post/sendmessage;keybd_event;SendInput 都可以,找到窗口句柄就好办
    cjw1115
        10
    cjw1115  
       Oct 23, 2018
    UI automation 那一套,结合 Windows 消息还有 inspect 可以解决问题
    AmoxiDu
        11
    AmoxiDu  
    OP
       Oct 23, 2018
    搞定了,用的是 keybd_event,感谢楼上各位老哥的回答!
    https://paste.ubuntu.com/p/bt9cHqvqRJ/
    sarlanori
        12
    sarlanori  
       Oct 23, 2018 via Android
    都能拿到 handle 了,有很多方式都可以达到目的,比如 SetText,SendMessage 等
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
    ♥ Do have faith in what you're doing.