• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用C++ Builder為計算機增加啟動日志

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    公用機房或辦公室中的計算機通常是大家共享使用的,作為管理者或主要使用者很想掌握機器何時被開啟使用過,若有一個啟動記錄就可以隨時了解這些情況。本文給出如何用C++ Builder 5實現這樣一個程序的編制,使每次啟動計算機即執行本程序,在注冊表中記錄開機

    公用機房或辦公室中的計算機通常是大家共享使用的,作為管理者或“主要”使用者很想掌握機器何時被開啟使用過,若有一個啟動記錄就可以隨時了解這些情況。本文給出如何用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;
                }

    應用:

    利用此法,將上述相關代碼移植到其它C++ Builder應用程序中,通過讀寫注冊表對程序的使用加以限制,比如限制使用程序次數:30次,只要在上述代碼③處增加一條if語句

    if(num==30)
                {
                Application->MessageBox(“本程序已經使用30次,將要退出??!”, “警告:”, MB_OK);
                return 0;
                }

    即可(刪除①到②行的語句段),編寫限制版的應用程序。當然也可以考慮對時間的限制,這只要在注冊表中暗設“機關”就行。

    為了生成單獨的EXE文件,應激活Project/Options…菜單項,去掉標簽“Linker”下的“Use dynamic RTL”選項,同時去掉“Packages”標簽下的“Build with runtime packages”選項。將此文件Logon.exe復制到需要記錄的機器上的一個固定的文件夾中(比如,windows文件夾),執行一次即可完成程序的注冊。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>