我被困在一个问题中很长一段时间了。
Windows 用户帐户名包含其中一些字符(Ö、Ü、Ä)。编辑:即使是汉字。所以基本上是ASCII未涵盖的字符。我有一个代理 pac 文件存储在 %appdata%\MyAppFolder 中。- 扩展后的路径包含一些特殊字符,如上面提到的那些。
我必须设置这条路径
IE->InternetOptions->Connections->LAN设置->使用自动配置脚本
This translates to:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL in the registry.
代码摘录:
wchar_t wzsPath[MAX_PATH];
wchar_t wszProxyUrl[INTERNET_MAX_URL_LENGTH];
SHGetFolderPath ( NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, wszPath );
// Construct Pac file path. – %appdata%\MyAppFolder\redirect.pac
StringCbPrintf (wszProxyUrl, sizeof(wszProxyUrl),
L"file://%s\\MyAppFolder\\redirect.pac", wszPath );
INTERNET_PER_CONN_OPTION_LIST *optionList = 0;
optionList->pOptions[INDEX].Value.pszValue = wszPath;
InternetSetOption ( NULL, INTERNET_OPTION_PER_CONNECTION_OPTION,
optionList, sizeof(INTERNET_PER_CONN_OPTION_LIST) );
问题是 InternetSetOption 设置的路径在 Registry 位置不正确。
例如,字符串“TestÖ”在注册表中设置为“TestÖ”。IE9 在浏览器中设置文本,但没有任何帮助。IE10 在注册表中设置垃圾值。这导致网络访问中断。