问题梗概:
在没有破解Dev软件的机器上运行包含Dev控件的程序,在软件启动,开始初始化内部dev控件的时候会弹出Dev 的Information界面。对于编程人员来说这毫无关系,可对于客户来说还是不满意的。半年前就想解决这个问题可一直没有实践,前段时间研究了下Windows消息,觉得利用消息可以解决这个问题,正好今天拿出时间试试,先说结果成功了,不过有点小瑕疵,就是Information会闪现,有机会再研究吧。具体代码如下:
代码:
引用库函数
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll", EntryPoint = "PostMessage")]
private static extern void PostMessage(IntPtr hwnd, int msg, int wParam, int lParam);
private const int WM_CLOSE = 0x0010;
private int m_nWaitTime = 0;
在初始化组件前创建线程遍历窗体
Thread thread = new Thread(FindFormThread);
thread.Start();
InitializeComponent();
private void FindFormThread()
{
IntPtr handle = FindWindow(null, "Information");
while (handle == IntPtr.Zero && m_nWaitTime <= 30000)
{
Thread.Sleep(1);
handle = FindWindow(null, "Information");
m_nWaitTime++;
}
PostMessage(handle, WM_CLOSE, 0, 0);
}
原理很简单,就是等待dev的Information出现后,在线程里面找到并发送关闭消息
希望高人指示怎么解决闪现问题,或者其他方法避免Information窗体出现