方法一:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);WinXp之前
SendMessage(h, (UInt32)WM_ACTIVATEAPP, IntPtr.Zero, IntPtr.Zero);WinXp之后
SendMessage(h, (UInt32)(WM_USER + 18), IntPtr.Zero, IntPtr.Zero);方法二:
System.Threading.Thread.Sleep(1000);
等待足够长的时间,时间参数自己设,一般500够用方法三:
放到 try 中进行 轮循
直到成功为止
原理:
如果office实例尚未在ROT中注册(例如office刚启动,并未进行过任何失去焦点的操作,如最小化),
则返回0x800401E3错误。为了优化效率,此时尚未加入运行对象表(ROT)
SendMessage 起激法的作用。