整理出来的一个windows关机、锁定、重启、注销 API调用 .

C#应用-系统关机、注销等操作 本文讲解C#代码实现电脑的关机,重启,注销,锁定,休眠,睡眠等操作。 阅读详情
 
  1. using System.Runtime.InteropServices;  
  2.   
  3. namespace HookDemo  
  4. {  
  5.     class WindowsExit  
  6.     {  
  7.         [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  8.         private struct TokPriv1Luid  
  9.         {  
  10.             public int Count;  
  11.             public long Luid;  
  12.             public int Attr;  
  13.         }  
  14.         [DllImport("kernel32.dll", ExactSpelling = true)]  
  15.         private static extern IntPtr GetCurrentProcess();  
  16.   
  17.         [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]  
  18.         private static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);  
  19.   
  20.         [DllImport("advapi32.dll", SetLastError = true)]  
  21.         private static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);  
  22.   
  23.         [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]  
  24.         private static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall,  
  25.             ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);  
  26.   
  27.         [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]  
  28.         private static extern bool ExitWindowsEx(int DoFlag, int rea);  
  29.         [DllImport("user32.dll")]  
  30.         public static extern void LockWorkStation();  
  31.   
  32.         private const int SE_PRIVILEGE_ENABLED = 0x00000002;  
  33.         private const int TOKEN_QUERY = 0x00000008;  
  34.         private const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;  
  35.         private const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";  
  36.         private const int EWX_LOGOFF = 0x00000000;  
  37.         private const int EWX_SHUTDOWN = 0x00000001;  
  38.         private const int EWX_REBOOT = 0x00000002;  
  39.         private const int EWX_FORCE = 0x00000004;  
  40.         private const int EWX_POWEROFF = 0x00000008;  
  41.         private const int EWX_FORCEIFHUNG = 0x00000010;  
  42.   
  43.         private static bool DoExitWin(int DoFlag)  
  44.         {  
  45.             bool ok;  
  46.             TokPriv1Luid tp;  
  47.             IntPtr hproc = GetCurrentProcess();  
  48.             IntPtr htok = IntPtr.Zero;  
  49.             ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);  
  50.             tp.Count = 1;  
  51.             tp.Luid = 0;  
  52.             tp.Attr = SE_PRIVILEGE_ENABLED;  
  53.             ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid);  
  54.             ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);  
  55.             ok = ExitWindowsEx(DoFlag, 0);  
  56.             return ok;  
  57.         }  
  58.   
  59.         /// <summary>   
  60.         /// 锁定计算机   
  61.         /// </summary>   
  62.         public static void Lock()  
  63.         {  
  64.             LockWorkStation();  
  65.         }  
  66.   
  67.         /**/  
  68.         /// <summary>   
  69.         /// 重新启动   
  70.         /// </summary>   
  71.         public static bool Reboot()  
  72.         {  
  73.             return DoExitWin(EWX_FORCE | EWX_REBOOT);  
  74.         }  
  75.   
  76.         /**/  
  77.         /// <summary>   
  78.         /// 关机   
  79.         /// </summary>   
  80.         public static bool PowerOff()  
  81.         {  
  82.             return DoExitWin(EWX_FORCE | EWX_POWEROFF);  
  83.         }  
  84.   
  85.         /**/  
  86.         /// <summary>   
  87.         /// 注销   
  88.         /// </summary>   
  89.         public static bool LogOff()  
  90.         {  
  91.             return DoExitWin(EWX_FORCE | EWX_LOGOFF);  
  92.         }  
  93.     }  
  94. }  
C#实现计算机注销、关闭与重启功能完整方案 在现代桌面应用程序开发中,实现对操作系统底层功能的控制是一项重要且实用的技术能力。其中,注销、关闭和重启计算机作为系统级操作,广泛应用于企业管理系统、远程维护工具以及自动化运维平台中。本章将从整体视角出发,介绍C#语言在Windows平台上进行系统操作的基本原理与技术背景。重点讲解.NET框架下如何通过调用外部命令或使用WMI(Windows Management Instrumentation)接口实现对电源管理功能的控制。 阅读详情

相关推荐

windows锁屏API

实现锁屏的最简单的代码,适用于windows系统

强制关机/重启/注销

Windows关机函数 最常用:  ExitWindowsEx(EWX_SHUTDOWN, 0);  ExitWindowsEx(EWX_REBOOT, 0);  其他参数: EWX_FORCE EWX_LOGOFF EWX_POWEROFF  windows95/98/me中直接调用就可以了 ExitWindowsEx(EWX_SHUTDOWN, 0); //关机 ExitWindow

