首页 新闻 会员 周边

求助windows 服务无法获取窗体应用程序?

0
[已关闭问题] 解决于 2017-02-08 10:23

我有一个后台跑的windows服务,以前我用控制台程序来启动调试,通过获取窗体句柄,向窗体应用程序PostMessage,已经实现,但是现在如果我不用控制台程序启动,而是使用标准的windows服务,窗体应用程序则没有输出,难道windows服务不能跟窗体应用程序通信?

关键代码如下

这里通过arg参数动态实现是以windows服务方式启动,还是以控制台方式启动服务

下面是查找窗体的代码,通过控制台方式已经测试通过

private IntPtr ip = IntPtr.Zero;
        const int WM_COPYDATA = 0x004A;
        int WINDOW_HANDLER = 0;

        /// <summary>
        ///查找窗体
        /// </summary>
        /// <param name="lpClassName"></param>
        /// <param name="lpWindowName"></param>
        /// <returns></returns>
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        private static extern int FindWindow(string lpClassName, string lpWindowName);

        /// <summary>
        /// 消息
        /// </summary>
        public struct COPYDATASTRUCT
        {
            public IntPtr dwData;
            public int cbData;
            [MarshalAs(UnmanagedType.LPStr)]
            public string lpData;
        }
MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2017-02-06 12:44
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册