请教一下怎么查看mscomm32.ocx控件是否注册
请问一下如何查看mscomm32.ocx控件是否注册
我想知道我注册的mscomm32.ocx控件是否成功注册,不知道怎么查。在注册表里如何看?用代码如何查?
请各位指点指点
------解决方案--------------------
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]
@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
------解决方案--------------------
这是我从代码里摘出来的, 你自己删除用不到的单元引用
我想知道我注册的mscomm32.ocx控件是否成功注册,不知道怎么查。在注册表里如何看?用代码如何查?
请各位指点指点
------解决方案--------------------
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]
@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
------解决方案--------------------
这是我从代码里摘出来的, 你自己删除用不到的单元引用
uses StrUtils, ComObj, ActiveX, SysUtils, Variants, Windows, Registry;
//检查dll, ocx是否注册
function TJRCheck.CheckReg(const AFileName: string): boolean;
var
clsID: TGUID;
obj: IUnknown;
begin
try
CLSIDFromProgID(PCHAR(AFileName), clsID);//根据提供的文件路径获得guidID
obj := CreateCOMObject(clsID);//如果创建成功说明已经注册
result := obj <> nil;
except
on E: Exception do
result := FALSE;
end;
end;
//注册/卸载dll, ocx
function TJRCheck.RegisterOleFile(strOleFileName: STRING;
OleAction: Byte): boolean;
const
RegisterOle = 1; // 注册
UnRegisterOle = 0; // 卸载
type
TOleRegisterFunction = function: HResult; // 注册或卸载函数的原型
var
hLibraryHandle: THandle; // 由LoadLibrary返回的DLL或OCX句柄
hFunctionAddress: TFarProc; // DLL或OCX中的函数句柄,由GetProcAddress返回
RegFunction: TOleRegisterFunction; // 注册或卸载函数指针
begin
result := FALSE;
// 打开OLE/DCOM文件,返回的DLL或OCX句柄
hLibraryHandle := LoadLibrary(PCHAR(strOleFileName));
if (hLibraryHandle > 0) then // DLL或OCX句柄正确
try
// 返回注册或卸载函数的指针
if (OleAction = RegisterOle) then // 返回注册函数的指针
hFunctionAddress := GetProcAddress(hLibraryHandle,
PCHAR('DllRegisterServer'))
else // 返回卸载函数的指针
hFunctionAddress := GetProcAddress(hLibraryHandle,
PCHAR('DllUnregisterServer'));
if (hFunctionAddress <> NIL) then // 注册或卸载函数存在
begin
RegFunction := TOleRegisterFunction(hFunctionAddress); // 获取操作函数的指针
if RegFunction >= 0 then // 执行注册或卸载操作,返回值>=0表示执行成功
result := true;
end;
finally
FreeLibrary(hLibraryHandle); // 关闭已打开的OLE/DCOM文件
end;
end;
//注册dll, ocx
function TJRCheck.RegFile(const AFileName: string): boolean;
begin
result := RegisterOleFile(AFileName, 1);
end;