我想将用户名和密码发送到另一个应用程序,然后处理输入。 所以我有应用程序A,它有一个需要用户名和密码的窗口。 我们正在运行Aplication B.应用程序B需要搜索应用程序A,登录窗口,并将用户名发送到其中的文本框和密码,然后通过“确定”按钮处理这些输出。
是否有任何库可以处理这些需求? 任何帮助天气它是网站或DLL参考或示例将是伟大的
注意: - 应用程序A不是我构建的,或者可以访问其代码或任何东西,我可以启动它,就是它。
这是一个让事情变得清晰的过程,因为有些人感到困惑: - 应用程序B是一个EXE应用程序,单击它时会执行某些逻辑,然后启动应用程序A.
一旦应用程序A启动,用户将会出现一个对话框,提示输入用户名和密码。这不是我所做的,而是应用程序的功能。我的问题是我可以访问此对话窗口,并向其发送输入。
表格代码
find /path/to/dir -type f | xargs grep -l "stringtosearch"
}
答案 0 :(得分:3)
这对我来说听起来不是一个合适的设计策略。为什么不将两个应用程序合并为一个并在不同的应用程序表单之间传递请求的值?
如果由于某种原因您需要使用两个不同的应用程序,只需在用户在应用程序A中输入其登录凭据后打开应用程序B,并将这些值作为参数传递给您的第二个应用程序。
您还可以考虑使用TCP类,以便使用套接字虚拟连接两个应用。
答案 1 :(得分:2)
您需要启动Arcmap(使用Process.Start(string path);
这是一项非常简单的任务,然后花一些时间使用Thread.Sleep(int miliseconds)
启动,然后它变得棘手。
您必须通过导入此方法获取Arcmap流程(可能是名称)并将其设置为前景窗口:
[DllImport("user32.dll")]
public static extern int SetForegroundWindow(IntPtr hWnd);
然后以这种方式调用它:
Process process = Process.GetProcessesByName("arcmapProcessName").FirstOrDefault();
SetForegroundWindow(process);
稍后您只需使用
SendKeys.Send("login{TAB}password{ENTER}");
然后你必须引用SendInput
函数以编程方式将键盘按键注入输入流。也许,因为重新发明轮子很麻烦,无论如何你都要求外部图书馆,你可以使用C# Input Simulator。