如何以编程方式单击自定义MS Office Access功能区上的按钮?

时间:2015-10-02 01:21:55

标签: c# automation ms-access-2010

我在这里寻找一些指导,如果不是如何在C-Sharp(C#)中完成我想做的事情。

我想点击MS Access功能区上的特定按钮。 MS Access窗口具有自定义UI和不同组中的自定义按钮。单击第一组中的按钮时,将打开子窗体窗口。我需要自动执行该特定步骤,并通过单击按钮或任何其他方式打开该子表单,以编程方式打开该子表单。

我尝试使用SendKeys和FindWindow函数执行此操作,但这证明是相当错误的,因为ALT id在MS Access中不断变化而SendKeys将停止工作。

我已经尝试过搜索可以帮助我解决这个问题的文章,但我遇到的是有关如何为MS功能区制作自定义加载项的教程(我不想这样)。

可能有更好的方法来做到这一点,非常感谢任何帮助!

[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string strClassName, int nptWindowName);

[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

Public Void SendTest()
{
IntPtr WinHandle = FindWindow("OMain", 0); // OMain = Window Class --found window by class

 if (WinHandle == IntPtr.Zero)
 {
     MessageBox.Show("Program is not running or could not be detected.");
     return;
 }

SetForegroundWindow(WinHandle);
SendKeys.SendWait("%"); // ALT
SendKeys.SendWait("Y1"); // Y1
SendKeys.SendWait("Y1"); //Y1
}

0 个答案:

没有答案