• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版5d3a04304fdb0b05e4133ceb095e76cdab5d0c62 (tree)
时间2012-03-14 19:48:20
作者qwerty2501 <qwerty2501@user...>
Commiterqwerty2501

Log Message

規定のブラウザ決定処理変更

更改概述

差异

Binary files a/nlite.suo and b/nlite.suo differ
--- a/shareCookie/shareCookie.c
+++ b/shareCookie/shareCookie.c
@@ -112,10 +112,21 @@ static INLINE COOKIE_RESULT GetCookieSafari(LPCSTR targetString,LPCSTR targetEnd
112112
113113
114114 ///
115+///レジストリから規定のブラウザタイプを取得
116+///
117+static INLINE BROWSERTYPE getDefaultBrowserReg(HKEY hTopKey,LPCWSTR path,LPCWSTR sectionName);
118+
119+///
115120 ///クッキーコピー用のパスを取得
116121 ///
117122 static INLINE BOOL CookieFileCopy(LPCWSTR sourceFileName,LPWSTR pathBuf,int bufSize);
118123
124+
125+///
126+///ブラウザ名からブラウザタイプを取得
127+///
128+static INLINE BROWSERTYPE browserNameToBrowserType(LPCWSTR browserName);
129+
119130 const LPCWSTR FIREFOX_GET_COOKIE_SQL = L"SELECT a.name, a.value FROM moz_cookies a WHERE a.name = ?1 AND a.baseDomain = ?2 "; //ファイアフォックスクッキー取得用SQL
120131
121132
@@ -1158,80 +1169,97 @@ fileopenerr:
11581169
11591170 BROWSERTYPE getDefaultBrowserType(){
11601171
1161- BROWSERTYPE rslt = getDefaultBrowserTypeInvidialUser();
1172+ BROWSERTYPE rslt = getDefaultBrowserReg(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice",L"Progid");
11621173
11631174 if(rslt == BT_NOSETTING){
11641175
1165- rslt = getDefaultBrowserTypeLocalMachine();
1176+ rslt = getDefaultBrowserReg(HKEY_CLASSES_ROOT,L"http\\shell\\open\\command",L"");
11661177 }
11671178
11681179 return rslt;
11691180
11701181 }
11711182
1172-
1173-static BROWSERTYPE getDefaultBrowserTypeInvidialUser(){
1183+static INLINE BROWSERTYPE getDefaultBrowserReg(HKEY hTopKey,LPCWSTR path,LPCWSTR sectionName){
11741184
11751185 BROWSERTYPE rslt = BT_NOSETTING;
11761186 WCHAR browserName[_MAX_PATH];
11771187 DWORD cName = sizeof(browserName);
11781188 HKEY hKey;
11791189 //レジストリキーを読み取り専用でオープン
1180- if(RegOpenKeyEx(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice",0,KEY_READ,&hKey) != ERROR_SUCCESS){
1190+ if(RegOpenKeyEx(hTopKey,path,0,KEY_READ,&hKey) != ERROR_SUCCESS){
11811191 return BT_NOSETTING;
11821192 }
11831193
1184- RegQueryValueEx(hKey,TEXT("Progid"),(LPDWORD)NULL,(LPDWORD)NULL,(LPBYTE)&browserName,&cName);
1194+ RegQueryValueEx(hKey,sectionName,(LPDWORD)NULL,(LPDWORD)NULL,(LPBYTE)&browserName,&cName);
11851195
1186- if(_tcscmp(browserName,TEXT("ChromeHTML")) == 0){
1196+
11871197
1188- rslt = BT_GOOGLE_CHROME;
1198+ rslt = browserNameToBrowserType(browserName);
11891199
1190- } else if(_tcscmp(browserName,TEXT("IE.HTTP")) == 0 ){
11911200
1192- rslt = BT_INTERNET_EXPLORER;
11931201
1194- } else if(_tcscmp(browserName,TEXT("FirefoxURL"))==0){
1202+ RegCloseKey(hKey);
1203+ return rslt;
11951204
1196- rslt = BT_FIRE_FOX;
1205+}
11971206
1198- } else if(_tcscmp(browserName,TEXT("SafariURL")) == 0){
11991207
1200- rslt = BT_SAFARI;
1201- } else if(_tcscmp(browserName,TEXT("Opera.Protocol"))==0){
1208+static INLINE BROWSERTYPE browserNameToBrowserType(LPCWSTR browserName){
12021209
1203- rslt = BT_OPERA;
1210+ WCHAR browserNameBuf[_MAX_PATH];
1211+ wcscpy(browserNameBuf,browserName);
12041212
1205- } else if(_tcscmp(browserName,TEXT("Sleipnir2.HTTP"))==0){
1213+ CharUpperBuff(browserNameBuf,wcslen(browserNameBuf));
1214+
1215+ if(
1216+ _tcsstr(browserNameBuf,L"CHROME") !=NULL ||
1217+ _tcsstr(browserNameBuf,L"GOOGLECHROME") != NULL
1218+ ){
12061219
1207- rslt = BT_IE_COMPONENT;
1220+ return BT_GOOGLE_CHROME;
12081221
1209- } else {
1222+ } else if(
1223+ _tcsstr(browserNameBuf,L"IE") !=NULL ||
1224+ _tcsstr(browserNameBuf,L"INTERNETEXPLORER") !=NULL
1225+ ){
12101226
1211- rslt = BT_IE_COMPONENT;
1227+ return BT_INTERNET_EXPLORER;
12121228
1213- }
1214-
1229+ } else if(
1230+ _tcsstr(browserNameBuf,L"FIREFOX") !=NULL
1231+ ){
12151232
1216-
1233+ return BT_FIRE_FOX;
12171234
1235+ } else if(
1236+ _tcsstr(browserNameBuf,L"SAFARI") !=NULL
1237+ ){
12181238
1239+ return BT_SAFARI;
1240+ } else if(
1241+ _tcsstr(browserNameBuf,L"OPERA") !=NULL
1242+ ){
12191243
1220- RegCloseKey(hKey);
1221- return rslt;
1244+ return BT_OPERA;
12221245
1223-}
1246+ } else if(
1247+ _tcsstr(browserNameBuf,L"SLEIPNIR") !=NULL
1248+ ){
12241249
1250+ return BT_IE_COMPONENT;
12251251
1226-static BROWSERTYPE getDefaultBrowserTypeLocalMachine(){
1252+ } else {
12271253
1254+ return BT_IE_COMPONENT;
12281255
1229- BROWSERTYPE rslt = BT_NOSETTING;
1256+ }
12301257
1258+
1259+}
1260+
12311261
1232- return rslt;
12331262
1234-}
12351263
12361264
12371265