求救高手!用VC编写的简单的WEB浏览器怎样通过代理服务器访问?

wxyxl 2001-04-11 10:11:00
我用VC写了一个简单的Web浏览器,但是我不懂他怎样通过代理服务器访问别的站点呢!就像IE那样做一个专门设置代理服务的对话框。谢谢!
...全文
255 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zb_china 2001-06-07
  • 打赏
  • 举报
回复
还不结了
honghunter 2001-06-07
  • 打赏
  • 举报
回复
关注
wxyxl 2001-04-13
  • 打赏
  • 举报
回复
InternetOpen在MSDN中算那一类的文档啊?我在目录里面怎么也找不到,但是在索引里面能找到!
wxyxl 2001-04-13
  • 打赏
  • 举报
回复
to:panda_w(好想睡啊!)
谢谢!如果直接用Socket行不行!
wxyxl 2001-04-13
  • 打赏
  • 举报
回复
InternetOpen是Win32函数吗?我怎么在MSDN中找到?
panda_w 2001-04-13
  • 打赏
  • 举报
回复
那你就用网络函数做一个浏览器吧
贴出一段
HINTERNET hNet = ::InternetOpen(
"MSDN SurfBear", // 1 LPCTSTR lpszCallerName
PRE_CONFIG_INTERNET_ACCESS, // 2 DWORD dwAccessType
"", // 3 LPCTSTR lpszProxyName
INTERNET_INVALID_PORT_NUMBER, // 4 INTERNET_PORT nProxyPort
0 // 5 DWORD dwFlags
) ;
InternetOpen 的第一个参数lpszCallerName指定正在使用网络函数的应用程序。当HTTP协议使用时,这个名字将变成用户代理。

第二个参数dwAccessType指定访问类型。在上面的例子里,PRE_CONFIG_INTERNET_ACCESS访问类型指示Win32网络函数使用登记信息去发现一个服务器。使用PRE_CONFIG_INTERNET_ACCESS需要正确设定登记信息。这里我耍了一个小花招并让网络开发者替我登记注册。

在登记注册中,把AccessType设置为1,则意味着“直接入网”,把AccessType 设置为2,意味着“使用网关”。把DisableServiceLocation设置为1,将让它使用一个已经命名的服务器;否则将找到一个使用注册信息和名字决议(RNR)应用程序接口的服务器,它是Windows接口的一部分。

其他的访问类型包括以下几种:

LOCAL_INTERNET_ACCESS只连接到当地Internet网站。例如,如果我使用SurfBear标志,我就只能访问Microsoft整体的Internet网站。
CERN_PROXY_INTERNET_ACCESS使用一个CERN代理去访问web。CERN代理是一个充当网关的web服务器并且能向要使用代理的服务器发送HTTP请求。
GATEWAY_INTERNET_ACCESS允许连接到World Wide Web。我可以用这个访问类型去访问web上的任何站点。
GATEWAY_PROXY_INTERNET_ACCESS和CERN_PROXY_ACCESS访问类型要求第三个参数给InternetOpen:服务器名(lpszProxyName)。PRE_CONFIG_INTERNET_ACCESS不要求服务器名,因为他可以为服务器搜索寄存信息。

NProxyPort参数用在CERN_PROXY_INTERNET_ACCESS中用来指定使用的端口数。使用INTERNET_INVALID_PORT_NUMBER相当于提供却省的端口数。

最后一个参数棗dwFlags,设置额外的选择。你可以使用 INTERNET_FLAG_ASYNC标志去指示使用返回句句柄的将来的Internet函数将为回调函数发送状态信息,使用InternetSetStatusCallback进行此项设置。
pioul 2001-04-12
  • 打赏
  • 举报
回复
不知有没有办法自己设置proxy不用设置ie选项?
wxyxl 2001-04-12
  • 打赏
  • 举报
回复
但是怎么通过代理跟外面的站点通讯呢?
hintel 2001-04-11
  • 打赏
  • 举报
回复
IE的设置记得好象与某个dll有关,调用时还要用到某个接口。
可以找些编程技巧的书看看
alanlee 2001-04-11
  • 打赏
  • 举报
回复
你的OpenURL()是有一个参数可以选择连接方式的
但是连接方式不能设置会自动取得IE的设置
以前我想找注册表中关于SOCKET代理的设置找不到
你看看MSDN好啦
111222 2001-04-11
  • 打赏
  • 举报
回复
void CYourCHtmlView::OnOption() //打开IE的INTERNET选项对话框,代码抄自、、、、、
{
typedef BOOL (WINAPI *LAUNCHCPL)(HWND);

HMODULE hInetcpl;
LAUNCHCPL cpl;
DWORD dw;

hInetcpl = ::LoadLibrary(_T("inetcpl.cpl"));
//hInetcpl = ::LoadLibraryEx(_T("inetcpl.cpl"), NULL, 0);
dw = ::GetLastError();
// always returns 0x0000007e?
TRACE1(_T("LoadLibrary returned on 0x%08x\n"), dw);
//TRACE1(_T("LoadLibraryEx returned on 0x%08x\n"), dw);

if(hInetcpl)
{
cpl = (LAUNCHCPL)GetProcAddress(hInetcpl, _T("LaunchInternetControlPanel"));
// always returns 0x0000007e?
dw = ::GetLastError();
TRACE1(_T("GetProcAddress returned on 0x%08x\n"), dw);
if(cpl)
{
BOOL b = cpl(this->GetSafeHwnd());
if(b)
TRACE0(_T("LaunchInternetControlPanel success\n"));
else
TRACE0(_T("LaunchInternetControlPanel failure\n"));
}
::FreeLibrary(hInetcpl);
dw = ::GetLastError();
TRACE1(_T("FreeLibrary returned on 0x%08x\n"), dw);
}
}

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