用户注销后的交互式服务问题?

问题描述

我写了个服务程序,需要和用户交互。程序如下:protectedoverridevoidOnStart(string[]args){if(threadForm==null){threadForm=newThread(newThreadStart(FormShow));threadForm.Start();}}voidFormShow(){GetDesktopWindow();IntPtrhwinstaSave=GetProcessWindowStation();IntPtrdwThreadId=GetCurrentThreadId();IntPtrhdeskSave=GetThreadDesktop(dwThreadId);IntPtrhwinstaUser=OpenWindowStation("WinSta0",false,33554432);if(hwinstaUser==IntPtr.Zero){RpcRevertToSelf();return;}SetProcessWindowStation(hwinstaUser);IntPtrhdeskUser=OpenDesktop("Default",0,false,33554432);RpcRevertToSelf();if(hdeskUser==IntPtr.Zero){SetProcessWindowStation(hwinstaSave);CloseWindowStation(hwinstaUser);return;}SetThreadDesktop(hdeskUser);IntPtrdwGuiThreadId=dwThreadId;Form1f=newForm1();System.Windows.Forms.Application.Run(f);dwGuiThreadId=IntPtr.Zero;SetThreadDesktop(hdeskSave);SetProcessWindowStation(hwinstaSave);CloseDesktop(hdeskUser);CloseWindowStation(hwinstaUser);}Form1中定义注册快捷键RegisterHotKey(Handle,100,9,80);//Alt+Win+P程序运行良好,按Alt+Win+P快捷键程序能够响应。但是当用户注销后又重新登陆时,按Alt+Win+P快捷键程序不再响应。为什么??

解决方案

解决方案二:
RegisterHotKey在哪里写的还有注销哪里代码怎么写的!什么样子???
解决方案三:
RegisterHotKey在Form.load事件中装载。用户注销是windows操作系统中注销用户,可以再以其他用户身份登陆windows系统。
解决方案四:
privatevoidForm1_Load(objectsender,System.EventArgse){RegisterHotKey(Handle,100,9,80);//Alt+Win+P}protectedoverridevoidWndProc(refMessagem){switch(m.Msg){caseWM_HOTKEY:ProcessHotkey(refm);break;}base.WndProc(refm);}privatevoidProcessHotkey(refMessagemsg){intkey=msg.WParam.ToInt32();switch(key){case100:DoSomeThing();break;default:break;}//endswitch}

时间: 2024-11-13 07:56:53

用户注销后的交互式服务问题?的相关文章

win7系统关闭“交互式服务检测”提示窗口的方法

win7系统关闭"交互式服务检测"提示窗口的方法   win7系统 win7定时开机的设置步骤: 此功能需要在BIOS中设置: 步骤一: 启动系统按DEL,进入BIOS设置界面,然后选中 "POWER MANAGEMENT FEATURES" (电源管理设置),按回车.在电源窗口中找到"RESTORE ON AC/POWER LOSS"项,按回车进入 ,然后通过方向键设置其值为"POWER ON". 步骤二: 选中"

windows7交互式服务检测怎么禁用

最近笔记本装了电信天翼上网卡驱动以后,任务栏老是弹出交互式服务检测对话框,非常烦人,在网上查到解决办法,只要在系统服务里禁用Interactive Services Detection服务 即可        方法: 在运行输入:services.msc 打开服务,然后找到Interactive Services Detection,点击停止,然后禁用,就不再提示了 如图:

数据库-安装了SQLSever后没有MSSQLSEVER服务

问题描述 安装了SQLSever后没有MSSQLSEVER服务 我是先装了VS2010,然后从网上下载了个sql sever 2008R2 express with management tools 打开后先安装了实例 然后进行了版本升级.最后安装成功了 数据库软件也可以进去 但是在我的服务里面只有SQLEXPRESS和其他的一些SQL服务 少了 MSSQLSEVER和一个叫什么FULL TEXT的服务 请问是怎么回事, 如何添加上这个MSSQLSEVER服务? 如果没有MSSQLSEVER对

java-关于web中的文件框,上传后如何在服务端获得文件在本地电脑上的位置

问题描述 关于web中的文件框,上传后如何在服务端获得文件在本地电脑上的位置 网页上的文件框选择了本地文件之后,点击上传,能在服务端接收到文件在我本地电脑上的位置么,怎么弄 解决方案 不同的浏览器不一样,不是所有浏览器都可以获得上传文件的本地路径.一个合乎标准的web程序不要期待可以获得文件的本地位置.如果你限定程序只支持pc,windows,使用IE内核,可以用fso获取. 解决方案二: 你获取客户端路径没有意义,安全性问题已经不回发客户端路径了 解决方案三: 获得上传文件file,有方法可以

scp ssh io-SCP执行到100%后卡住,服务端中文件缺少部分

问题描述 SCP执行到100%后卡住,服务端中文件缺少部分 从linux中scp到 cygwn时,时有发生卡在100%的问题 通过查看进程信息,得知client与server端的ssh连接未关闭: 有个方向: 通过查看成功scp文件的strace信息,发现一般read 数据大小为16324.49152,这些都是1024的倍数. 而scp失败的情况下,出现了read 32767(32768=1024*32).同时在网上查到,如果文件里出现''会发生pipe end的情况. 所以猜想文件传输过程中是

简易聊天程序中,C/S架构中C端通过能实现断开重连,为什么重连后不能接受服务端的对象。

问题描述 C/S描述:C端发送文本对象到S端,S端接受文本对象,并负责将文本对象发送到每个C端并显示.问题:现在通过try/catch捕获socket连接异常后,用调用原来的连接实现重连后,S端能接收到C端的对象且能将文本发送到C端.但是C端的接收消息的线程好像不能被重新打开,即C端不能接收S端的对象了.C/S架构中C端通过能实现断开重连,为什么重连后不能接受服务端的对象.importjava.awt.*;importjava.awt.event.*;importjava.io.*;import

从Madison的Mobile Store调用修改后的Web服务

在本节中,您使用 mobile 访问配置文件检索其他信息时所用的 get data 标记与 Web store 中使用的相同.您要更新 mobile store 的 CachedProductDisplay.jsp 以包括扩展的信息.完成定制后,购物者可以在 Product Display 页面看见 "Import information".出于演示目的,这被视为 Fourth channel.这只是 Web 渠道的扩展,并且使用了相同的编码技术. 更新移动商店的 CachedProd

Verizon打造出一个巨型无人机 能在灾难发生后提供移动通信服务

据外媒报道,近日美国电信巨头Verizon测试了具有紧急LTE功能的无人机,可以在自然灾害发生后为一个简单但严重的问题提供解决方案:重新建立通信.这款无人机是Verizon和美国航天技术公司合作的产物.这款无人机的翼展长为17英尺(约5.2米),并能传输4GLTE 信号. Verizon表示周四他们进行了最新的测试:"我们在新泽西州伍德拜恩的Woodbine Municipal Airport 机场测试了Airborne LTE的最新技术,旨在模拟在恶劣天气事件或其他灾难导致传统通信业务中断之后

进入聊天室后能控制服务端不发默认的10条消息吗?

问题描述 退出聊天室后又重新进入聊天室,默认会收到服务端推的10条消息,很多是重复的信息,不想显示,但客户端又不太好判断哪些是初始进入时的消息,请问有办法控制不发这10条消息吗? 解决方案 进入聊天室后,服务端会默认推送10条消息,这个设置不了,是服务端默认推送的