是这样的,我想做个程序在系统显示桌面之前,或者说是完成winLogin.exe的加载之前运行起来,请问这个怎么实现的?
[网吧有类似的程序,先输入会员号才能进入系统,我想要的就是这种效果;另外,如果我没有记错的话,桌面的进程是Explorer.exe,要是可以把这个进程给替换掉也不错, 呵呵]另一个问题是程序全屏的问题,需要能隐藏系统状态栏哦!多谢了!分不够加!

解决方案 »

  1.   

    程序设置成最大化,FormStyle设置成fsStayOnTop
    procedure TForm1.Button1Click(Sender: TObject);
    var
        wndClass:Array[0..100] of char;
    begin
        StrPCopy(wndClass, 'Shell_TrayWnd');
        ShowWindow(FindWindow(wndClass,nil), SW_HIDE);
    end;/////////隐藏系统状态栏procedure TForm1.Button2Click(Sender: TObject);
    var
        wndClass:Array[0..100] of char;
    begin
        StrPCopy(wndClass, 'Shell_TrayWnd');
        ShowWindow(FindWindow(wndClass,nil), SW_SHOW);
    end;/////////显示系统状态栏
      

  2.   

    感谢楼上,全屏的问题已经搞定了,其实不用API,只需要Form1.Width:= Screen.Width;
    Form1.Hight:= Screen.Hight;
    Form1.BorderStyle:= sbNone;
    就可以了~那第一个问题??? 还望高手指点!
      

  3.   

    在WIN9X下你可以这样试试:
    修改下面这个系统文件
    C:\WINDOWS\SYSTEM.INI
    [boot]
    shell=Explorer.exe将Explorer.exe改为你的程序名,
    不过不要忘记在你的程序运行完后调用Explorer.exe在NT下,就不清楚了,可能要做成服务
      

  4.   

    NT下
    你把你的程序加载到
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
    看看
      

  5.   

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
    不一定能保证你的程序先加载吧!
      

  6.   

    在2000下这种情况只能用替换GINA。DLL来实现,我只知道要替换系统的GINA。DLL文件才可能比winLogin.exe更早,服务都不行的
    98下就是Kshape([伟大的大伟!]) 据说的,不过这也不是太可靠,网吧前一阵子不是都要用上网实名,进DOS下DEL文件,然后就不用实名上网了,这是网吧的网管教的,只要EDIT一下SYSTEM.INI
    ,就都出来了