各位兄弟,在DELPHI中RegisterServiceProcess函数怎么用?多谢指教,送100分不少吧!!!(100分)

格式:
RegisterServiceProcess(DWORD dwProcessId,DWORD dwType);

Dwprocessid:就是要注册的进程ID,如果值为NULL则表示当前进程。
DwType的值有
RSP_SIMPLE_SERVICE:为注册;
RSP_UNREGISTER_SERVICE:解除注册。
 
RegisterServiceProcess函数DELPHI里提示“没有定义”错误?
怎么解决?
 
RegisterServiceProcess是一个动态连接库,需首先载入这个库
GetProcAddress(GetModuleHandle('KERNEL32'),'RegisterServiceProcess');
先查找GetProcAddress 和 GetModuleHandle的帮助,
相信应该可以搞定
 
function RegisterServiceProcess(DWORD dwProcessId,DWORD dwType);stdcall;external kernel
不过这个函数在win2k里面不起作用
 
To xueminliu:
我刚学DELPHI不久,不知道
GetProcAddress(GetModuleHandle('KERNEL32'),'RegisterServiceProcess');
怎么用?能给个例子吗?
 
To Chenlili:
为什么会提示参数错误?
 
getporcaddress的例子:这个例子可以使你的窗口为半透明(2k适用)
var
l : longint;
setwin : function (hwnd:HWND;
crKey:Longint;
bAlpha:byte;
dwFlags:longint ):longint;stdcall;
Hbar: Thandle;
ver:integer;//版本号
major:integer;//主版本号
minor:integer;//次版本号

begin

ver := GetVersion();
major := ver and 255;
if major=5 then
//under Windows 2k
begin

l:=getWindowLong(Handle, GWL_EXSTYLE);
l := l Or $80000;
SetWindowLong (handle, GWL_EXSTYLE, l);
try
//SetLayeredWindowAttributes(handle, 0, 182, 2);
Hbar := LoadLibrary('user32.dll');
setwin := GetProcAddress(Hbar,'SetLayeredWindowAttributes');
setwin(handle,0,220,2);
FreeLibrary(Hbar);
except
end;

end;


是什么参数错误?我现在用的是win2k,可能比较难调试。
 
多谢Chenlili。其实我这个问题是让应用程序从Ctrl-Alt-Del列表中消失,
还有没有其他的解决方法?
 
const
RSPSIMPLESERVICE = 1;
RSPUNREGISTERSERVICE = 0;
function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord;
stdcall;
external 'KERNEL32.DLL';
procedure TForm1.FormCreate(Sender: TObject);
begin

SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
RegisterServiceProcess(GetCurrentProcessId,RSPSIMPLESERVICE);

Canvas.Font.Name:='Times New Roman';

Canvas.Font.Size:=40;

Canvas.Font.Style := [fsBold];

SetWindowRgn(Handle, GetRgn('Happy new year!'), True);

end;



 
各位兄弟!啊! Chenlili好象是女孩的名字,哎!也算兄弟吧!
最近由于公司搬迁,没有上网回复各位,抱歉抱歉!就这些分你们
分吧!特别多谢Reboot兄给我发的例子!
 
顶部