windwos api问题

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceshoutdown{classProgram{[StructLayout(LayoutKind.Sequential,Pack=1)]internalstructTokPriv1Luid{publicintCount;publiclongLuid;publicintAttr;}[DllImport("kernel32.dll",ExactSpelling=true)]internalstaticexternIntPtrGetCurrentProcess();[DllImport("advapi32.dll",ExactSpelling=true,SetLastError=true)]internalstaticexternboolOpenProcessToken(IntPtrh,intacc,refIntPtrphtok);[DllImport("advapi32.dll",SetLastError=true)]internalstaticexternboolLookupPrivilegeValue(stringhost,stringname,reflongpluid);[DllImport("advapi32.dll",ExactSpelling=true,SetLastError=true)]internalstaticexternboolAdjustTokenPrivileges(IntPtrhtok,booldisall,refTokPriv1Luidnewst,intlen,IntPtrprev,IntPtrrelen);[DllImport("user32.dll",ExactSpelling=true,SetLastError=true)]internalstaticexternboolExitWindowsEx(intflg,intrea);internalconstintSE_PRIVILEGE_ENABLED=0x00000002;internalconstintTOKEN_QUERY=0x00000008;internalconstintTOKEN_ADJUST_PRIVILEGES=0x00000020;internalconststringSE_SHUTDOWN_NAME="SeShutdownPrivilege";internalconstintEWX_LOGOFF=0x00000000;internalconstintEWX_SHUTDOWN=0x00000001;internalconstintEWX_REBOOT=0x00000002;internalconstintEWX_FORCE=0x00000004;internalconstintEWX_POWEROFF=0x00000008;internalconstintEWX_FORCEIFHUNG=0x00000010;privatestaticvoidDoExitWin(intflg){TokPriv1Luidtp;IntPtrhproc=GetCurrentProcess();IntPtrhtok=IntPtr.Zero;OpenProcessToken(hproc,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,refhtok);tp.Count=1;tp.Luid=0;tp.Attr=SE_PRIVILEGE_ENABLED;LookupPrivilegeValue(null,SE_SHUTDOWN_NAME,reftp.Luid);AdjustTokenPrivileges(htok,false,reftp,0,IntPtr.Zero,IntPtr.Zero);ExitWindowsEx(flg,0);}publicstaticvoidMain(){Console.WriteLine("正在关机……");//修改EWX_SHUTDOWN或者EWX_LOGOFF,EWX_REBOOT等实现不同得功能。//在XP下可以看到帮助信息,以得到不同得参数//SHUTDOWN/?DoExitWin(EWX_SHUTDOWN);}}}这是一个windows关机程序,我想问:internalconstintSE_PRIVILEGE_ENABLED=0x00000002;internalconstintTOKEN_QUERY=0x00000008;internalconstintTOKEN_ADJUST_PRIVILEGES=0x00000020;internalconststringSE_SHUTDOWN_NAME="SeShutdownPrivilege";internalconstintEWX_LOGOFF=0x00000000;internalconstintEWX_SHUTDOWN=0x00000001;internalconstintEWX_REBOOT=0x00000002;internalconstintEWX_FORCE=0x00000004;internalconstintEWX_POWEROFF=0x00000008;internalconstintEWX_FORCEIFHUNG=0x00000010;这些"值",比喻:把"0x00000001"赋值给EWX_SHUTDOWN,这个值是怎么来的?自己可以糊乱加上去吗(当然是int类型)?

解决方案

解决方案二:
这些值应该是消息常量标识符,不是随便写的,你google以下window系统消息大全就能查到那些值都是什么意思了。
解决方案三:
在网上找不到啊,还有其它答案吗,就没有人知道吗,唉,我自己再顶下

时间: 2024-12-05 08:43:01

windwos api问题的相关文章

第六章-文件管理(二)(5)

6.4.3 文件控件的联系 在本例中我们使用了一组新的控件:TabSet.DirectoryOutline.FileListBox,用于显示和选择驱动器.目录和文件.与(6.3)中所用方法相比,使用这一组控件需要少量的代码支持. TabSet与DirectoryOutline的联系在TabSet的Click事件处理过程中建立: With DriveTabSet do DirectoryOutline.Drive := Tabs[TabIndex][1]; DirectoryOutline与Fil

android 的NDK在Windwos环境搭建

NDK的Windwos环境搭建Eclipse版本是3.6以上的    一.下载android NDK您可以下载NDK r4  for Windows或NDK r5  for Windows安装包,下载地址:地址:http://developer.android.com/sdk/ndk/index.html   下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图:   Android NDK包含build.docs.samples.sour

计算机科学-windows下的api磁盘的读写

问题描述 windows下的api磁盘的读写 要有windows.h文件.文件能运行 必须有creatfile devicectrlo readfile writefilepoint 要源代码.希望大神帮忙 解决方案 Windwos 下是不允许直接操作硬件的,但可以通过 IOCTRL 来控制驱动实现对硬件的操作.你是想要通过 IOCTRL 函数来直接对磁盘进行读写吗?如果是,则不仅仅需要这些 API 函数,还需要驱动的支持. 解决方案二: 不知道你的目的是什么,要达到什么效果,它有一些标准的 I

大神们!!百度地图api中标签信息的抓取啊。前js后C#。

问题描述 大神们!!百度地图api中标签信息的抓取啊.前js后C#. 是这样的,一个地图api的调用,我需要获取到百度地图api上的搜索出来的信息,可是获取不到啊啊啊... 解决方案 js版的百度地图还是其他版本的? js版本的,C#是运行于服务器端的,无法直接获取客户端的数据.js搜索后你自己即那个解码后的信息用ajax回发到服务器进行获取

使用Java API处理WebSphere MQ大消息

WebSphere MQ 中处理大消息的方法 使用过 WebSphere MQ 的读者都知道,WebSphere MQ 对处理的单条消息的大小是有限制的,目前支持的最大消息是100M,而且,随着消息大小的增大,WebSphere MQ 处理的性能也会随之下降.从最佳实践来说,WebSphere MQ 传输大小为几K的消息其效率是最高的.那如何使 WebSphere MQ 能高效的处理大消息呢? WebSphere MQ 提供了处理大消息的两种方法:消息分片和消息分组.下面我们来看在使用 Java

如何从k8s集群外的机器上调用k8s的API(可调用多个k8s的apiserver)

因为公司项目需要,k8s的集群管理由其它人负责,而我们的自动化部署平台需要从k8s集群外的机器上调用k8s主节点的apiserver提供的API. 由于集群是用kubeadm安装的,证书验证齐全,那么,调用API时,只能通过kubectl proxy的方式进行调用管理. 操作步骤如下:   一,在集群外的机器上安装好kubectl的rpm包. rpm -ivh kubectl-1.7.0-0.x86_64.rpm 二,将k8s上在安装过程中生成的config文件重命名,CP到操作用户的家目录的.

WKWebView API精讲(OC)

前言 鉴于LL同志对笔者说:"能不能写个OC版本的WKWebView的使用教程?",还积极打赏了30RMB,笔者又怎么好意思拒绝呢,于是才有了下文. 所有看到本篇文章的同志们,应该要感谢LL同志,更要向LL同志学习,积极打赏! WKWebView 看看WKWebView的头文件声明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常

问题描述 使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常 我使用osgi的api写了osgi框架的启动程序,然后使用java -jar 命令运行这个jar包报空指针异常,我在eclipse中运行一切正常,请问这是为什么呀

用 Flask 来写个轻博客 (32) — 使用 Flask-RESTful 来构建 RESTful API 之一

目录 目录 前文列表 扩展阅读 RESTful API REST 原则 无状态原则 面向资源 RESTful API 的优势 REST 约束 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World! 用 Flask 来写个轻博客 (3) - (M)VC_连接 MySQL 和 SQLAlchemy 用 Flask 来写个轻博客 (4) - (M)VC_创建数据模型和表 用 Flask 来写个轻博客 (5) - (M)VC_SQ