(01)C++ builder之自动关机

BCB 自动关机程序 代码 BCB 环境下的 自动关机程序 代码 好像运行 不太理想 立即下载

(中行雷威2018.3.12)

(同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群)

【阅读倡议】

1、有问题请留言;

2、没问题请点赞;

3、看连载请加群;

4、下源码请加群;

【开发工具】

1、C++Builder10.2.2tokyo


本文介绍如何利用WINDOWS封装的API接口实现定时关机、注销、重启和关电。

一、功能设计

新建C++BuilderApplication项目,在主窗口FormAutoShutdown上放置几个按钮,分别是定时关机、重新启动、注销登录、强制关机。再放一个Timer控件,Timer控件每秒循环一次,判断时间,自动关机。

二、代码实现

1、新定义一个preProcess函数

UnitAutoShutdown.h文件:

//---------------------------------------------------------------------------


#ifndef UnitAutoShutdownH
#define UnitAutoShutdownH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
#include <Vcl.ExtCtrls.hpp>


//---------------------------------------------------------------------------
class TFormAutoShutdown : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
TTimer *Timer1;
TImage *Image1;
TEdit *Edit1;
void __fastcall BitBtn1Click(TObject *Sender);
/*自定义*/
void __fastcall preProcess();//关机预处理
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);




private: // User declarations
public: // User declarations
__fastcall TFormAutoShutdown(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormAutoShutdown *FormAutoShutdown;
//---------------------------------------------------------------------------

#endif



UnitAutoShutdown.cpp文件:

//---------------------------------------------------------------------------


#include <vcl.h>
#pragma hdrstop


int autoShutCount=20;


#include "UnitAutoShutdown.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormAutoShutdown *FormAutoShutdown;
//---------------------------------------------------------------------------
__fastcall TFormAutoShutdown::TFormAutoShutdown(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormAutoShutdown::BitBtn6Click(TObject *Sender)
{
//重新登录
preProcess();
ExitWindowsEx(EWX_LOGOFF,0);
}


//---------------------------------------------------------------------------
//void __fastcall TFormAutoShutdown::BitBtn5Click(TObject *Sender)
{
//强制关机
preProcess();
ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0);
}


//---------------------------------------------------------------------------
void __fastcall TFormAutoShutdown::BitBtn1Click(TObject *Sender)
{
//正常关闭
preProcess();
ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0);

}

//---------------------------------------------------------------------------
void __fastcall TFormAutoShutdown::BitBtn1Click(TObject *Sender)
{
//重新启动
preProcess();
ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0);

}


//---------------------------------------------------------------------------


void __fastcall TFormAutoShutdown::preProcess()
{
//关机预处理
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
}

//-----------------------------------------------------------------------------
void __fastcall TFormAutoShutdown::Timer1Timer(TObject *Sender)
{
//定时关机调度
Edit1->Text="警告:您的电脑将在:"+String(autoShutCount--)+" 秒后关机!";
if(autoShutCount==0)
{
BitBtn1->Click();
}
}
//---------------------------------------------------------------------------


void __fastcall TFormAutoShutdown::BitBtn2Click(TObject *Sender)
{
Timer1->Enabled=false;
this->Close();
}
//---------------------------------------------------------------------------


