2013-10-29 48 views
0

我必须在rundll32.exe进程窗口中输入用户名/密码。从RUNDLL32.EXE过程 在rundll32.exe窗口中注入文本

  • 焦点的窗口
    1. 获取登录窗口句柄注入2文本框中的文本,然后点击确定按钮

    :我因子评分以下的是否有可能在.NET中做到这一点,或者我必须诉诸较低级别的win32 API?以前做过的任何事情都可以让我指出正确的方向?

  • +0

    什么是你真正想干什么?让用户输入许可证密钥或类似信息?或者,他们是否需要Windows登录?你是否想让他们注册为管理员? – Ben

    +0

    @Ben我正在尝试在代码先前创建的交换mapi配置文件中输入用户名/密码。 mapi32.dll api不公开提供凭据的函数,它会从windows帐户中提取它们,并在它们与AD中的交换帐户不匹配时提示输入密码(在这种情况下)。我需要检索此窗口提示并注入凭据以确保所有内容都保持全自动 – Machinegon

    +0

    正常,因此您正试图从rundll32.exe进程中检索MAPI应用程序(可能为outlook)的Exchange登录对话框的窗口句柄。 .. http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx。或者,您可以使用NetUseAdd建立会话来预先建立NETBIOS会话.... http://msdn.microsoft.com/en-us/library/windows/desktop/aa370645(v=vs.85).aspx – Ben

    回答

    1

    您正试图检索MAPI应用程序(可能展望)的外汇登录对话框的窗口句柄,从RUNDLL32.EXE进程。这可以使用SendKeys类从.Net完成,但这不是完全可靠的:

    或者,您可以使用NetUseAdd建立会话来预先建立NETBIOS会话。如果这是成功的,您将不需要输入用户名和密码。我不知道这是否与Exchange,但它确实与使用集成身份验证的一些其他应用程序的工作:

    +0

    没有窗户把手?我可以通过带有user32.dll的窗口标题来检索它。我尝试着重关注窗口但是失败 – Machinegon

    +0

    netbios会话很聪明,可能会有效。我会试试看,谢谢你的提示 – Machinegon

    +0

    @Machinegon,首先尝试使用“NET USE”这个问题:http://stackoverflow.com/questions/5237654/sql-server-management-studio-2008 -runas-user-on-different-domain-over-vpn/5362712#5362712如果那么工作,那么'NetUseAdd'应该也可以工作。 – Ben