怎么样把当前的 IE 的URL返回给自己开发的WEB浏览器?(100分)

  • 主题发起人 主题发起人 sqlss_18
  • 开始时间 开始时间
S

sqlss_18

Unregistered / Unconfirmed
GUEST, unregistred user!
用DELHIL6.0开发一个小型的网页浏览器时,出现一个问题:
在自己开发的浏览器浏览网页时,当按住 SHIFT+单击网页链接时
会调用 IE 打开,而不是在自己的浏览器打开,请问怎么样编,才能解决这个问题?
 
首先你要屏蔽到默认的SHIFT+单击网页链接,之后就是取得你鼠标所指向的连接,
连结取得之后你就可以根据自己的要求作相应操作了。
 
怎样获得鼠标所指向的连接?可以详细点吗?
 
取得连结,在WebBrowser的onStatusTextChange中取得
procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
Caption := Text;
end;
 
多谢了,我还有一个问题:在DELPHI 6。0怎样才能一次性关闭几个或十几个不明确程序!
(不知道的程序的名称或某一时刻正在运行的是A,C,F,W。。程序,
而某一时刻是可能是C,D,E。。程序),怎样才能做到!
 
结束不明确的程序?我觉得你所说的不明确,应该是有某种规律的,以下是结束以外部程序
(计算器)的方法,我想你在此基础上改动一下能够满足你的要求,反正原理是得到某一应
用程序的窗口句柄并结束它。

var
HWndClose : HWnd;
begin
// find the exist calculator window
HWndClose := FindWindow(nil, '计算器')
// close the exist Calculator
if HWndClose <> 0 then
SendMessage(HWndClose, WM_CLOSE, 0, 0);
end;
 
但是我要的是结束一些程序在运行期间生产的,如别人打开的程序,我们没办法知道别人打开的WORD或是EXLSE,其或它程序或其它对话框!
HWndClose := FindWindow(nil, '计算器');用不了呀!
 
你的意思是说你想要结束某一段时间内运行的程序吗?如果是这样的话我觉得可以这样做:、
先得到所有的当前运行的进程,过一段时间后取得新的进程序列,比较之后删除新增的。
下面是列出说与进程和结束进程的例子,其中只有一ListBox和Button。希望对你有所帮助。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons,TLHelp32,shellapi;

type
TProcessInfo=Record
ExeFile:string;
ProcessID:Dword;
end;
ProcessInfo=^TProcessInfo;//////////
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure ProcessList(var pList: TList);
{ Private declarations }
public
Current:TList;////////////
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ProcessList(Var pList:TList);
var p:ProcessInfo;
ok:Bool;
ProcessListHandle:THandle;
ProcessStruct:TProcessEntry32;
begin
pList:=TList.Create;
pList.Clear;
ProcessListHandle:=CreateToolHelp32SnapShot(TH32cs_SnapProcess,0);
ProcessStruct.dwSize:=SizeOf(ProcessStruct);
ok:=Process32First(ProcessListHandle,ProcessStruct);
while integer(ok)<>0 do
begin
New(p);
p.ExeFile:=ProcessStruct.szExeFile;
p.ProcessID:=ProcessStruct.th32ProcessID;
pList.Add(p);
ok:=Process32Next(ProcessListHandle,ProcessStruct);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
p:ProcessInfo;
begin
current:=TList.Create;
current.Clear;
ListBox1.Clear;
ProcessList(current);
for i:=0 to current.Count-1 do
begin
new(p);
p:=Current.Items;
ListBox1.Items.Add(p.ExeFile);
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var h:Thandle;
a:Dword;
p:ProcessInfo;
begin
if ListBox1.ItemIndex>=0 then
begin
p:=Current.Items[ListBox1.ItemIndex];
h:=OpenProcess(Process_All_Access,true,p.ProcessID);
GetExitCodeProcess(h,a);
if integer(TerminateProcess(h,a))<>0 then //success!
begin
/////
end
else ShowMessage('关闭进程'+#13
+ListBox1.Items[ListBox1.ItemIndex]+#13
+'失败!');
end;

end;

end.
 
调试差不多了,多谢呀!
 
我想把 IE 中的 “保存Web页”这个对话框关闭!但关闭不了!要怎样才能做到呀!
 
后退
顶部