void __fastcall TFormAutoShutdown::FormActivate(TObject *Sender)
{
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
FMSoft_uniGUI_Complete_Professional_1.70.0.1485 立即下载

相关推荐

unigui1485注册机

unigui1485完美注册机

【c++自动关机小程序】

includeusingnamespacestd;intmain(){system("shutdown/p");return0;}

代表着月亮的神明幻化出的一只神圣的狼 635

FMSoft_uniGUI_Documentation_1.70.0.1485

FMSoft_uniGUI_Documentation_1.70.0.1485

【用C++Builder编写定时关机程序】

从internet下载较大的软件时,由于目前网络带宽的原因,许多人喜欢在晚间进行,而到深夜时就存在人需要休息的问题。目前绝大多数下载软件可以估算出下载所需的时间,如果到时让计算机自动关机,就可以免受守候之苦。本文萝卜家园ghost xp介绍笔者用c++ builder 5编写的一个能实现定时自动关机的程序。   程序功能   图1界面上半部分用于即时显示当前系统的日期和时间信息,下

u011168635的专栏 703

C++ builder 关机 代码

C++ builder 关机 代码

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

在C++ Builder程序中控制Windows关机

在C++ Builder程序中控制Windows关机 2000-08-16 14:20:07   我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制Windows的关机或重新启动呢?   要实现这个功能,需要用到Windows API提供的一个ExitWindowsEx函数。...

weixin_34380948的博客 219

IVP 2021 UNETR: Transformers for 3D Medical Image Segmentation

动机 具有跟踪和扩展路径的全卷积神经网络(FCNNs)(如编码器和解码器),近年来在各种医学图像分割应用中显示出了突出的地位。在这些体系结构中,编码器通过学习全局上下文表示来扮演一个不可或缺的角色,该全局上下文表示将进一步用于解码器的语义输出预测。 卷积层作为FCNN的主要构造块,其局部性限制了此类网络学习长时空间依赖的能力。 在NLP领域,基于transformer的模型已经在各种任务中实现了最先进的基准。transformer中的自我注意机制使他们能够动态地突出词序列的重要特征并学习其长时依赖关系。这

smile909的博客 1979

C++ 程序自动重启(windows 有源码)

C++程序自动重启

编程之道在明明德在亲民在止于至善 3488

RK3588+TRL8367s四网口千兆交换机硬件调试与DTS配置实战

本文详细介绍了基于RK3588处理器与RTL8367S交换机芯片构建四网口千兆交换设备的硬件调试与DTS配置实战。文章深入对比了MDIO与SMI两种通讯方式的配置差异,提供了详尽的设备树代码示例,并总结了常见问题的排查思路,旨在帮助开发者高效完成嵌入式网络设备的软硬件集成与调试工作。

weixin_28308325的博客 470

PC微信逆向:破解聊天记录文件!_读取别人pc微信msg文件

本文详细介绍了PC版微信数据库的解密方法,总结了前人经验并补充了关键细节。通过OllyDbg调试工具从微信内存中获取32字节加密密钥,使用C++结合OpenSSL库实现解密程序。重点解决了开发环境配置问题,包括Visual Studio项目设置和OpenSSL库的版本适配,将原本固定的数据库路径改为参数化输入,提高了工具的通用性。该方案为电子取证中的微信数据提取提供了完整的技术路径,避免了研究者重复探索已解决的问题。

zz96405784848的博客 9769

windows c++ 关机、重启、注销功能的实现(附带源码)

通过调用 ExitWindowsEx 函数,C++ 可以很方便地实现 Windows 系统的关机、重启和注销功能。你可以根据需要自定义程序的交互方式,比如加上确认提示、延时操作等功能。

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 949

WPF用户控件间属性传递的艺术

本文详细介绍了WPF中父控件向子控件传递属性的方法。针对常见的绑定失效问题,重点讲解了使用RelativeSource绑定技术,通过指定AncestorType确保正确访问父控件属性。文章通过实例演示了从ParentModel传递属性到ChildUserControl依赖属性的完整实现过程,包括模型定义、XAML结构设计和代码实现。这种方法有效解决了数据上下文混淆问题,为WPF开发中的控件交互提供了可靠解决方案,有助于提升应用的灵活性和可维护性。

2501_90323865的博客 56

C++ Builder 6 中 安装TeeChart Pro 6.01

<br />因为软件的维护,要安装TeeChart Pro 6.01 但是死活安装后编译不过。以前是安装 TeeChart Pro v7.06 ,然后把lib里面 的Tee*7C6.lib 中的 复制一份,然后改为Tee*6C6.lib 这样也能正常编译运行使用。<br />最近看到《 TeeChart应用技术详解》里面说到TeeChart7 的安装,来了灵感,是不是TeeChart6的安装文件(teechart6builder6.exe)删除C++ Builder 6的自带TeeChar不干净?于是在虚拟

ruoleng的专栏 2514

华为OD机试真题 新系统【小学英语老师批改作文】

华为OD机试 新系统真题【小学英语老师批改作文】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【小学英语老师批改作文】

qq_45776114的博客 924

PDBfixer:蛋白质结构修复工具

本文介绍蛋白质数据银行(PDB)文件常见问题及修复工具PDBFixer的使用方法。PDB文件常存在缺失原子、残基等问题,PDBFixer可通过GUI、命令行或Python API实现自动化修复。文章详细说明安装方法、命令行参数、Python脚本修复流程及非标准残基替换表,并与Modeller、ColabFold和Rosetta Remodel等其他修复工具进行对比分析,提供了各工具的特点、适用场景和典型计算时间比较,帮助用户根据具体需求选择合适的修复工具。

Protein Designer的博客 612

安装C++Builder 的过程

因为现在安装文件是两个 BIN 文件, 这是光盘映像文件,  需要应用 WinMount 将文件挂在到虚拟硬盘中. 在电脑中安装和运行 WInMount. 可以看到它可以挂载这些光盘影像文件.  点击挂载,  可以将 BIN 文件挂载到虚拟硬盘.  使用卸载, 可以将前面挂载的硬盘取消.  下面重新挂载 BIN 文件.  可以看到此时, 系统自动打开挂载后的光盘文件目录.  点击其中 的 INSTALL 文件, 便可以开启后面的安装过程.装C++Builder。装C++Builder。

TSINGHUAJOKING 2648

SAPGUI excel 导出时遇到的运行时错误:STRING_SIZE_TOO_LARGE

当报表导出需求远超单一 XLSX 文件的物理承载力时,与其在 SAPGUI 中硬拼 2 GB 限制,不如把分页、过滤、流式写入作为设计前提。掌握 ABAP2XLSX 或 CSV + Power Query 等工具链,既能满足审计合规,又能让应用服务器远离的噩梦。祝你在下一次导出海量数据时,既高效又优雅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 642

在Windows11下安装 C++Builder

在之前, 我使用 WinMount 软件挂载 C++ Builder 安装文件, 可以比较顺利的安装这款开发软件。不过, 今天在 Windows11中安装 C++ Builder 的时候, WinMount 软件在挂载文件的过程中总会出错。后来发现, 可以直接使用 Windows11 中右键中的文件挂载功能, 可以将 C++ Builder安装文件挂载成 Z 盘。使用这个方法, 现在能够成功的安装 C++ Builder 软件了。说实在的, C++ Builder开发环境, 是我使用最长的 一款。

TSINGHUAJOKING 1764

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

(01)uniGUI for C++ builder下手机登录窗口的布局与设计

(中行雷威2019.2.17,2019.2.21修改增加背景图) (同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ...

路在脚下 3235

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++Builder之Edit和Memo

C++Builder之文本编辑(Edit、Memo) 1、AnsiString中第一个字符的下标为1而不是0; 2、TEdit组件 A、 PasswordChar 属性  密码替代字符。如果 TEdit组件用于密码输入时,可以通过设置此属性来实现。默认此 属性为0,即正常显示字符,如果用于密码输入,一般将其值改为’*’,这样不管在其中 输入什么字符,都只显示为星号,当然也可以设置为

ljianhui的专栏 9503

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C++ Builder 10.4 Android应用初探 -- 01-环境准备

介绍一个初学者,如何通过C++ Builder 开发一个Android应用程序

weixin_43876470的博客 2746

C++Builder 出现 Corrupt Portfolio stream错误修正方法

![](https://img-blog.csdnimg.cn/d0ae90ddb9854914a7bc20e9b96c0c42.png#pic_center =800x) >[简 介:](#999000) 对于 C++Builder 程序开发过程中出现的 "Corrput Portfolie Stream " 错误,通过试错方法给出了解决方案。 将 mainfrm.ddp 文件删除掉便可以正常在 IDE 中打开 m...

TSINGHUAJOKING 1067

C++ builder 编译加速问题

很多伙伴使用 C++ builder & Dephi 开发软件,但是他的编译速度让人崩溃 整理了一些加速软件,在文末,供大家使用! NAME IDE VERSION FILE SIZE DOWNLOADS AsyncCalls 2.99.1 5-10.1 Berlin AsyncCalls.zip

792

又见 C++ Builder (Turbo C++ Explorer)

  回想上一次用 C++ Builder,大概已经是 3-4 年以前的事情了。我只记得用 C++ Builder 写的最后一个程序是“通用输入法安装程序”,这东西现在恐怕在茫茫网海里已经找不到踪影了。也曾遇到两次有人 Email 找我要这个东西,可惜机器不知道重装了多少次,这个东西早就失踪了。  以前用 C++ Builder,感觉用来写界面还是挺快的,只是后来有一个程序需要写自定义组件的时候

边城客栈 - 学无止境 4523
上一篇: (12)uniGUI for C++ builder下URL和session相关内容(连续更新)
下一篇: (02)C++ builder之WINDOWS系统服务编写与WINDOWS桌面程序调用
【路在脚下】
博客等级 码龄12年 228粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值