C# 如何获得对另一个程序对话框的引用,以便单击按钮
我成功地获得了对.net中正在运行的应用程序的引用,并且能够使用该引用来单击按钮 这是获取引用并使用它的代码C# 如何获得对另一个程序对话框的引用,以便单击按钮,c#,.net,automation,C#,.net,Automation,我成功地获得了对.net中正在运行的应用程序的引用,并且能够使用该引用来单击按钮 这是获取引用并使用它的代码 string name = WindowsIdentity.GetCurrent().Name.Split('\\')[1]; testAssembly = Assembly.LoadFrom(FindFile("BuildWellnessFile.exe", "C:\\Users\\" + name + "\\AppData\\Local\\Apps\\2.0\\")); Type t
string name = WindowsIdentity.GetCurrent().Name.Split('\\')[1];
testAssembly = Assembly.LoadFrom(FindFile("BuildWellnessFile.exe", "C:\\Users\\" + name + "\\AppData\\Local\\Apps\\2.0\\"));
Type t = testAssembly.GetType("BuildWellnessFile.Form1");
testForm = (Form)testAssembly.CreateInstance(t.FullName);
ThreadPool.QueueUserWorkItem(new WaitCallback(RunApp), testForm);
object[] p = { this, new EventArgs() };
InvokeMethod(testForm, "CountButton_Click", p);
这是支持代码
Assembly testAssembly = null;
Form testForm = null;
static void RunApp(object state)
{
Application.Run((Form)state);
}
private void InvokeMethod(Form form, string methodName, params object[] parms)
{
EventHandler eh = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler),form,methodName);
if (eh != null)
{
form.Invoke(eh, parms);
}
}
在此之后,使用InvokeMethod单击其他应用程序中的按钮,将弹出一个对话框。我想获取对该对话框的引用,以便按OK
请不要提及自动化另一个应用程序的最佳实践,我只是被要求完成一些事情
更新:
下面是其他应用程序调用对话框的方式
Interaction.MsgBox(" active cards in list created at: ", MsgBoxStyle.OkOnly, Nothing)
您可能需要使用p/Invoke将BM_单击消息发送到对话框中的相应按钮。在C#中如何执行此操作的一些示例位于,您可能需要使用p/Invoke将BM#U单击消息发送到对话框中的相应按钮。如何在C#is at中实现这一点的一些示例是模态的吗?您可以只模拟空格键按下事件。它将运行的计算机不能保证对话框的焦点。我需要弄清楚如何获取对对话框的引用。因此,您对使用Windows UI自动化不感兴趣,这是以编程方式与其他应用程序交互的正常方式(主要用于辅助功能支持)?它是模态的吗?您可以只模拟空格键按下事件。它将运行的计算机不能保证对话框的焦点。我需要弄清楚如何获取对对话框的引用。因此,您对使用Windows UI自动化不感兴趣,这是以编程方式与其他应用程序交互的正常方式(主要用于辅助功能支持)?