Delphi打开长于260个字符的网页
2015-09-15 20:21
351 查看
当用
function OpenURL(const URL: string): Boolean;
var
LUrl: string;
begin
Result := False;
LUrl := Trim(URL);
if Length(LUrl) > 0 then
begin
LUrl := '"' + LUrl + '"';
Result := ShellExecute(Application.Handle, nil, 'explorer.exe', PChar(LUrl), nil, SW_SHOWNORMAL) > 32;
end;
end;
时,Url的参数大于260个字符时,就会被截断,解决办法是,获取默认浏览器,来打开网页。'explorer参数长度有限制。
implementation
uses
Registry, ShellAPI;
{$R *.dfm}
function GetDefBrower: string;
var
LReg:TRegistry;
begin
// HKEY_CLASSES_ROOT\Http\shell\open\command
Result := '';
LReg := TRegistry.Create;
try
LReg.RootKey := HKEY_CLASSES_ROOT;
if LReg.OpenKey('Http\shell\open\command', False)then
if LReg.ValueExists('')then
Result:=LReg.ReadString('');
LReg.Closekey;
finally
LReg.Free;
end;
end;
function OpenURL(const URL: string): Boolean;
var
LUrl: string;
LDefBrower: string;
LStrList: TStringList;
begin
Result := False;
LStrList := TStringList.Create;
try
LStrList.Delimiter := '"';
LStrList.StrictDelimiter := True;
LStrList.DelimitedText := GetDefBrower;
if LStrList.Count > 0 then
LDefBrower := LStrList.Strings[0];
finally
LStrList.Free;
end;
if not FileExists(LDefBrower) then
LDefBrower := 'iexplore.exe';
LUrl := Trim(URL);
if Length(LUrl) > 0 then
begin
LUrl := '"' + LUrl + '"';
Result := ShellExecute(Application.Handle, nil, PChar(LDefBrower), PChar(LUrl), nil, SW_SHOWNORMAL) > 32;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenURL('baidu.com');
end;
function OpenURL(const URL: string): Boolean;
var
LUrl: string;
begin
Result := False;
LUrl := Trim(URL);
if Length(LUrl) > 0 then
begin
LUrl := '"' + LUrl + '"';
Result := ShellExecute(Application.Handle, nil, 'explorer.exe', PChar(LUrl), nil, SW_SHOWNORMAL) > 32;
end;
end;
时,Url的参数大于260个字符时,就会被截断,解决办法是,获取默认浏览器,来打开网页。'explorer参数长度有限制。
implementation
uses
Registry, ShellAPI;
{$R *.dfm}
function GetDefBrower: string;
var
LReg:TRegistry;
begin
// HKEY_CLASSES_ROOT\Http\shell\open\command
Result := '';
LReg := TRegistry.Create;
try
LReg.RootKey := HKEY_CLASSES_ROOT;
if LReg.OpenKey('Http\shell\open\command', False)then
if LReg.ValueExists('')then
Result:=LReg.ReadString('');
LReg.Closekey;
finally
LReg.Free;
end;
end;
function OpenURL(const URL: string): Boolean;
var
LUrl: string;
LDefBrower: string;
LStrList: TStringList;
begin
Result := False;
LStrList := TStringList.Create;
try
LStrList.Delimiter := '"';
LStrList.StrictDelimiter := True;
LStrList.DelimitedText := GetDefBrower;
if LStrList.Count > 0 then
LDefBrower := LStrList.Strings[0];
finally
LStrList.Free;
end;
if not FileExists(LDefBrower) then
LDefBrower := 'iexplore.exe';
LUrl := Trim(URL);
if Length(LUrl) > 0 then
begin
LUrl := '"' + LUrl + '"';
Result := ShellExecute(Application.Handle, nil, PChar(LDefBrower), PChar(LUrl), nil, SW_SHOWNORMAL) > 32;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenURL('baidu.com');
end;
相关文章推荐
- delphi编译选项
- Delphi 截取被遮挡窗口图片
- Delphi 6Bit 编码
- Delphi读取文本文件的最后一行
- Delphi的TDatetime转换成C#的DateTime
- 关于delphi PAServer 远程调试DLL文件
- Delphi中利用钩子实现QQ聊天窗口的修改
- delphi android 录像
- FMX中一些delphi与C++ Builder语法的对比
- WinAPI: DrawTextEx - 多功能文本绘制 Delphi需要把&替换成&&才可以
- delphi完美经典-第16章 Delphi数据库程序设计----使用BDE组件
- 图表制作工具TeeChart Pro VCL v2015.16发布【附下载】
- Delphi XE10 精简 支持 Android 、 IOS 跨平台开发
- Delphi 实现检测线程类TThread是否结束
- DELPHI线程例子-FC
- 用DELPHI工具编制开发生成二维条码
- Delphi调用C#写的webservice
- Delphi pointer
- Delphi XE7,C++ Builder XE7,RAD Studio XE7 v21.0.17017.3725(With Update 1) 官方下载激活
- Delphi XE6,C++ Builder XE6,RAD Studio XE6 v20.0.16277.1276(With Update 1) 官方下载激活