程序在系统启动时起动程序在系统启动时起动
源代码在线查看: 程序在系统启动时起动.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
|
相关资源 |
|
-
程序在系统启动时起动程序在系统启动时起动
-
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,只要上下班时按时在当日考勤栏内点击相应的栏目标题即可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以随意查看过去的记录,也可把记录按
-
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,只要上下班时按时在当日考勤栏内点击相应的栏目标题即可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以随意查看过去的记录,也可把记录按
-
本程序为用VF实现的商品管理系统,实现了商品的顾客的注册和商品预定和进出货的管理,还有经理的全面管理,里面的readme.txt文件有相应的权限信息,在进入系统时使用
-
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,只要上下班时按时在当日考勤栏内点击相应的栏目标题即可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以随意查看过去的记录,也可把记录按
-
详解死机的原因和预防方法;隐藏在XP中的28个秘密武器;用PMAGIC安装98和XP双系统;找出WINDOWS XP下的关闭事件跟踪程序;找回丢失的输入法标志;重启时不可忽视的硬盘自检;注册表解锁有奇
-
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,只要上下班时按时在当日考勤栏内点击相应的栏目标题即可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以随意查看过去的记录,也可把记录按
-
在JAVA开发的前提起运程序时,所加载的界面起动程序
|