Shutdown reboot logoff Windows 98/ME/XP

将数据集转换为Excel格式的一个实现 { 将数据集转换为Excel格式的一个实现 在做项目时,很多情况下,客户需要对我们保存在数据库中的数据再加工再利用, 如财务需要一份今年财务情况的电子报表,总经理需要今年销售情况的一个电子报表。 我们的程序可以把这些数据用DBGrid显示出来,也可以用QuickReport打印出来,但是 这些数据都不能被客户自由的完整地拷贝,没有独立的电子化形式,因而不能被独立地使用。 要把数据库中的数据,在De 阅读详情
{1.} 

function MyExitWindows(RebootParam: Longword): Boolean; 
var 
  TTokenHd: THandle; 
  TTokenPvg: TTokenPrivileges; 
  cbtpPrevious: DWORD; 
  rTTokenPvg: TTokenPrivileges; 
  pcbtpPreviousRequired: DWORD; 
  tpResult: Boolean; 
const 
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; 
begin 
  if Win32Platform = VER_PLATFORM_WIN32_NT then 
  begin 
    tpResult := OpenProcessToken(GetCurrentProcess(), 
      TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, 
      TTokenHd); 
    if tpResult then 
    begin 
      tpResult := LookupPrivilegeValue(nil, 
                                       SE_SHUTDOWN_NAME, 
                                       TTokenPvg.Privileges[0].Luid);
      TTokenPvg.PrivilegeCount := 1; 
      TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 
      cbtpPrevious := SizeOf(rTTokenPvg); 
      pcbtpPreviousRequired := 0; 
      if tpResult then 
        Windows.AdjustTokenPrivileges(TTokenHd,
                                      False, 
                                      TTokenPvg, 
                                      cbtpPrevious, 
                                      rTTokenPvg, 
                                      pcbtpPreviousRequired); 
    end; 
  end; 
  Result := ExitWindowsEx(RebootParam, 0); 
end; 

// Example to shutdown Windows: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  MyExitWindows(EWX_POWEROFF or EWX_FORCE); 
end; 

// Example to reboot Windows: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  MyExitWindows(EWX_REBOOT or EWX_FORCE); 
end; 


// Parameters for MyExitWindows() 


{************************************************************************} 

{2. Console Shutdown Demo} 

program Shutdown; 
{$APPTYPE CONSOLE} 

uses 
  SysUtils, 
  Windows; 

// Shutdown Program 
// (c) 2000 NeuralAbyss Software 
// www.neuralabyss.com 

var 
  logoff: Boolean = False; 
  reboot: Boolean = False; 
  warn: Boolean = False; 
  downQuick: Boolean = False; 
  cancelShutdown: Boolean = False; 
  powerOff: Boolean = False; 
  timeDelay: Integer = 0; 

function HasParam(Opt: Char): Boolean; 
var 
  x: Integer; 
begin 
  Result := False; 
  for x := 1 to ParamCount do 
    if (ParamStr(x) = '-' + opt) or (ParamStr(x) = '/' + opt) then Result := True; 
end; 

function GetErrorstring: string; 
var 
  lz: Cardinal; 
  err: array[0..512] of Char; 
begin 
  lz := GetLastError; 
  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, lz, 0, @err, 512, nil); 
  Result := string(err); 
end; 

procedure DoShutdown; 
var 
  rl, flgs: Cardinal; 
  hToken: Cardinal; 
  tkp: TOKEN_PRIVILEGES; 
begin 
  flgs := 0; 
  if downQuick then flgs := flgs or EWX_FORCE; 
  if not reboot then flgs := flgs or EWX_SHUTDOWN; 
  if reboot then flgs := flgs or EWX_REBOOT; 
  if poweroff and (not reboot) then flgs := flgs or EWX_POWEROFF; 
  if logoff then flgs := (flgs and (not (EWX_REBOOT or EWX_SHUTDOWN or EWX_POWEROFF))) or 
      EWX_LOGOFF; 
  if Win32Platform = VER_PLATFORM_WIN32_NT then 
  begin 
    if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, 
      hToken) then 
      Writeln('Cannot open process token. [' + GetErrorstring + ']') 
    else 
    begin 
      if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then 
      begin 
        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 
        tkp.PrivilegeCount           := 1; 
        AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl); 
        if GetLastError <> ERROR_SUCCESS then 
          Writeln('Error adjusting process privileges.'); 
      end 
      else 
        Writeln('Cannot find privilege value. [' + GetErrorstring + ']'); 
    end; 
    {   if CancelShutdown then 
          if AbortSystemShutdown(nil) = False then 
            Writeln(/'Cannot abort. [/' + GetErrorstring + /']/') 
          else 
           Writeln(/'Cancelled./') 
       else 
       begin 
         if InitiateSystemShutdown(nil, nil, timeDelay, downQuick, Reboot) = False then 
            Writeln(/'Cannot go down. [/' + GetErrorstring + /']/') 
         else 
            Writeln(/'Shutting down!/'); 
       end; 
    } 
  end; 
  //     else begin 
  ExitWindowsEx(flgs, 0); 
  //     end; 
