怎样判断一个特定的OCX控件是否已注册??
2009-07-16 23:22
330 查看
把下面的 CLASSID 换成你的 OCX 控件的就可以了:
BOOL CYourApp::IsInstalled()
{
HKEY hKey;
BOOL bPresent;
TCHAR szPath[_MAX_PATH];
DWORD dwRegType;
DWORD cbData = sizeof szPath * sizeof TCHAR;
hKey = NULL;
bPresent = FALSE;
::RegOpenKey(HKEY_CLASSES_ROOT, _T("CLSID//{D27CDB6E-AE6D-11cf-96B8-444553540000}//InprocServer32"), &hKey);
if(hKey)
{
HANDLE hfile;
szPath[0] = 0;
::RegQueryValueEx(hKey, NULL, NULL, &dwRegType, (LPBYTE)szPath, &cbData);
::RegCloseKey(hKey);
hfile = ::CreateFile(szPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(INVALID_HANDLE_VALUE != hfile)
{
bPresent = TRUE;
::CloseHandle(hfile);
}
}
return bPresent;
}
BOOL CYourApp::IsInstalled()
{
HKEY hKey;
BOOL bPresent;
TCHAR szPath[_MAX_PATH];
DWORD dwRegType;
DWORD cbData = sizeof szPath * sizeof TCHAR;
hKey = NULL;
bPresent = FALSE;
::RegOpenKey(HKEY_CLASSES_ROOT, _T("CLSID//{D27CDB6E-AE6D-11cf-96B8-444553540000}//InprocServer32"), &hKey);
if(hKey)
{
HANDLE hfile;
szPath[0] = 0;
::RegQueryValueEx(hKey, NULL, NULL, &dwRegType, (LPBYTE)szPath, &cbData);
::RegCloseKey(hKey);
hfile = ::CreateFile(szPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(INVALID_HANDLE_VALUE != hfile)
{
bPresent = TRUE;
::CloseHandle(hfile);
}
}
return bPresent;
}
相关文章推荐
- vc6代码实现: 怎样判断一个点是否在一个窗口(或对话框或控件)内?
- OCX控件的注册卸载,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- C++注册,卸载OCX控件,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- OCX控件的注册卸载,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- 如何在JS代码中判断客户端ocx控件是否注册成功
- 判断特定窗口是否存在、线程中获取获得一个顶层窗口的句柄
- 一个判断用户名是否被注册的随笔
- 怎样判断一个盘上是否有文件
- 怎样判断一个链表是否有环
- [VB.NET]请问在VB.net中怎样判断一个字符串是否是另一个字符串的子字符串?