请问一下如何查看mscomm32.ocx控件是否注册 控件注册表 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 REGEDIT4[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" 可是我试过,把这条记录删除,然后在注册mscomm32.ocx,但这条记录还是不存在 如果不是安装版的mscomm,只有mscomm32.ocx,注册表要手工注入或者写个批处理 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"这个是固定的,笨办法就是程序写代码查注册表有没这一项 建议你用SPCOMM,OCX比较讨厌要客户的电脑注册,不然报错的,移植性不好 可是SPCOMM没那么实用,也可能是我不会用。 这是我从代码里摘出来的, 你自己删除用不到的单元引用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, ocxfunction 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, ocxfunction TJRCheck.RegFile(const AFileName: string): boolean;begin result := RegisterOleFile(AFileName, 1);end; delphi 怎么将webbrowser的cookie给idhttp用!! windows 2003 Tservice 程序创建TADOConnection 对象出错!求解! 三层架构的问题 Delphi调用DLL的问题 关于combobox数据源问题 菜鸟的难题 教我好吗? 如何给自定义的组件在控件栏中添加按钮图标!! cxj_treeview:怎么用代码实现选中Treeview的第N个节点? 从新调用数据库中的另外的表.....请高手指教! 为何Delphi不建一个“界面”的版块呢? 求教关于cxgrid控件左右拖拉的问题
@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
这个是固定的,笨办法就是程序写代码查注册表有没这一项
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;