DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径

DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径,第1张

//哥封装的函手嫌数

function GetWebPath(web:TWebBrowser): string

var

item : TLvItem

clsName: array[0..MAX_PATH] of char

hwndLv: HWND

selCount,fileCount,selMark:integer

fileName: array[0..MAX_PATH] of char

begin

hwndLV := GetWindow(web.Handle,GW_CHILD)

hwndLV := GetWindow(hwndLV,GW_CHILD)

GetClassName( hwndLV,clsName,MAX_PATH)

if(UpperCase(clsName)<>'SYSLISTVIEW32')then Exit

Result := web.LocationURL

Result := StringReplace(Result,'file:///','',[rfIgnoreCase])

Result := StringReplace(Result,'/','\',[rfReplaceAll])

if(Result[length(Result)]<>'\')then

Result := Result + '\'

fileCount := ListView_GetItemCount(hwndLV)

selCount := ListView_GetSelectedCount(hwndLV)

selMark := ListView_GetSelectionMark(hwndLV)

if(selCount=0)or(selMark=-1)then

exit

ListView_GetItemText(hwndLV,selMark,0,@fileName[0],MAX_PATH)

Result := Result + fileName

end

//调用拦桐示简薯坦例

procedure TForm1.Button1Click(Sender: TObject)

begin

ShowMessage( GetWebPath(WebBrowser1) )

end

注意:

uses commctrl

老实说不一定要webBrowser,这是Windows下载文件界面啊,不是VB.Net画出氏兆来的。

的是做下载文件,WebClient.DownloadFile方法就足够了,调用方法后会自动d出Windows下载任务窗口。

在VS.NET里也提供了一个com接口,可以直接调用迅雷的dll,下载文件可以让你自由选择是用迅雷下载还是通型禅过Windows下载任务来执行下载。

webBroser下载文件

FileInfo file = new System.IO.FileInfo(Server.MapPath(path))

            if (File.Exists(Server.MapPath(path)))

            {

                string name = Path.GetFileName(Server.MapPath(path))

                //存在文件

                Response.Clear()

                Response.Buffer = false

                //通知浏览器下载文件而不是打开 

                Response.ContentType = "application/octet-stream"

                //下载的文件名

                Response.AppendHeader("content-disposition", "attachmentfilename=" + name)

                //文件的大小

                Response.AppendHeader("Content-Length",   file.Length.ToString())

                Response.WriteFile(path)

            }

介绍一个更简单的方法给你,从webbrowser获取点击的超连接,然后自由选择下载,先在引用里引用com组件

然后在点击事件中加代码

string url = webBrowser1.Document.Links[1].GetAttribute("href")

ThunderAgentLib.AgentClass agent = 卜核尘new  ThunderAgentLib.AgentClass()//创建对象 

agent.AddTask(url, "默认保存文件名", "C:\\默认路径", "", "", 1, 0, 5)

agent.CommitTasks2(1)//提交

我用的是C#代码,VB.NET大同小异


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12139694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存