好的,所以我有三个Microsoft Access数据库。我希望能够以编程方式在这些之间切换。我有一个void方法,它接受一个名为dbName(我的数据库名称)的字符串参数。

public void SwitchDatabase(string dbName)
{

}

我知道我的Access数据库的MainWindowTitle是什么,并且每个数据库都有一个不同的MainWindowTitle,因此我可以创建Process类的数组并使之等于System.Diagnostics.Process.GetProcesses()。然后,我可以遍历正在运行的进程,直到找到ProcessName为MSACCESS且MainWindowTitle正确的进程,如下所示:
Process[] processList = Process.GetProcesses();

foreach (Process theProcess in processList)
{
    string processName = theProcess.ProcessName;
    string mainWindowTitle = theProcess.MainWindowTitle;
}

找到此文件后,便可以获取进程ID,现在要将这个进程作为事件窗口。我该怎么做呢?

谢谢

最佳答案

试试这个:

[DllImport("user32.dll", CharSet=CharSet.Auto,ExactSpelling=true)]
public static extern IntPtr SetFocus(HandleRef hWnd);


[TestMethod]
public void PlayAround()
{
    Process[] processList = Process.GetProcesses();

    foreach (Process theProcess in processList)
    {
        string processName = theProcess.ProcessName;
        string mainWindowTitle = theProcess.MainWindowTitle;
        SetFocus(new HandleRef(null, theProcess.MainWindowHandle));
    }

}

10-06 16:14