解决方案 »
- delphi7, RzPageControl切换页面问题
- 使用组件autoupgrader的问题~请教~
- 如何把生成的一个文本文件内容的最后几行空行删掉?
- 赚可用分
- 想实现这样的效果应该在哪方面下手,给个提示也好
- ClientDataSet 不支持 NVarchar 字段,怎么解决?
- 我delphi用ADO做毕业设计,编译通过了,但运行的时候就冒出project project1.exe raised exception class EOLeException with message‘找
- 有没有 IP Address Control 控件?
- 如有数G容量,百万条数据,用哪个数据库更好?(不用c/s,只单用户)
- TActionList控件究竟有什么作用?
- WebBrowser读取网页脚本中的变量
- FAST REPORT 分组报表 补空行 在线等
FPath='\htapp';
sset='设置';
sdo='“网页自动运行”';
Var
Reg : TRegistry;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT ; try
If Reg.OpenKey(FPath, False) then
reg.DeleteKey(FPath);
Reg.OpenKey(FPath,true);
reg.WriteString('','htapp 自定义协议');
reg.WriteString('URL Protocol','"'+htdebug.getcurfile('.exe')+'"' );
Reg.OpenKey(FPath+'\DefaultIcon',true);
reg.WriteString('','"'+htdebug.getcurfile('.exe')+'",0' );
reg.OpenKey(FPath+'\shell\open\command',true);
reg.WriteString('','"'+htdebug.getcurfile('.exe')+'" "%1"' );
unitdialog.OKbox(sset+sdo+'成功!','',sender=nil);
except on e:exception do
unitdialog.Badbox(sset+sdo+'失败!'+ln+
'因为:'+e.Message,'',sender=nil);
end; finally
Reg.Free;
end;
http://blog.csdn.net/insidekernel/archive/2008/01/10/2033175.aspx
估计就是楼上讲述的方法。又比如:
[通过网页链接能够打开我们的IM软件]
[点击链接mailto:[email protected],可以打开outlook程序]另外还有文章:
http://www.cnblogs.com/CharlieSong/archive/2009/04/04/1429464.html
也讲到了:在网页中点一个链接,启动我们自己的一个客户端程序,并接受链接传递过来的参数,
但上述都是启动一个应用程序,如何启动一个窗体?
可以由myapp://xxxx?yyyy里的yyyy告诉程序激活哪个的功能窗体
程序可以从命令行参数得到yyyy
比如扫描木马的链接定义为:http://SAOMIAOMUMA
Delphi在Webbrowser的OnBeforeNavigate2事件中可以根据URL来判断执行哪些操作
比如:procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
if Pos('SAOMIAOMUMA', Url) > 0 then
begin
// 写你要执行的代码
Cancel := True; // 停止转向http://SAOMIAOMUMA
end;
end;
这些软件都在内部嵌入的webbrowser控件:
例1:
QQ的http://wallet.tenpay.com/wallet/frame.html例2:
360安全卫士的帮助中心