如何判断一个程序是否已经安装在系统里了? 自己做了个小程序,需要加入这个功能,就是,如何判断我做的这个程序是否已经安装在系统内了?其实,好多程序都有检查是否安装这种功能,比如你安装了一个winrar,再安一次,会提醒你系统里已经安装了winrar.是不是要查询注册表什么的?需要用到什么函数??请不要说的太笼统"查注册表就行了""查标志位就行了"....谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 往注册表里写入注册信息,系统不重装你都能找到你的信息,不过被注册表监控而被拒绝的话就是另一回事了查询注册表: HKEY hKEY; LPCTSTR path="Software\\Microsoft\\MS Setup (ACME)\\User Info"; long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path, 0, KEY_READ,&hKEY); if(ret!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行 { MessageBox("错误: 查询无法打开有关的hKEY!"); return; } unsigned char tmp[256]="\0"; DWORD type=REG_SZ; DWORD size=80; ret=::RegQueryValueEx(hKEY,"DefName", NULL,&type,tmp,&size); if(ret!=ERROR_SUCCESS) { MessageBox("错误:无法查询有关注册表信息!"); return; } CString tmpstring=CString(tmp); AfxMessageBox(tmpstring); ::RegCloseKey(hKEY);修改注册表: unsigned char tmp[256]; sprintf((char *)tmp,"%s","hello"); CString tmpstring=tmp; HKEY hKEY; DWORD type=REG_SZ; DWORD size=tmpstring.GetLength()+1; LPCTSTR path="Software\\Microsoft\\MS Setup (ACME)\\User Info" ; long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path,0,KEY_WRITE, &hKEY); if(ret!=ERROR_SUCCESS) { MessageBox("错误: 修改无法打开有关的hKEY!"); return; } ret=::RegSetValueEx(hKEY,"DefName",NULL,type,tmp,size); if(ret!=ERROR_SUCCESS) { MessageBox("错误: 无法修改有关注册表信息!"); return; } ::RegCloseKey(hKEY); cgridctrl 程序设定复选框的选中与取消 Web控件界面的刷新问题 请教一个关于列表框的问题 我想在对话框1中调用对话框2,对话框2中有一个CListbox控件,想在对话框2一出现时其上的CListbox 用浏览器控件如何不显示脚本错误对话框? 名词解释 怎么才能得到FTP服务器文件夹和文件的图标呢? 在Tpanel中画线,我已经知道!但有了新问题! 大侠救我!请教关于在vc中读取a/d转换卡的问题 请问各位大哥,咱么这行,找个靓妞做伴容不容易?呵呵:) 为什么在XP系统中装不上VC6.0啊?? DLL如何注册成IE浏览器插件???
查询注册表: HKEY hKEY;
LPCTSTR path="Software\\Microsoft\\MS Setup (ACME)\\User Info"; long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path, 0, KEY_READ,&hKEY); if(ret!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行
{
MessageBox("错误: 查询无法打开有关的hKEY!");
return;
} unsigned char tmp[256]="\0";
DWORD type=REG_SZ;
DWORD size=80;
ret=::RegQueryValueEx(hKEY,"DefName", NULL,&type,tmp,&size);
if(ret!=ERROR_SUCCESS)
{
MessageBox("错误:无法查询有关注册表信息!");
return;
}
CString tmpstring=CString(tmp);
AfxMessageBox(tmpstring);
::RegCloseKey(hKEY);
修改注册表: unsigned char tmp[256];
sprintf((char *)tmp,"%s","hello");
CString tmpstring=tmp; HKEY hKEY;
DWORD type=REG_SZ;
DWORD size=tmpstring.GetLength()+1;
LPCTSTR path="Software\\Microsoft\\MS Setup (ACME)\\User Info" ; long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path,0,KEY_WRITE, &hKEY);
if(ret!=ERROR_SUCCESS)
{
MessageBox("错误: 修改无法打开有关的hKEY!");
return;
}
ret=::RegSetValueEx(hKEY,"DefName",NULL,type,tmp,size);
if(ret!=ERROR_SUCCESS)
{
MessageBox("错误: 无法修改有关注册表信息!");
return;
}
::RegCloseKey(hKEY);