我想知道怎样让操作系统禁止某个程序运行,最好给出代码,我会给分多一些。

解决方案 »

  1.   

    操作注册表,比如禁止注册表编辑器regedit.exe 运行:打开注册表到
    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\System,
    如果你发现Policies 下面没有System,则请在它下面新建一个主键,名字就是System,
    然后在右边空白处新建一个 "DWORD",名字取为DisableRegistryTools,
    再修改它的值为 "1",如果要恢复的话,
    生成一个REG.REG文件:
    REGEDIT4 
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\System]
    "DisableRegistryTools"=dword:00000000
      

  2.   

    例子程序:
    禁止使用注册表
    procedure TForm1.Button1Click(Sender: TObject);
    const
      Key='\SoftWare\Microsoft\Windows\CurrentVersion\Policies\System';
    var
      myReg:TRegistry;
    begin
      myReg:=TRegistry.Create;
      with myReg do
     try
        RootKey:=HKEY_CURRENT_USER;
        OpenKey(Key,True);
        WriteInteger('DisableRegistryTools',1);
        finally
        free;
      end;
    end;
    //允许使用注册表
    procedure TForm1.Button2Click(Sender: TObject);
    const
      Key='\SoftWare\Microsoft\Windows\CurrentVersion\Policies\System';
    var
      myReg:TRegistry;
    begin
      myReg:=TRegistry.Create;
      with myReg do
     try
        RootKey:=HKEY_CURRENT_USER;
        OpenKey(Key,True);
        WriteInteger('DisableRegistryTools',0);
        finally
        free;
      end;
    end;
      

  3.   

    这位楼上的没看清题就一顿的写,说两颗星怎么混的~!代码从那里复制来的~!呵呵~~~禁止程序运行:1、不需要用户运行的程序不安装
    2、考虑用户的水平,如果低级,则隐藏程序。当然程序组中也给她删掉
    3、监控。看来你的意思是监控所有程序了,所以还是同意楼上一位朋友说的,通过查找窗口,如果不需要它运行,就发消息WM_Close
      

  4.   

    to wanderung(扬清) 
    现在想马上混到三颗星,题意可能没理解清楚,答得太匆忙,实在对不起
    不过星星多少并不代表水平高低:)
    这个问题我应该能用程序做出来,但你这样子说我,我不会再回复这个问题了!
      

  5.   

    楼上两位不是都说了吗?SHELL钩子!!!
    修改PE文件头,万一有一天你看到出错信息,然后把该程序删除了呢?发送消息WM_CLOSE,那万一那个程序屏蔽了该消息呢?杀进程?那万一该进程被注入到别的进程空间了呢?注册表?很多人都会吧?
    听楼上2位的话,用SHELL钩子好了:)
    对不起,多有得罪各位!!!
      

  6.   

    写这种程序当然可以。你先编写一个程序来接管windows的可执行文件外壳。修改HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\
    原来的值是 ""%1" %*",
    将你的程序加到前面完成,以后所有的程序都让你的程序来接管了。
    (呵呵,有点象木马)。我试过,完全可以。
      

  7.   

    windows2000中的策略管理器(winnt\poledit.exe)中
    local user->system->Restrictions->Run Only allowed Windows application
    可以设置那些程序可以执行。
    在windows2000英文版中测试通过其他版本没试过
      

  8.   

    补充一下:需要注销后重新登陆
    不要忘了加入poledit.exe否则无法恢复