如何象调用“在新窗口中打开”一样用IE来打开网页WebBrowserk中所显示的网页。
解决方案 »
- MDI显示delphi登陆界面的问题
- delphi 判断电子邮件地址结束
- 我用WinExec(PChar('ipconfig /all > E:\1.txt'), SW_HIDE), 为什么无法生成文件?
- ★★★ WMV文件有什么好的方法加密! ★★★
- 请问各位仁兄,哪里有Delphi的安装制作程序可以下载?
- 数据库恢复!急!
- 急救!!!!分数不够我可以加,上限500!
- 做一个C/S的桌面程序能放在桌面右下角,隔一段时间检测一次数据库,发现有新数据是将其用打印机打印出来
- ?没有错误,但为何这个update不能更新数据?
- Delphi中怎样把记录保存到SQL Server中???
- ADOQuery1.DeleteRecords(arAll)会出错:operation is not allowed in this context,找不到出错的原因!
- QQ找回密码了,散分
uses
DdeMan,
{$IFDEF WIN32}
Registry; {We will get it from the registry}
{$ELSE}
IniFiles; {We will get it from the win.ini file}
{$ENDIF}{$IFNDEF WIN32}
const MAX_PATH = 144;
{$ENDIF}function GetProgramAssociation (Ext : string) : string;
var
{$IFDEF WIN32}
reg: TRegistry;
s : string;
{$ELSE}
WinIni : TIniFile;
WinIniFileName : array[0..MAX_PATH] of char;
s : string;
{$ENDIF}
begin
{$IFDEF WIN32}
s := '';
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
if reg.OpenKey('.' + ext + '\shell\open\command',
false) <> false then begin
{The open command has been found}
s := reg.ReadString('');
reg.CloseKey;
end else begin
{perhaps thier is a system file pointer}
if reg.OpenKey('.' + ext,
false) <> false then begin
s := reg.ReadString('');
reg.CloseKey;
if s <> '' then begin
{A system file pointer was found}
if reg.OpenKey(s + '\shell\open\command',
false) <> false then
{The open command has been found}
s := reg.ReadString('');
reg.CloseKey;
end;
end;
end;
{Delete any command line, quotes and spaces}
if Pos('%', s) > 0 then
Delete(s, Pos('%', s), length(s));
if ((length(s) > 0) and
(s[1] = '"')) then
Delete(s, 1, 1);
if ((length(s) > 0) and
(pos('"', s) > 0)) then
Delete(s, pos('"', s), Length(s));
while ((length(s) > 0) and
(s[length(s)] = #32)) do
Delete(s, Length(s), 1);
{$ELSE}
GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));
StrCat(WinIniFileName, '\win.ini');
WinIni := TIniFile.Create(WinIniFileName);
s := WinIni.ReadString('Extensions',
ext,
'');
WinIni.Free;
{Delete any command line}
if Pos(' ^', s) > 0 then
Delete(s, Pos(' ^', s), length(s));
{$ENDIF}
result := s;
end;procedure StartNewBrowserWindow(URL : string);
var
DDEConv : TDDEClientConv;
URLFired : bool;
App : string;
UpApp : string;
p : array[0..MAX_PATH] of char;
begin
UrlFired := false;
App := GetProgramAssociation('HTM');
UpApp := Uppercase(App);
Delete(App, Pos('.EXE', UpAPP), length(App));
if Pos('NETSCAPE.EXE',
UpApp) > 0 then begin
DDEConv:=TDDEClientConv.Create(nil);
DDEConv.ServiceApplication := App;
if DDEConv.SetLink('NETSCAPE' , 'WWW_OpenURL') then
if DDEConv.RequestData(URL +
',,0x0,0x0') <> nil then
if DDEConv.SetLink('NETSCAPE', 'WWW_Activate') then
URLFired := DDEConv.RequestData('0xFFFFFFFF,0x0') <> nil;
DDEConv.Free;
end else
if Pos('IEXPLORE.EXE',
UpApp) > 0 then begin
DDEConv:=TDDEClientConv.Create(nil);
DDEConv.ServiceApplication := App;
if DDEConv.SetLink('iexplore', 'WWW_OpenURL') then
if DDEConv.RequestData(URL + ',,0') <> nil then
if DDEConv.SetLink('iexplore', 'WWW_Activate') then
URLFired := DDEConv.RequestData('0,0') <> nil;
DDEConv.Free;
end;
if UrlFired = false then
WinExec(StrPCopy(@p, URL), SW_SHOWNORMAL);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
StartNewBrowserWindow('http://www.borland.com');
StartNewBrowserWindow('http://www.yahoo.com');
end;
那么
ShellExecute(0, 'Open', 'http://bbs.china.com' , nil, nil, sw_shownormal) ;
注意,在uses中请加入ShellApi
参考http://www.euromind.com/iedelphi/embeddedwb/onnewwindow.htm