
DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径
DELPHI如何获得Webbrowser浏览文件夹选中的文件路径Webbrowser1.Nagivate('C:\');这下WEBBROWSER变成了一个WINDOWS资...
DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径
Webbrowser1.Nagivate('C:\'); 这下WEBBROWSER变成了一个WINDOWS资源管理器了
现在要在怎么知道 在Webbrowser1中选中的文件的完整路径了
用代码知道 在Webbrowser1中选中的文件的完整路径了 展开
Webbrowser1.Nagivate('C:\'); 这下WEBBROWSER变成了一个WINDOWS资源管理器了
现在要在怎么知道 在Webbrowser1中选中的文件的完整路径了
用代码知道 在Webbrowser1中选中的文件的完整路径了 展开
3个回答
展开全部
//哥封装的函数
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询