B
barry1999
Unregistered / Unconfirmed
GUEST, unregistred user!
我在开发一个IE的扩展时,写了一个DLL截取IE的消息,也就是BROWSER HELPER OBJECT。
但是系统默认IE或EXPLORER每次启动是都会调用BHO,但我不想EXPLORER要调用它.
查了一下资料,MSDN里说DLL有一个入口函数DLLMAIN,只要让他返回FALSE就可以达到目的
但是DELPHI里却没这个函数,它用了一个DLLPROC的指针指向一个过程。我用它却不能达到
目的。代码如下
library IEControl;
uses
ComServ, Dialogs,windows,
_IEControl in '_IEControl.pas';
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
procedure DLLEntryPoint(dwReasonword);
var
count: Integer;
buf: array[0..128] of char;
S: string;
begin
GetModuleFilename(NULL, @buf, SizeOf(buf)); // treats @buf as a PChar
S := buf;
if S='EXPLORER.EXE' then
//不会写了,应该卸载这个DLL
end;
begin
DllProc:=@DllEntryPoint;
end.
各位帮帮忙。
但是系统默认IE或EXPLORER每次启动是都会调用BHO,但我不想EXPLORER要调用它.
查了一下资料,MSDN里说DLL有一个入口函数DLLMAIN,只要让他返回FALSE就可以达到目的
但是DELPHI里却没这个函数,它用了一个DLLPROC的指针指向一个过程。我用它却不能达到
目的。代码如下
library IEControl;
uses
ComServ, Dialogs,windows,
_IEControl in '_IEControl.pas';
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
procedure DLLEntryPoint(dwReasonword);
var
count: Integer;
buf: array[0..128] of char;
S: string;
begin
GetModuleFilename(NULL, @buf, SizeOf(buf)); // treats @buf as a PChar
S := buf;
if S='EXPLORER.EXE' then
//不会写了,应该卸载这个DLL
end;
begin
DllProc:=@DllEntryPoint;
end.
各位帮帮忙。