利用C++ Builder為電腦增加開機記錄

來源:互聯網
上載者:User

公用機房或辦公室中的電腦通常是大家共用使用的,作為管理者或“主要”使用者很想掌握機器何時被開啟使用過,若有一個開機記錄就可以隨時瞭解這些情況。本文給出如何用C++ Builder 5實現這樣一個程式的編製,使每次啟動電腦即執行本程式,在註冊表中記錄開機時間等資訊,以便隨時通過登錄編輯程式查看。程式特點:每次啟動電腦都要執行一次(這一功能由本程式自動完成而不必手工在註冊表中添加,只需運行一次程式即可),為增加隱蔽性,該程式為後台啟動並執行無表單程式。

編程要點:

1. 在C++ Builder 5環境中建立新工程檔案:執行功能表命令File/New Application,然後將工程檔案另存新檔“Logon.bpr”。

2. 執行功能表命令Project/View Source,開啟Logon.cpp檔案,將其中的

USEFORM(“Unit1.cpp”, Form1);

和Application->CreateForm(__classid(Tform1), &Form1);

兩條語句刪除,目的是建立無表單程式。

3. 檔案Logon.cpp的全部代碼如下:

#include
#include //添加行
#pragma hdrstop
USERES("logon.res");
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{ //添加部分開始
int num=0;
TRegistry *Registry = new TRegistry; //建立註冊表堆對象指標
Registry->RootKey = HKEY_USERS; //定位註冊表根鍵
if(!Registry->OpenKey(".DEFAULT\\Logon\\Records", false))
{ //如果開啟主鍵失敗
Registry->CreateKey(".DEFAULT\\Logon\\Records"); //建立主鍵
if(!(Registry->OpenKey(".DEFAULT\\Logon\\Records", false)))
return 0;
else
{
TRegistry *Reg = new TRegistry; // ①
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
Reg->WriteString("Logon",Application->ExeName); //在註冊表中註冊本程式
Reg->CloseKey();
delete Reg;
Application->MessageBox("登入程式註冊成功!","結果",MB_OK); // ②
Registry->WriteInteger("開機次數",num);
Registry->WriteString("程式註冊時間",Date()+Time());
return 0;
}
}
else
{
num = Registry->ReadInteger("開機次數"); // ③
Registry->WriteInteger("開機次數",num+1); //記錄開機次數
Registry->WriteString("第"+AnsiString(num+1)+"次開機",Date()+Time()); //記錄開機時間
}
Registry->CloseKey();
delete Registry;
//添加部分結束
Application->Initialize();
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.