c#写服务、exe 可执行程序、windows锁屏的过程中遇到的问题
来源:互联网 发布:58同城合肥找美工 编辑:程序博客网 时间:2024/06/06 02:57
一:需求:用c#语言,vs工具 ,在window服务中实现windows锁屏。
①:创建windows服务,详见http://www.cnblogs.com/Cwj-XFH/p/5129812.html,写的比较清楚。
安装服务:
打开“我的电脑“,在地址栏输入%systemroot%\Microsoft.NET\Framework
从列出来的文件夹中,我们可以看到v1.0.3705 v2.0.50727 v3.0 v3.5
而这些目录显示的最高版本号即本机Microsoft .NET Framework 版本号,也就是3.5的。
打开最高的版本号,赋值InstallUtil.exe程到你dubug\服务名.exe文件目录下.
用管理员权限启动cmd, cd到你服务名.exe文件目录下,用installutil 服务名.exe 安装服务。
打开服务
在服务管理器中,打开你的服务时出现本地计算机上的XXX服务启动后停止,某些服务在未由其它服务或程序使用时将自动停止错误时,右键我的电脑-》管理-》系统工具-》时间查看器->windows日志-》应用程序 可以看到你的服务启动失败的原因。(使用WindowsService服务出现的错误,以及最终的结局方案);
②使用lockworkstation方法进行锁屏。
定义:
[DllImport("User32.Dll", EntryPoint = "LockWorkStation")]
private static extern bool LockWorkStation();
使用
LockWorkStation();
但是发现实现不了锁屏,网上查了以下
原来该方法需要在交互式左面上进行被调用调用。
③:创建.exe可执行文件来实现锁屏功能。
首先需要用vs创建创建windows窗体应用程序,具体怎么创建,可另寻博客。
怎么创建.exe程序可查看http://blog.csdn.net/paullink520/article/details/14170021博客。
用lockworkstation()可实现锁屏的功能。
二:新需求,在原有的基础上再创建一个服务,来监听该exe程序是否运行,如果没有运行,让其运行。
我在服务中用Process.star()方法让exe程序启动,但是界面没有出现锁屏的效果,不过任务管理器中已经有exe程序的的进程。
在网上找了一番。原理win7为了服务安全的考虑,不让服务有这个功能,但是给服务引用Cjwdev.WindowsApi.dll文件
拷贝如下代码就可以开启外部exe程序,实现该有的功能,也可以实现锁屏的功能。
try { string appStartPath = filePath; //exe程序的绝对地址 IntPtr userTokenHandle = IntPtr.Zero; ApiDefinitions.WTSQueryUserToken(ApiDefinitions.WTSGetActiveConsoleSessionId(), ref userTokenHandle); ApiDefinitions.PROCESS_INFORMATION procInfo = new ApiDefinitions.PROCESS_INFORMATION(); ApiDefinitions.STARTUPINFO startInfo = new ApiDefinitions.STARTUPINFO(); startInfo.cb = (uint)Marshal.SizeOf(startInfo); ApiDefinitions.CreateProcessAsUser( userTokenHandle, appStartPath, "", IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref startInfo, out procInfo); if (userTokenHandle != IntPtr.Zero) ApiDefinitions.CloseHandle(userTokenHandle); int _currentAquariusProcessId = (int)procInfo.dwProcessId; } catch (Exception ex) { }
阅读全文
0 0
- c#写服务、exe 可执行程序、windows锁屏的过程中遇到的问题
- python调用windows的exe可执行程序
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- java程序转成可执行exe的问题
- windows可执行程序的执行过程
- 服务过程中会遇到的问题
- 服务过程中会遇到的问题
- 服务过程中会遇到的问题
- 把程序安装成windows服务的过程及遇到的问题
- Python脚本转换成windows的exe可执行程序
- C#学习过程中遇到的问题
- windows服务发布过程中遇到问题的原因分析及解决方式
- Windows操作系统中常见的可执行映像(.exe)和dll
- 用C#写一个简单的WINDOWS服务程序
- 用C#写一个简单的WINDOWS服务程序
- 用C#写一个简单的WINDOWS服务程序
- 用C#写一个简单的WINDOWS服务程序
- windows下exe程序的启动过程
- Kotlin编程之五(函数定义与调用)
- window下phpstudy的nginx配置虚拟主机
- 解决linu apt-get update 问题
- vue前端UI库
- PhpStorm中快捷键总结,附详细使用说明
- c#写服务、exe 可执行程序、windows锁屏的过程中遇到的问题
- jvm组成区域及个区域
- 重装 11G(11.2.0.4) 组件总结(手工建库组件的安装顺序)
- 9.NoSQL数据库第1部分
- 83. Remove Duplicates from Sorted List
- 安装FastDFS问题记录
- eclipse安装Color Theme
- 第五章 Fork/Join Framework(Fork/join 框架)【下】
- yii2 RESTful 接口 api -1 : 接口的基本配置