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

📄 程序在系统启动时起动.txt

📁 程序在系统启动时起动程序在系统启动时起动
💻 TXT
字号:
1.程序在系统启动时起动,如何做?
我做一个程序要在系统(win98,win2000,winxp)启动时起动.
我所知道的,有:
1.可以在StartUp开始菜单里设置。
2.可以在注册表的run里设置。
3.可以在Win.ini里设置。
4.Autoexec.bat
但是这些很容易被处理掉。
在什么地方,还有什么方法可以实现在系统启动时起动。这个是一个强制管理的一个软件。要求被管理者,通过常规方法不能使它不启动。
我可以另开帖给分,如果有好的解决办法和源码。

http://search.csdn.net/expert/topic/50/5001/2002/10/25/1125913.htm

在NT或2K下在每次重启进来时自动运行。

1、利用"开始"菜单中的"启动"程序项。凡是拖入该程序项的程序都可以实现自动运
行。将程序拷贝到"C:\Documents and Settings\All Users\「开始」菜单\程序\启动"
(要根据注册表来查找这个目录)这个目录下即可。

2、利用win.ini文件中的run变量。编辑win.ini,为run变量赋值。如run= 某程序,可
以使某程序实现自动运行。 
写win.ini文件
[windows] 
load=file.exe 
run=file.exe 
注意:load=与run=的区别在于:通过load=运行文件,文件会在后台运行(最小化);
而通过run=来运行,则文件是在默认状态下被运行的。

3、利用注册表。通过修改注册表中相关项,实现程序自动运行。 
看上去,第一种方法是最容易实现的。由于所谓的"开始"程序菜单实际上是一个特殊
目录下的特殊文件。其目录一般在c:\ windows \ start menu \ programs下。"启动"
程序项的目录一般为c:\ windows \ start menu \ programs \ 启动。这样程序只要
在把自身拷贝到此目录下就可以实现程序自动运行了。然而这里有个问题,如果出现
特殊情况,"启动"程序项的目录不在理想目录下呢?自动运行显然无法实现了。要解
决这个问题,我们可以利用注册表得到有关信息。在注册表
hkey_users\.default\software\microsoft\windows\ currentversion\explorer\
shell folders下,读取startup项的值就可以知道"启动"程序项的准确目录了。对于
注册表的操作,c++ builder3提供了tregister类,使用十分方便。关于tregister类
的具体介绍,大家可以参考c++ builder3的在线帮助,这里就不多阐述了。
程序如下: 

tregister  *test;
test = new tregister();
test->rootkey = hkey_users;
if(test->openkey(".default\\software\\microsoft\\windows\\currentversion\\
    explorer\\shell folders",false))
    path = test->readstring("startup");    //获得"启动"程序项准确目录
delete test;

对于第二种方法,关键在于对win.ini的读写。win.ini为windows启动时初始配置文件,
存放在系统目录下。系统目录可以在注册表hkey_local_machine \software\windows\
currentversion下,通过读取systemroot值得到。程序自身的存放路径可以利用
c++ builder3中application类的exename变量得到。使用c++ builder3提供的
tinifile类,我们可以十分方便地对ini文件进行操作。程序如下: 
  tregister  *test;
  tinifile  *inifile;
  test = new tregister();
  test->rootkey = hkey_local_machine;
  if(test->openkey("software\\windows\\currentversion",false))
        path = test->readstring("systemroot");    //获得windows系统目录
  delete test;
  path = path + "\\win.ini";                //获得win.ini的完整路径
  inifile = new tinifile(path);
  inifile->writestring("windows","run",application->exename); 
  // run =  执行文件名
  delete inifile;
  
对于第三种方法,实现起来最为隐蔽。如果不了解注册表,想去掉自动执行都不行哦。
在注册表hkey_local_machine \software \ microsoft \ windows \ currentversion
\run下的所有程序项都可以被windows自动执行。因此,我们可以通过添加新程序项实
现自动执行功能。程序如下: 
tregister  *test;
test = new tregistry();
test->rootkey = hkey_local_machine;
if(test->openkey("software\\microsoft\windows\\currentversion\\run",false))
     test->writestring("my program",application->exename);
delete test;

//
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run


⌨️ 快捷键说明

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