⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcjq027.txt

📁 c++ builder 的一些txt文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  
            AutoRun.RootKey=HKEY_LOCAL_MACHINE;
  
            AutoRun.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);
  
            if(strlen(CmdLine)>Application->ExeName.Length()+3)//如果带参数运行则是要卸载
  
            {
  
            AutoRun.DeleteValue("Windows NT Auto Logon");//删除自己加入的属性
  
            regkey.DeleteValue("Windows NT Auto Logon");
  
            delete &AutoRun;
  
            Application->Terminate();//终止应用程序
  
            return;
  
            }
  
            //把本程序写入自动运行。
  
            AutoRun.WriteString("Windows NT Auto   
            Logon",Application->ExeName);
  
            delete &AutoRun;
  
            edDomain->Text=regkey.ReadString("DefaultDomainName");   
            //读出域名
  
            edUser->Text=regkey.ReadString("DefaultUserName"); //读出用户名
  
            chkAuto->Checked=true;
  
            chkAutorun->Checked=regkey.ReadString("Windows NT Auto   
            Logon")=="1"?true:false; //本程序是否自动运行
  
            edPasswd->Text=regkey.ReadString("DefaultPasswd"); //读出口令
  
            setControl(!chkAutorun->Checked); //如果是自动运行状态把其他屏蔽,反之亦然
  
            if(chkAutorun->Checked)
  
            {
  
            Timer1->Enabled=true; //自动运行开始计时
  
            edRePasswd->Text=edPasswd->Text;
  
            }
  
            
  
            其中setControl()的功能是屏蔽几个组件,定义如下:
  
            
  
            首先在窗体的头文件窗体类定义加入void   
            setControl(bool);
  
            
  
            其函数体如下(窗体名为fmMain):
  
            
  
            void TfmMain::setControl(bool t)
  
            {
  
            edUser->Enabled= t;
  
            edRePasswd->Enabled= t;
  
            edPasswd->Enabled= t;
  
            edDomain->Enabled= t;
  
            chkAuto->Enabled= t;
  
            }
  
            在chkAutoRun的OnClick事件中根据是否选择了自动运行来决定是否启动定时器
  
            
  
            setControl(!chkAutorun->Checked);//如果是自动运行状态把其他屏蔽,反之亦然
  
            if(!chkAutorun->Checked)
  
            {
  
            Timer1->Enabled=false;//如果不是自动运行,定时器失效
  
            delay=0;
  
            }
  
            else
  
            Timer1->Enabled=true;//否则定时器有效
  
            
  
            在按纽bbtOK的OnClick事件中输入以下代码,其功能是写入注册表。
  
            
  
            if(edRePasswd->Text==edPasswd->Text)//如果密码正确
  
            {
  
            regkey.WriteString("DefaultDomainName",edDomain->Text);//写入域名
  
            regkey.WriteString("DefaultUserName",edUser->Text);//写入用户名
  
            regkey.WriteString("AutoAdminLogon",chkAuto->Checked?"1":"0");//写入是否自动登录
  
            regkey.WriteString("Windows NT Auto   
            Logon",chkAutorun->Checked?"1":"0");//写入是否自动运行
  
            regkey.WriteString("DefaultPasswd",edPasswd->Text);//写入密码
  
            if(!chkAutorun->Checked)//如果不自动运行
  
            {
  
            TRegistry &AutoRun=* new TRegistry();
  
            AutoRun.RootKey=HKEY_LOCAL_MACHINE;
  
            //找到自动启动
  
            AutoRun.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);
  
            AutoRun.DeleteValue("Windows NT Auto Logon");//删除自己加入的属性
  
            delete &AutoRun;
  
            }
  
            Application->Terminate();//程序终止。
  
            }
  
            else
  
            {
  
            ShowMessage("密码错误!");
  
            edPasswd->Text="";
  
            }
  
            
  
            当程序自动运行时,延时3秒后写入注册表,在Timer1的OnTimer事件中写入如下代码:
  
            
  
            delay++;
  
            if(delay>=3)//延时三秒到
  
            bbtOK->Click();//单击《确定》按纽,写入注册表
  
            然后在bbtCancel中加入终止程序的代码:Application->Terminate();我们的程序就算完成了,真的完了吗?NO!我们在开始的时侯用new生成了regkey,应该要用delete删除它,所以在窗体的OnClose事件中加入delete   
            &regkey就OK了。
  
            
  
            如果选择了自动运行,程序就能在每次启动时延时3秒,然后在修改注册表中相应的项后退出,释放系统资源。
  
            
  
            怎么样?很简单吧!如果我们平时注意收集《电脑报》等报刊杂志上的有关注册表设置的文章,再有了功能强大使用方便的C++Builder,我们也可以写出什么"Windows   
            超级设置"之类的程序了。     
                             
                           
                               
                       
                             
                               
                             
                  if (ad==1) {document.write(''+'');}             
                  if (ad==2) {document.write(''+'');}             
                  if (ad==3) {document.write(''+'');}             
                                               
                             
                           
                         
                       
                  
                   
                     
                       
                     
                     
                         
                     
                   
                      
                    
                  
                
              
              
                
                  
                    
                      
            C++ Builder开发者®           
              2000年06月01日 站长:唐朝           
                     
                   
                 
               
               
                 
               
             
             
           
           
           
           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -