最简单的方法就是将程序放在注册表里:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

解决方案 »

  1.   

    在注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中新建一个键值:路径指向你需要启动的程序路径与文件名。
      

  2.   

    做一个服务程序(不需要窗体)
    然后放在
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonceservice
    里面
      

  3.   

    在windows98下自动启动程序的10种方法
     1. Autostart 文件
    C:\windows\start menu\programs\startup {chinese/english}
    在注册表中的位置: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
    Folders Startup="C:\windows\start menu\programs\startup" 
    所以它将很容易被程序更改2. Win.ini
    [windows]
    load=file.exe
    run=file.exe3. System.ini [boot]
    Shell=Explorer.exe file.exe4. c:\windows\winstart.bat
    看似平常,但每次都重新启动5. Registry键
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]6. c:\windows\wininit.ini
    一旦运行就被windows删除,安装的setup程序常用
    Example: (content of wininit.ini)
    [Rename]
    NUL=c:\windows\picture.exe
    例子:将c:\windows\picture.exe设置为NUL, 表示删除它,完全隐蔽的执行!7. Autoexec.bat
    在DOS下每次自启动8. Registry Shell Spawning (使用过Subseven吗?看看吧)
    [HKEY_CLASSES_ROOT\exefile\shell\open\command] @="\"%1\" %*"
    [HKEY_CLASSES_ROOT\comfile\shell\open\command] @="\"%1\" %*"
    [HKEY_CLASSES_ROOT\batfile\shell\open\command] @="\"%1\" %*"
    [HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] @="\"%1\" %*"
    [HKEY_CLASSES_ROOT\piffile\shell\open\command] @="\"%1\" %*"
    [HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="\"%1\" %*"
    [HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] @="\"%1\" %*"
    [HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] @="\"%1\" %*"
    [HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] @="\"%1\" %*"
    [HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] @="\"%1\" %*"这些"%1 %*"需要被赋值, 如果将其改为 "server.exe %1 %*",
    server.exe将在每次启动时被执行,这些exe/pif/com/bat/hta等文件都可被执行9. Icq Inet
    [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\test]
    "Path"="test.exe"
    "Startup"="c:\\test"
    "Parameters"=""
    "Enable"="Yes"[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\
    当icq发现网络连接时,将被执行(我使用的icq2000b的键值有所不同,但您可以自行查找)
    您发现OICQ有这方面的问题吗?^_^...10. 杂项说明
    找找以下的键值:
    [HKEY_LOCAL_MACHINE\Software\CLASSES\ShellScrap] 
    @="Scrap object" "NeverShowExt"=""NeverShowExt 键 可以隐藏SHS文件的扩展名.shs
    如果你将一个文件改名为:"abc.jpg.shs" 它只显示"abc.jpg"
    如果你的注册表里有很多NeverShowExt键值,删除他们。
    注意:
    这些方法不一定全部适应Win2K,winNT。但你可以自行检测。