从另一个进程调用方法

Invoke a method from another process

我有一份工作申请。现在我正在尝试编写自动单击按钮的功能。为此,我需要进入内部。

我可以很容易地使用反编译器查看源代码,所以我知道所有 class 名称、方法名称等...

我一直在研究类型和 Type.GetMethod() 方法。唯一的问题是我尝试使用应用程序的进程。我捕获了正确的应用程序(Process.GetProcessByName("WorkProcess")),我可以捕获'Type',但我不知道如何获取正确的class,并调用正确的方法。

我会给你一个在反编译器中显示的布局:

WorkApp
> WorkApp.Exe
--> References
--> <Default namespace>
--> WORKAPP
----> frmsomething (Form)
------> _btnsync : Button
------> btnsync : Button

关于如何做到这一点有什么想法吗?我搜索了 google,但找不到答案...

谢谢 安东尼

PS: 我无法在工作中访问该应用程序的源代码。

PPS:这是我目前的代码:

    Process WA = null;

    private void Initialize()
    {
        Process[] pa = Process.GetProcesses();

        foreach (Process p in pa)
        {
            if (p.ProcessName.Contains("WorkApp"))
            {
                WA = p;
                break;
            }
        }

        if (WA == null)
        {
            Console.WriteLine("App was not found...");
            stop = true;
        }
        else
        {
            Type t = WA.GetType();
            t.GetType();
            // This is the place I got stuck
        }
    }

如果您尝试从外部世界调用应用程序中的方法,一种方法是在该应用程序中创建远程线程,并从该应用程序内部使用该 dll,使用反射完成工作。 我对一个应用程序做了这个并且它有效。 如果您需要详细信息,请评论我的回答。