丰空岛主(Vega Prime,Android,LabWindows,ThreeJS,Python,OpenCV) 1566

MFC通过windowsAPI控制计算机关机,注销,重启

MFC程序, 通过windows API 控制计算机,关机, 注销, 重启

整理出来的一个windows关机、锁定、重启、注销 API调用

using System.Runtime.InteropServices;    namespace HookDemo  {      class WindowsExit      {          [StructLayout(LayoutKind.Sequential, P

jie566的专栏 479

关机、注销、登录、锁屏、资源管理器重启等消息

windows重启、关机、注销、登录、锁屏、资源管理器重启等消息

visual c++实现断网-禁用网卡,禁用网络.zip

vc实现禁用网卡,禁用网络.zip

API函数大全(转载)

1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetCo

1万+

在C++程序中开启和禁用Windows设备的无线网卡的方法

主要介绍了在C++程序中开启和禁用Windows设备的无线网卡的方法,包括一些常见错误的分析与解决,需要的朋友可以参考下

用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠

简介 本文讲述了用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠。 如何实现 首先,使用 using 语句添加我们需要的命名空间: usingSystem.Diagnostics; usingSystem.Runtime.InteropServices; 关机 代码...

aizhanfen6485的博客 741

青龙面板实战:用快手极速版脚本日赚XX元的核心参数解析

本文深入解析了青龙面板运行快手极速版脚本的核心参数配置,旨在帮助进阶用户提升收益稳定性。重点剖析了设备标识符(did)的获取原理、多账号Cookie的精准拼接规则,以及如何通过科学设置定时任务频率来量化并优化收益,实现细水长流的稳定收益。

weixin_29310605的博客 1075

Stata实战:DID平行趋势检验完整操作指南(附reghdfe+coefplot代码)

本文提供了一份使用Stata进行DID平行趋势检验的完整实战指南。文章详细讲解了从数据准备、生成相对时间变量,到利用reghdfe命令构建动态效应模型,以及使用coefplot命令进行结果可视化的全流程操作。核心在于通过检验政策前交互项的显著性,验证处理组与对照组是否满足平行趋势假设,为后续因果推断奠定可靠基础。

weixin_29231725的博客 1381

锁定计算机 注销 休眠,C#下计算机锁定, 注销, 重启, 关机, 休眠, 待机

【Introduction】This article is about locking, logging off , rebooting, shutting down, hibernating and putting the system on stand by mode in .Net. Here we are going to use both unmanaged code and .Net ...

weixin_33235339的博客 304

MMDetection框架入门教程(完全版)

  网上MMDetection的教程看似有很多,但感觉都不成系统,看完一圈下来还是不知道MMDetection要怎么用。这里还是推荐直接跟着官方教程,结合源码学习MMDetection,相关链接汇总如下: 官方教程 - MMCV 官方教程 - MMDetection 官方教程 - 不得不知的 MMDetection 学习路线(个人经验版) 西安交大课件 - mmdetection教程(使用篇)   本文会介绍如何在MMDetection中从头开始搭建一套属于自己的算法。前几篇博客算是本人学习过...

Sual 10万+

VC++ 屏幕锁定、关机、托盘工具源代码

VC++ MFC应用程序,实现了屏幕锁定、系统关机和重启、隐藏到系统托盘等功能。程序采用对话框界面,支持开机自启动设置。

jghhh01的博客 229

深度剖析OpenHarmony AI Engine:开发板端侧大模型推理插件机制全链路拆解

/ 加载动态库// 获取符号地址// 关闭动态库// 获取错误信息public:// 单例获取// 销毁实例// 加载插件// 卸载插件private:// 获取插件实例// 插件映射锁// 插件映射表public:Plugin();~Plugin();// 加载算法// 卸载算法// 获取算法实例// 设置算法实例private:// 算法接口指针// 动态库句柄// 算法ID// 版本信息// 配置信息字符串int len;

m0_67505153的博客 509

芒果YOLO11改进59:分类损失函数Loss篇FocalLoss:即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

包括YOLOv5、YOLOv7、YOLOv8等模型改进 551

C#下计算机锁定, 注销, 重启, 关机, 休眠, 待机

【Introduction】This article is about locking, logging off , rebooting, shutting down, hibernating and putting the system on stand by mode in .Net. Here we are going to use both unmanaged code and .Net

小菜蝶 .net DotNet 1402

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 298
上一篇: SQL中的CASE WHEN用法 .
下一篇: ORA-01461: can bind a long value only for insert into a long
王三水
博客等级 码龄17年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值