如何勾選IE的網路設定 |
答題得分者是:turboted
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
我使用的是XP IE6.0, 但是Win2K/ME/Win98都會有這麼一個選項, 只是名字有可能不同 IE->工具->最後一項(網際網路選項) -> 連線->區域網路設定 裡面的第二項(IE 6.0是寫著"使用自動組態指令碼") 因為我的Notebook在公司需要打勾, 回到家裡要上網時, 又要把選項不打勾 @@~ 我有試著去找到Registry, 雖然可以用, 不過裡面的Registry好像有checksum
每當我改一次, 再回去看, 值又變了, 所以我不太想用這樣的方式, 覺得怪怪的 不知道有沒有人知道那一個API 或DCOM 還是正確的Registry修改方式呢?
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "AutoConfigURL"="www12345678jack" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:3c,00,00,00,0a,00,00,00,01,00,00,00,00,00,00, 00,00,00,00,00,06,00,00,00,64,65,6c,64,65,6c,01,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
是這個嗎 在這裡的東西可能還要試市 不只一個選項 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
引言: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "AutoConfigURL"="www12345678jack" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] "DefaultConnectionSettings"=hex:3c,00,00,00,0a,00,00,00,01,00,00,00,00,00,00, 00,00,00,00,00,06,00,00,00,64,65,6c,64,65,6c,01,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 是這個嗎 在這裡的東西可能還要試市 不只一個選項 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起沒錯, 就是那一個, 可是你如果把Disable/Enable的狀態都記下來 然後自己去填的話, 再用RegEdit去看, 有值會被改變唷, 感覺上是個CounterB)] 有點怕怕的, 所以後來我才不太敢這樣子玩, 不知道有沒有正確的設定方法呢? |
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
我用regedit /s 來登入沒有問題ㄚ 一個空值
一個自己的網址 要那一個自己 自己玩ok 哈哈 L sir 賣給阿啦 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
看一下這個吧
原文出處
http://www.codeproject.com/internet/changeproxy1.asp?print=true
Introduction Changing proxy settings of IE is a frequent requirement of mine. Then I got the idea of writing a tool by myself, at last. I have not found clear instructions on this. Many articles recommend to modify registry directly, but unfortunately their instruction is not enough. Most of them direct me to modify the following values in registry :- [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyEnable"=dword:00000001 "ProxyServer"=":" "ProxyOverride"="" "DisablePasswordCaching"=dword:00000001 Details I tested it and find that it does not work at least on my computer.( I access internet by ADSL connection.) So I backed up registry and modified proxy settings via Internet Explorer, finding that [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] is also changed. So I wrote the following code snippet to change proxy settings: void ShowError(long lerr) { LPVOID lpMsgBuf; if (!FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, lerr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL )) { return; } MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); LocalFree( lpMsgBuf ); } void CieproxyDlg::OnBnClickedOk() {//set proxy server UpdateData(); GetDlgItemText(IDC_EDIT1,m_sIEProxy); HKEY hk; LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", NULL,KEY_WRITE|KEY_SET_VALUE,&hk); if(lret==ERROR_SUCCESS&&NULL!=hk) { TCHAR* pbuf=m_sIEProxy.GetBuffer(1); lret=RegSetValueEx( hk,"ProxyServer",NULL,REG_SZ,pbuf,m_sIEProxy.GetLength()); DWORD dwenable=1; lret=RegSetValueEx(hk,"ProxyEnable",NULL,REG_DWORD, (LPBYTE)&dwenable,sizeof(dwenable)); RegCloseKey(hk); } const TCHAR* keyname3=_T( "software\\Microsoft\\windows\\currentversion\\Internet Settings\\Connections"); lret=RegOpenKeyEx(HKEY_CURRENT_USER,keyname3,NULL, KEY_READ|KEY_WRITE|KEY_SET_VALUE,&hk); if(lret==ERROR_SUCCESS&&NULL!=hk) { DWORD dwtype; char pbuf[256]; DWORD dwlen=sizeof(pbuf); const char* valname="Connection to adsl3"; lret=RegQueryValueEx(hk,valname,NULL,&dwtype,pbuf,&dwlen); if(lret!=ERROR_SUCCESS) { ShowError(lret); } pbuf[8] = 3;//enable proxy pbuf[4]=pbuf[4] 1; const char* p=m_sIEProxy.GetBuffer(1); memcpy(pbuf 16,p,m_sIEProxy.GetLength()); char c=0; for(int i=m_sIEProxy.GetLength();i<20;i ) pbuf[16 i]=c; m_sIEProxy.ReleaseBuffer(); lret=RegSetValueEx(hk,valname,NULL,REG_BINARY,pbuf,dwlen); RegCloseKey(hk); } DWORD dwret; SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL, SMTO_NORMAL,1000,&dwret); } void CieproxyDlg::OnBnClickedDisableProxy() { UpdateData(); GetDlgItemText(IDC_EDIT1,m_sIEProxy); HKEY hk; LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", NULL,KEY_WRITE|KEY_SET_VALUE,&hk); if(lret==ERROR_SUCCESS&&NULL!=hk) { DWORD dwenable=0; lret=RegSetValueEx(hk,"ProxyEnable",NULL,REG_DWORD, (LPBYTE)&dwenable,sizeof(dwenable)); RegCloseKey(hk); } const TCHAR* keyname3=_T( "software\\Microsoft\\windows\\currentversion\\Internet Settings\\Connections"); lret=RegOpenKeyEx(HKEY_CURRENT_USER,keyname3, NULL,KEY_READ|KEY_WRITE|KEY_SET_VALUE,&hk); if(lret==ERROR_SUCCESS&&NULL!=hk) { DWORD dwtype; char pbuf[256]; DWORD dwlen=sizeof(pbuf); const char* valname="Connection to adsl3"; lret=RegQueryValueEx(hk,valname,NULL,&dwtype,pbuf,&dwlen); if(lret!=ERROR_SUCCESS) { ShowError(lret); } pbuf[8] = 1;//enable proxy pbuf[4]=pbuf[4] 1; lret=RegSetValueEx(hk,valname,NULL,REG_BINARY,pbuf,dwlen); RegCloseKey(hk); } DWORD dwret; SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL,SMTO_NORMAL, 1000,&dwret); } Problem with above code is that existing Internet Explorer instances don't know the change of settings. What is more, changing registry directly is not an elegant method. Then the following must be more attractive : BOOL SetConnectionOptions(LPCTSTR conn_name,LPCTSTR proxy_full_addr) { //conn_name: active connection name. //proxy_full_addr : eg "210.78.22.87:8000" INTERNET_PER_CONN_OPTION_LIST list; BOOL bReturn; DWORD dwBufSize = sizeof(list); // Fill out list struct. list.dwSize = sizeof(list); // NULL == LAN, otherwise connectoid name. list.pszConnection = conn_name; // Set three options. list.dwOptionCount = 3; list.pOptions = new INTERNET_PER_CONN_OPTION[3]; // Make sure the memory was allocated. if(NULL == list.pOptions) { // Return FALSE if the memory wasn't allocated. OutputDebugString("failed to allocat memory in SetConnectionOptions()"); return FALSE; } // Set flags. list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS; list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT | PROXY_TYPE_PROXY; // Set proxy name. list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER; list.pOptions[1].Value.pszValue = proxy_full_addr;//"http://proxy:80"; // Set proxy override. list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS; list.pOptions[2].Value.pszValue = "local"; // Set the options on the connection. bReturn = InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize); // Free the allocated memory. delete [] list.pOptions; InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0); InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0); return bReturn; } BOOL DisableConnectionProxy(LPCTSTR conn_name) { //conn_name: active connection name. INTERNET_PER_CONN_OPTION_LIST list; BOOL bReturn; DWORD dwBufSize = sizeof(list); // Fill out list struct. list.dwSize = sizeof(list); // NULL == LAN, otherwise connectoid name. list.pszConnection = conn_name; // Set three options. list.dwOptionCount = 1; list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount]; // Make sure the memory was allocated. if(NULL == list.pOptions) { // Return FALSE if the memory wasn't allocated. OutputDebugString("failed to allocat memory in DisableConnectionProxy()"); return FALSE; } // Set flags. list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS; list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT ; // Set the options on the connection. bReturn = InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize); // Free the allocated memory. delete [] list.pOptions; InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0); InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0); return bReturn; } The usage is very straightforward: //set proxy const char* connection_name="Connection to adsl3"; SetConnectionOptions(connection_name,"62.81.236.23:80"); //disable proxy DisableConnectionProxy(connection_name); Existing Internet Explorer instances are notified by INTERNET_OPTION_SETTINGS_CHANGED and INTERNET_OPTION_REFRESH發表人 - turboted 於 2003/05/27 13:58:10 |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |