如何在启动时屏蔽进程,使其不能被终止?(200分)

  • 主题发起人 主题发起人 飘叶
  • 开始时间 开始时间

飘叶

Unregistered / Unconfirmed
GUEST, unregistred user!
我发现在WINDOWS刚启动时,在刚出现桌面时按下CTRL+ALT+DEL即可发现
各种启动时运行的进程名,但这时的各个程序并没有真正运行,要等所有
进程登记后才运行,但可以终止运行,所以在程序中编写的一切屏蔽进程
名或屏蔽这三个键的办法都是徒劳!因程序根本还没有运行!!

哪位高手是否能解决这个难题?
 
不会呀,我按了,除了个explorer和输入法什么也没有
其实现在讨论这个已经没有意义了,在2000里怎么也没法屏蔽
2001(海王星)里据说还有专门数字签名抵抗一切不良行为
 

是不是想做一个启动时不能被终止的管理电脑的程序???

先看看人家的作品 http://ciip.yeah.net

再给我email,即“为什么你要这样做”给我讲讲,我会给你解决的,但是

200分就归我啦!哈哈哈!!!

email: wqlem@km169.net
 
我只想设计一个控制管理软件,如果你能帮我解决这个问题,200分当然会送给你
 
wql,快快说说吧
 
解决后,能给我一个答案吗,谢谢
 
我也碰到过这个问题,能解决吗?
cyj_123456@163.net
 
我也提了这个问题,在win9x下似乎很麻烦,
在win2k下可以注册为系统服务进程,我没试出来,最好有源码参考!
 
wql ,我也在做一个机房管理程序,请给一份源码好么?
 
unit start;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

Const RSP_SIMPLE_SERVICE = 1;
Const RSP_UNREGISTER_SERVICE = 0;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Function GetCurrentProcessId():Longint;stdcall;far;external 'kernel32';
Function GetCurrentProcess():Longint;stdcall;far;external 'kernel32';
Function RegisterServiceProcess(dwProcessID:Longint;dwType:Longint):Longint;stdcall;far;external 'kernel32';
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
pid:longint;
begin
pid:=GetCurrentProcessId(); //得到当前进程ID
RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE);//把本程序注册为service
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
pid:Longint;
begin
pid:=GetCurrentProcessId();
RegisterServiceProcess(pid,RSP_UNREGISTER_SERVICE);
end;
end.

//调试过了,在win98+Delphi5通过!
 
美萍安全卫士利用硬件驱动技术在windows启动前就首先屏蔽ctrl+alt+del,等系统都加载完毕后才恢复这三个键。

谁会做这个?
 
在WIN NT、WIN 2000、WIN XP下如何实现?
 
用 CreateProcess 进行 ,先设置好进程属性后再运行程序
 
用硬件驅動好象很難!
可以便用線程注入來做!
去搜一上!有討論過!
但到目前為止還沒有一個完美的答案!
用VC實現的已經有了!
 
看来没人会了
 
换个角度
可不可以在ONCLOSE中在调用自身?
 
怎么可能,程序都没有运行就给终止了,怎会执行ONCLOSE
 
后退
顶部