end; 

begin 
  Writeln('Shutdown v0.3 for Win32 (similar to the Linux version)'); 
  Writeln('(c) 2000 NeuralAbyss Software. All Rights Reserved.'); 
  if HasParam('?') or (ParamCount = 0) then 
  begin 
    Writeln('Usage:    shutdown [-akrhfnc] [-t secs]'); 
    Writeln('                  -k:      don''t really shutdown, only warn.'); 
    Writeln('                  -r:      reboot after shutdown.'); 
    Writeln('                  -h:      halt after shutdown.'); 
    Writeln('                  -p:      power off after shutdown'); 
    Writeln('                  -l:      log off only'); 
    Writeln('                  -n:      kill apps that don''t want to die.'); 
    Writeln('                  -c:      cancel a running shutdown.'); 
  end 
  else 
  begin 
    if HasParam('k') then warn := True; 
    if HasParam('r') then reboot := True; 
    if HasParam('h') and reboot then 
    begin 
      Writeln('Error: Cannot specify -r and -h parameters together!'); 
      Exit; 
    end; 
    if HasParam('h') then reboot := False; 
    if HasParam('n') then downQuick := True; 
    if HasParam('c') then cancelShutdown := True; 
    if HasParam('p') then powerOff := True; 
    if HasParam('l') then logoff := True; 
    DoShutdown; 
  end; 
end. 




   
// Parameters for MyExitWindows() 


