private const int WM_SYSCOMMAND = 0x112; private const int SC_SCREENSE = 0xF140; private void handler( IntPtr Handle, IntPtr Message, IntPtr wParam, IntPtr lParam ) { switch( Message.ToInt32() ) { case WM_SYSCOMMAND: switch( wParam.ToInt32() ) { case SC_SCREENSE: Console.WriteLine("DDD"); allow = false; return; break; } break; } allow = true; return; } protected override void WndProc(ref Message m) { // Check to see if we've received any Windows messages telling us about our hooks if (_GlobalHooks != null) _GlobalHooks.ProcessWindowMessage(ref m); if( alow ) { base.WndProc(ref m); } }(我发现在Web常数)
在构造函数:
但像往常一样启动屏幕保护程序是
如果我使用
_GlobalHooks.GetMsg.GetMsg += new GlobalHooks.WndProcEventHandler(handler);
屏幕保护程序被阻止,但只有当应用程序处于活动状态。你能给我一些提示
您好,
我想坐在那里等待,直到应用程序X窗口弹出,被称为激活()的WndProc例行在Windows服务中使用此代码。然后,它应立即关闭该窗口...代码运行在完全独立的应用程序,而不是从内服务。我明白我需要的形式,以接收窗口事件。这就是为什么我创建一个隐藏的表单,并增加了一些事件查看器日志记录。被执行的代码,但从来没有调用任何的创建(),激活()事件处理程序。该服务设置为"本地系统"运行,并允许"与桌面交互"。创建窗口,然后隐藏。如果我的show(),Windows会显示一个屏幕说,应用程序要显示的东西,整个桌面得到UPSERT ...有没有办法,我可以archieve与我的目标在一个窗口服务
喜克里斯,
伟大的工作。我改装你的代码,形成了一些VNC应用程序的排序报告窗口屏幕的变化和它的作品完美,当你的事情交互。
是DLL也捕捉到屏幕上的gif或Flash这样的事情更新的消息可能吗?
我显示在网络模式下的任务管理和上按一下,我收到消息,就是这样。我似乎没有得到任何油漆消息每次刷新屏幕显示进度。还等任务栏上的变化。有了,我可以看到WM_TIME,但不在这里。 (经常)
这可能与您的DLL,或我需要MOD的东西。
再次感谢您的工作
我见过一个类似的概念在C#编写的使用Win 32 API,在这个环节:
确定我抱怨,它的工作分钟前。我想通了什么问题。
1
建设完成后,你必须要找到WilsonGlobalSystemHooks_src \ GlobalCbtHook \ DEBUG \ GlobalCbtHook.dll,并将它复制到WilsonGlobalSystemHooks_src \ GlobalHooksTest \ BIN \调试
如果您正在构建的发行版本或释放对应
2
确保你运行它方视觉工作室,如果您运行里面VS,将无法赶上消息。
修改日(星期四),7月23日,2009 11:36
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29963-6.html
有点知识好吗
假的
儿子不听话了