WINDOWS启动之前运行的程序只能是DOS程序,你只要把它放在AUTOEXEC。BAT就行了,如果是WINDOWS程序,可放在注册表启动项

解决方案 »

  1.   

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "RealTray"=""//这里放你要运行的程序
      

  2.   

    楼上的理解错了吧,我是想得到在WINDOWS98前运行
      

  3.   

    错!
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    里的在window之后

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunService
      

  4.   

    如果你的应该程序不是32位的,写在autoexec.bat里就可以了
    如果是32位,在windows没起来之前是不能运行的
      

  5.   

    //uses Registry
    var
    Reg:TRegistry
    begin
    Reg:=TRegistry.Create;
    Reg.rootkey:=HKEY_LOCAL_MACHINE;
    try
    if Reg.openkey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
    WriteString('Delphi program',application.exename);
    reg.close;
    finally
    reg.free;
    end;
    end;
          
      

  6.   

    没有你的程序windows不能运行,
    老大你真厉害
    widows不会理财你的
    想控制windows,就是softice也难啊
    是不是应该这样想,你的程序想不想让windows运行,
    而不是windows运行起来后一看没你的程序,windows就不运行
    你不觉得矛盾么?
    windows不运行windows怎么知道有没有你的程序
    思路就不清楚啊
      

  7.   

    xiao128 (天使也疯狂)说的应是启动完成之前,即图形界面加载完成之前
      

  8.   

    改一下注册表就可以了,放在run 里
      

  9.   

    是RunService
    不是Run
    Run里的在windows启动完成后运行
      

  10.   

    大家都搞错了,不是Run也不是RunServices是RunOnce,只是Windows一启动完就把RunOnce底下的键删掉,所以你的程序结束后必须再写这个值.格式:
    在RunOnce底下建立一个子键(注意:是键,不是值),在这个键底下建立一个字符串值
    ,命名为1,把这个字符串的实际值设置为你的程序名,这样Windows启动之前就启动这个程序.下面是实际的代码,测试过,没问题(代码是BCB,但转换成Delphi也很容易):
      TRegistry* Reg=new TRegistry();  Reg->RootKey=HKEY_LOCAL_MACHINE;
      Reg->OpenKey(Reg_CurrentVersion,false);
      Reg->OpenKey("RunOnceEx",true);  Reg->WriteString("","Auto Run Manager");
      Reg->OpenKey("LiteRun1.0",true);
      Reg->WriteString("","Auto Run Manager");
      Reg->WriteString("1",Application->ExeName);  Reg->CloseKey();
      delete Reg;
      

  11.   

    楼上的做好事做到底转成delphi吧