{EWX_LOGOFF 

Shuts down all processes running in the security context of the process that called the 
ExitWindowsEx function. Then it logs the user off. 

Alle Prozesse des Benutzers werden beendet, danach wird der Benutzer abgemeldet. 

EWX_POWEROFF 

Shuts down the system and turns off the power. 
The system must support the power-off feature. 
Windows NT/2000/XP: 
The calling process must have the SE_SHUTDOWN_NAME privilege. 

F?hrt Windows herunter und setzt den Computer in den StandBy-Modus, 
sofern von der Hardware unterstützt. 

EWX_REBOOT 

Shuts down the system and then restarts the system. 
Windows NT/2000/XP: The calling process must have the SE_SHUTDOWN_NAME privilege. 

F?hrt Windows herunter und startet es neu. 

EWX_SHUTDOWN  

Shuts down the system to a point at which it is safe to turn off the power. 
All file buffers have been flushed to disk, and all running processes have stopped. 
If the system supports the power-off feature, the power is also turned off. 
Windows NT/2000/XP: The calling process must have the SE_SHUTDOWN_NAME privilege. 

F?hrt Windows herunter. 

  
EWX_FORCE  

Forces processes to terminate. When this flag is set, 
the system does not send the WM_QUERYENDSESSION and WM_ENDSESSION messages. 
This can cause the applications to lose data. 
Therefore, you should only use this flag in an emergency. 

Die aktiven Prozesse werden zwangsweise und ohne Rückfrage beendet. 

EWX_FORCEIFHUNG 

Windows 2000/XP: Forces processes to terminate if they do not respond to the 
WM_QUERYENDSESSION or WM_ENDSESSION message. This flag is ignored if EWX_FORCE is used. 

Windows 2000/XP: Die aktiven Prozesse werden aufgefordert, sich selbst zu beenden und 
müssen dies best?tigen. Reagieren sie nicht, werden sie zwangsweise beendet. } 
复制DBGrid当前行到剪切板 uses    Clipbrd;  {-------------------------------------------------------------------------------    过程名:    CopyCurrentDBLine    作者:      Bird    日期:      2005.10.16    参数:      DBGrid: TDBGrid    返 阅读详情

相关推荐

线上专利申请(超详细)| 签名确认

在【法人登录】页面点击【证书登录】按钮,弹出证书登录提示框,点击【确 认】按钮,进入到输入证书密码页面,点击【取消】按钮,取消本次操作。企业在提交申请时,需要增加签名,如使用企业账户点击提交,会弹出“法人、代理机构不能签名,请使用经办人签名”,这个时候就需要换个账号了。在需要签名时,将专利官网的登录方式点击法人登录,选择扫码登录,使用移动端经办人账户的扫一扫功能扫描登录。登录完成后,再点击签名,使用移动端扫一扫功能,扫描签名,输入证书号,确认签名,并提交。最后,祝大家的申请都成功!

weixin_62112323的博客 9110

Windows7中7种不同关机模式介绍

在Win7关机选项中一共有7种关闭方式,分别为 Switch user(切换用户), Log off(登出), Lock(锁定), Restart(重启), Sleep(睡眠), Hibernate(休眠), Shut down(关机).下面分别介绍一下它们的区别:1.Switch user, Log off, LockWin7支持多用户登录。也就是说,用户可以以管理员或是其他

灰太狼的博客 1万+

AI Agent Harness Engineering 创业PMF验证工具:用户满意度+留存率+业务指标监测表

在AI Agent创业的浪潮中,我们看到了无数产品如雨后春笋般涌现,但最终能够真正找到PMF并存活下来的却寥寥无几。根据CB Insights的数据,创业公司失败的首要原因(占42%)是"没有市场需求"——换句话说,就是没有找到PMF。AI Agent产品由于其特殊性(交互范式的变革、技术复杂度高、用户期望管理困难等),PMF验证变得更加具有挑战性。传统的SaaS产品PMF验证框架虽然有参考价值,但无法完全适用于AI Agent这种新型产品形态。

AI智能探索者的博客 331

C++ 实现系统注销,重启,关机的方法

实现这一功能很简单,主要需要调用一个系统API ExitWindowsEx 功能就是,注销当前用户,关闭系统,或者重新启动系统。 它会发送一个WM_QUERYENDSESSION消息给所有的应用程序,让他们决定是不是可以被关闭。 函数原型 BOOL WINAPI ExitWindowsEx( __in UINT uFlags, __in DWORD dwReason

白话机器学习 8103

LSTM 怎么进行二维数据的输入呢

尽管LSTM并不天然地适用于处理图像、视频等二维数据,但通过时间序列化、卷积特征提取和双向LSTM等方法,我们可以将二维数据转化为适合LSTM输入的形式,从而利用LSTM的强大记忆能力和长期依赖学习能力对二维数据进行建模。未来的研究方向可以考虑将LSTM与其他模型结合,例如将LSTM与卷积神经网络(Convolutional Neural Network, CNN)结合,利用CNN提取图像的空间特征,然后利用LSTM学习时间序列的长期依赖;

xiamu_CDA的博客 1037

GBase8a-GDCA认证考试-复习参考题

为提升产品服务水平定期举办GBase产品认证培训,培训更多GBase数据库专业人员,满足用户快速成长的业务需求,建设GBase产品生态。请注意甄别,根据所学知识综合判断,正确率97%(97分)。

weixin_41826637的博客 2373

cmd 定时关机 命令

定时关机: 在开始运行里输入at 23:00 shutdown -s 就是在23:00的时候关机意思,要注意的是中间有空格"s"就是"shutdown"---关闭的意思.同样可以推出定时重启的命令at 23:00 shutdown -r"r"是"restart" 重启的意思.定时注销的命令是:at 23:00 shutdown -l"l"是"logoff"---注销的意思,...

dengmianni3180的博客 638

最新Python爬虫实战(入门爬虫篇)——案例3:爬取二次元cos图片批量下载到本地(附上完整爬虫代码)

本次案例通过Python爬虫技术实现了二次元图片的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖“请求列表页→提取详情页URL→请求详情页→提取图片链接→保存图片”的完整流程,与豆瓣案例的核心逻辑和格式完全对齐。学习重点包括:抓包工具定位多层级数据源、正则表达式匹配复杂链接、模拟请求头绕过反爬机制、文件名安全处理及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践,帮助学习者掌握多层级页面爬取的核心逻辑。

努力让自己发光,对的人才能迎着光而来 14万+

Windows关机函数ExitWindowsEx使用大全(适用Windows所有操作平台)

 {================================================================控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数。如果Complile时提示EWX_XXXX未定义,那么请手动定义这几个常数,

小宇飞刀的BLOG 1043

大数据与宠物:健康监测数据分析

随着全球宠物市场规模的快速增长(2023年全球宠物产业规模已达3500亿美元),宠物健康管理需求呈现指数级上升。传统宠物医疗依赖定期体检和症状观察,存在滞后性和主观性缺陷。本文聚焦如何通过物联网(IoT)设备采集宠物生理数据(体温、心率、活动量等),利用大数据分析技术构建实时健康监测系统,实现宠物健康状态的动态评估、异常预警和疾病预测。研究范围涵盖数据采集技术、数据预处理方法、机器学习模型构建及实际应用场景落地。背景介绍:明确研究目的、目标读者及核心术语核心概念与联系。

2502_91592937的博客 1067

【AI智能体】AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

congge 3666

VC------Windows关机函数,休眠函数使用大全(适用Windows所有操作平台)

关闭Windows函数ExitWindowsEx(UINT     uFlag,DWORD:dwReserved)说明: 控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等,     ExitWindowsEx(UINT     uFlags,DWORD     dwReserved);是实现这一功能的API函数。如果Complile时提示EWX_XXXX未定义,那么请手

梦想---软件设计师 6492

芒果YOLOv7改进48:主干篇:独家首发改进:目标检测新范式骨干PPHGNetv2改进版,充分融合信息特征,提升YOLOv7检测能力

YOLOv7代码改进实践 | 独家首发改进 PPHGNetv2 改进版结构

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

Windows关机函数ExitWindowsEx使用大全-Delphi(适用Windows所有操作平台)

{=======================================================================================================================关闭Windows函数ExitWindowsEx(UINT uFlag,DWORD:dwReserved)说明: 控制WINDOWS的开关...

weixin_30325487的博客 215

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

DELPHI实现关机,兼容全部WINDOWS系统

关闭Windows函数ExitWindowsEx(UINT uFlag,DWORD:dwReserved)说明:   控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数。如果Complile时提示EWX_XXXX未定义,那么请手动定义这几个常数,默认情

wwb0111的专栏 921

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

STM32CubeMX配置LAN8720以太网:RMII时钟与PHY地址避坑指南

以太网通信在嵌入式系统中依赖MAC与PHY的稳定协作,其中RMII接口的50MHz参考时钟和PHY地址配置是常见故障点。时钟方案选择外部晶振、MCO输出或PHY自产,直接影响通信稳定性;PHY地址由硬件引脚决定,需实测确认。在STM32CubeMX中,开发者常因默认GPIO速度、RMII模式误选或PHY地址错误导致初始化失败。本文针对LAN8720,详解时钟方案对比、PHY地址确定方法及CubeMX隐藏配置,结合示波器与寄存器调试,帮助快速定位并解决以太网不通问题。

weixin_33755557的博客 370

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

FindWindowEX应用实例二则

函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。    函数原型:HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);    参数;    hwndPar

简简单单 4692

回车键替换TAB

    在Delphi编程中,如何实现用回车键在若干个编辑窗口中切换?比如,姓名和密码两个输入窗口,输入姓名后,只能用Tab键或用鼠标定位光标到密码输入窗口,我想用回车键切换窗口。 回答:     先将窗体的KeyPreview属性设为True。然后在FormKeyPress事件中加入以下代码:     procedure TForm1.FormKeyPress(Sender: TObject;

简简单单 4230

Delphi水平测试试卷(初中级)样题

Delphi水平测试试卷(初中级)样题一. 选择题(共40道)1.  用户开发程序时需要经常在窗体和编辑器窗口之间来回切换,可使用快捷键()。A、 F12和F11       B、 F12和F13       C、 F12和Ctrl+F12      D、 F12和Alt+F12       E、F12和Shift+F122.  某函数如下:Function c

简简单单 4110

DBGrid 应用全书

{***********************************************************************} {*在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。 {*但是 DBGrid 缺省的外观未免显得单调和缺乏创意。其实,我们完全可 {*以在我们的程序中通过编程来达到美化DBGrid 外观的目的。通过编程, {*我们可以改变

简简单单 2872

最精简的小写金额转大写的函数

.测试通过了。 function NumToChar(const n: Real): string;   //可以到万亿,并且可以随便扩大范围  const    cNum: WideString = 零壹贰叁肆伍陆柒捌玖--万仟佰拾亿仟佰拾万仟佰拾元角分;    cCha:array[0..1, 0..12]of string=    (( 零元,零拾,零佰,零仟,零万,

简简单单 2855

简化版拼音反查单元

unit IMCode;  //  简化版拼音反查单元interface{ iMode 二进制功能位说明  X X X X X X X X X X X X X X X X                            3 2 1  1: 0 - 只取各个汉字声母的第一个字母; 1 - 全取  2: 0 - 遇到不能翻译的字符不翻译; 1 - 翻译成 ? (本选项目针对全角字符)  3:

简简单单 2787

GetIdeDiskSerialNumber

// (c) Alex Konshin    mailto:alexk@mtgroup.ru      30 jul 2000 program IdeSN; // PURPOSE: Simple console application that extract first IDE disk serial number. {$APPTYPE CONSOLE} uses   Windows,   Sy

简简单单 2756

一个磁性窗体VCL组件的具体实现

一个磁性窗体VCL组件的具体实现 副标题: 作者:佚名 文章来源:大富翁 点击数:52 更新时间:2005-2-25   文:陈达军日期:2003-10-29记得《程序员》杂志中曾有一篇文章介绍过如何实现磁性窗体,该篇文章总结了网上相关的讨论帖子,分析了实现磁性窗体的基本原理,并最终给出了一个可行的解决方案。但文中介绍的具有磁性吸附能力的主窗体只能是应用程序的主窗体,不具有灵活性,且文中给出的示例

简简单单 2462
上一篇: Simulate the pressing of keyboard keys
下一篇: GetIdeDiskSerialNumber
SafeF8
博客等级 码龄22年 10粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值