ultimatepp/uppdev/MySupport/Windows.cpp
cxl 2e4b276e07 Merge continued
git-svn-id: svn://ultimatepp.org/upp/trunk@10263 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-10-04 08:34:39 +00:00

31 lines
1.3 KiB
C++

#include "support.h"
void DelKey(HKEY base_key, const char *dir, const char *key) {
HKEY hkey;
if(RegOpenKeyEx(base_key, dir, 0, KEY_READ, &hkey) != ERROR_SUCCESS)
return;
RegDeleteKey(hkey, key);
RegCloseKey(hkey);
}
bool AssociateFileType(const String ext, const String desc, const String app, const String icnf) {
SetWinRegString(GetFileTitle(app) + ext, "", ext, HKEY_CLASSES_ROOT);
SetWinRegString(desc, "", GetFileTitle(app) + ext, HKEY_CLASSES_ROOT);
SetWinRegString("\"" + app + "\" \"%1\"", "", GetFileTitle(app) + ext + String("\\Shell\\Open\\Command"), HKEY_CLASSES_ROOT);
if(icnf.GetLength() > 0) SetWinRegString(icnf, "", GetFileTitle(app) + ext + String("\\DefaultIcon"), HKEY_CLASSES_ROOT);
else SetWinRegString(app + ", 0", "", GetFileTitle(app) + ext + String("\\DefaultIcon"), HKEY_CLASSES_ROOT);
String buff = GetExeFileTypeAssociation(ext);
//buff = buff.Left(buff.Find(".exe")+5);
if(buff == app) return true;
else return false;
}
String GetExeFileTypeAssociation(const String ext) {
String buff = GetWinRegString("", GetWinRegString("", ext, HKEY_CLASSES_ROOT) + String("\\Shell\\Open\\Command"), HKEY_CLASSES_ROOT);
buff = buff.Left(buff.Find(".exe")+4);
if(buff.Left(1) == "\"") return buff.Right(buff.GetCount() - 1);
else return buff;
}