谁能帮我翻译下VB中openurl为delphi的

flashrhx2007 2009-06-17 10:01:07
'连接URL
Function OpenURL(ByVal sUrl As String) As String
On Error Resume Next
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String
Dim lNumberOfBytesRead As Long
Dim sBuffer As String
hOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = Space$(2048)
bRet = InternetReadFile(hOpenUrl, ByVal sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = Trim(sBuffer)
End Function
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyuhaso 2009-06-17
  • 打赏
  • 举报
回复
你吧这个procedure改造成FUNCTION嘛
flashrhx2007 2009-06-17
  • 打赏
  • 举报
回复
在问下,返回的值怎么提取? hServer里吗?
hongqi162 2009-06-17
  • 打赏
  • 举报
回复
uses

wininet;
flashrhx2007 2009-06-17
  • 打赏
  • 举报
回复
请问需要引用什么单元
hongqi162 2009-06-17
  • 打赏
  • 举报
回复
procedure   TForm1.Button1Click(Sender:   TObject);  
var
hNet,hServer: HINTERNET;
strURL: String;
begin
strURL := 'http://www.yahoo.net';

{ Open an internet session }
hNet := InternetOpen('Project1', // Agent
INTERNET_OPEN_TYPE_PRECONFIG, // ①AccessType
nil, // ProxyName
nil, // ProxyBypass
0); // or INTERNET_FLAG_ASYNC / INTERNET_FLAG_OFFLINE
{Agent contains the name of the application or entity calling the
Internet functions}

{ See if connection handle is valid }
if hNet = nil then
begin
ShowMessage('Unable to get access to WinInet.Dll');
Exit;
end;

{ Connect to the Http Server }
hServer := InternetOpenURL(hNet, // Handle from InternetOpen
PChar(strURL), // Http server
nil, //header
0, //headers Length
INTERNET_FLAG_RAW_DATA,// ②flag
0); // User defined number for callback
if hServer = nil then
begin
InternetCloseHandle(hNet);
ShowMessage(Format('Host "%s" is not available',[strURL]));
Exit;
end
else begin
ShowMessage(Format('Host "%s" is OK',[strURL]));
end;
{...}
end;

対上述的説明:
①AccessType
{ access types for InternetOpen }
const
INTERNET_OPEN_TYPE_PRECONFIG = 0; { use registry configuration }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG}
INTERNET_OPEN_TYPE_DIRECT = 1; { direct to net }
{$EXTERNALSYM INTERNET_OPEN_TYPE_DIRECT}
INTERNET_OPEN_TYPE_PROXY = 3; { via named proxy }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PROXY}
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4; { prevent using java/script/INS }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY}

②flag
{ flags for InternetOpenUrl: }
INTERNET_FLAG_RAW_DATA = $40000000; { receive the item as raw data }
{$EXTERNALSYM INTERNET_FLAG_RAW_DATA}
INTERNET_FLAG_EXISTING_CONNECT = $20000000; { do not create new connection object }
{$EXTERNALSYM INTERNET_FLAG_EXISTING_CONNECT}

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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