小弟要判断一个ocx是否已注册,不知道代码如何写。
望各位高手指点迷津。
望各位高手指点迷津。
解决方案 »
- 初学MFC 求高手指导怎样单文档载入图片怎样实现透空图效果。。求指导
- vc++实现的一个滑动窗体,collapeswnd,有需要的可以收藏
- 用Windows API写的Hallo World程序不能执行?
- _COM_SMARTPTR_TYPEDEF(IMediaSample, IID_IMediaSample); 在C++6中怎样变换
- 乱七八糟的软件著作权登记
- 有学过OpenGL的吗?问一简单问题!急需,感谢!!!!
- 请问用什么函数能创建一个和父窗口一摸一样的窗口??
- asp.net可以跨平台吗?
- 招聘VC程序员(深圳)
- C 语言 SDK编程ODBC连接数据库的问题, 求解决啊!
- 网页控件可以禁止在程序里调用吗?
- 串口调试读数很慢?怎么解决?
然后在你的程序OnCreat的时候 生成这个控件int m = MMX.Creat(); 增加判断
if(m == 0)
{
//控件没有注册,至少是没有办法正常使用
}else{
//控件注册成功,至少可以创建这个控件,而且能够创建成功。
}
HKEY_CLASSES_ROOT\CLSID\组件的CLSID
HKEY_CLASSES_ROOT\组件的PROGID
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;
} 以前的代码,拷贝给你。