DELPHI实现通过URL触发自定义协议的软件
来源:互联网 发布:antlr python 编辑:程序博客网 时间:2024/05/15 23:45
{
*
*
* 文件名称:uMainForm.pas
* 文件类别:delphi 代码文件
*
* 文件版本:0.1
* 作 者:俞伟
* 完成时间;2008-01-28
* 联系方式: yu924@hotmail.com
* QQ: 183088201
*
*
}
unit uMainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Registry, ExtCtrls;
type
TMainForm = class(TForm)
StatusBar1: TStatusBar;
GroupBox1: TGroupBox;
btnRegProtocol: TButton;
btnUnRegProtocol: TButton;
btnClose: TButton;
Label1: TLabel;
Label2: TLabel;
txtProtocolName: TEdit;
txtProtocolApplication: TEdit;
btnBrowser: TButton;
chkUseAsParams: TCheckBox;
pnlProtocolUrl: TPanel;
procedure btnCloseClick(Sender: TObject);
procedure btnBrowserClick(Sender: TObject);
procedure btnRegProtocolClick(Sender: TObject);
procedure btnUnRegProtocolClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
function RegUrlProtocol(aProtocolName, aProtocolApplicationName: string; aUseParam: Boolean): Boolean;
function UnRegUrlProtocl(aProtocolName: string): Boolean;
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TMainForm.btnBrowserClick(Sender: TObject);
var
OpenDlg: TOpenDialog;
strFileName: string;
begin
OpenDlg := TOpenDialog.Create(nil);
try
OpenDlg.Filter := '协议文件(*.EXE)|*.EXE|全部文件(*.*)|*.*';
OpenDlg.DefaultExt := '*.EXE';
if OpenDlg.Execute then
begin
strFileName := Trim(OpenDlg.FileName);
if strFileName <> '' then
begin
txtProtocolApplication.Text := strFileName;
end;
end;
finally
FreeAndNil(OpenDlg);
end;
end;
procedure TMainForm.btnRegProtocolClick(Sender: TObject);
var
strProtocolName, strProtocolApplication: string;
begin
strProtocolName := Trim(txtProtocolName.Text);
strProtocolApplication := Trim(txtProtocolApplication.Text);
if strProtocolName = '' then
begin
MessageBox(Handle, '请输入协议名称.', '提醒', MB_OK + MB_ICONWARNING);
Exit;
end;
if strProtocolApplication = '' then
begin
MessageBox(Handle, '请设置协议程序.', '提醒', MB_OK + MB_ICONWARNING);
Exit;
end;
if RegUrlProtocol(strProtocolName, strProtocolApplication, chkUseAsParams.Checked) then
begin
MessageBox(Handle, '注册用户自定义协议成功.', '提示', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
function TMainForm.RegUrlProtocol(aProtocolName,
aProtocolApplicationName: string; aUseParam: Boolean): Boolean;
var
objReg: TRegistry;
begin
Result := False;
objReg := TRegistry.Create;
try
objReg.RootKey := HKEY_CLASSES_ROOT;
if objReg.OpenKey('/' + aProtocolName, True) then
begin
objReg.WriteString('', aProtocolName + 'Protocol');
objReg.WriteString('URL Protocol', aProtocolApplicationName);
if objReg.OpenKey('/' + aProtocolName + '/DefaultIcon', True) then
begin
objReg.WriteString('', aProtocolApplicationName + ',1');
end;
if objReg.OpenKey('/' + aProtocolName + '/shell/open/command', True) then
begin
if aUseParam then
objReg.WriteString('', '"' + aProtocolApplicationName + '" "%1"')
else
objReg.WriteString('', '"' + aProtocolApplicationName + '"');
end;
Result := True;
end;
finally
FreeAndNil(objReg);
end;
end;
function TMainForm.UnRegUrlProtocl(aProtocolName: string): Boolean;
var
objReg: TRegistry;
begin
Result := False;
objReg := TRegistry.Create;
try
objReg.RootKey := HKEY_CLASSES_ROOT;
objReg.DeleteKey(aProtocolName);
Result := True;
finally
FreeAndNil(objReg);
end;
end;
procedure TMainForm.btnUnRegProtocolClick(Sender: TObject);
var
strProtocolName: string;
begin
strProtocolName := Trim(txtProtocolName.Text);
if strProtocolName = '' then
begin
MessageBox(Handle, '请输入协议名称.', '提醒', MB_OK + MB_ICONWARNING);
Exit;
end;
if UnRegUrlProtocl(strProtocolName) then
begin
MessageBox(Handle, '卸载用户自定义协议成功.', '提示', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
pnlProtocolUrl.Caption := ParamStr(1);
end;
end.
- DELPHI实现通过URL触发自定义协议的软件
- 如何实现自定义的URL协议
- 如何实现自定义的URL协议
- JS自定义事件绑定--通过URL触发不同的点击事件
- 通过c# 实现自定义属性改变触发自定义事件 ,理解自定义事件及其触发过程
- 通过自定义URL协议在Web中启动本地应用程序
- 通过自定义URL协议在Web中启动本地应用程序
- 通过自定义URL协议在Web中启动本地应用程序
- 通过自定义URL协议在Web中启动本地应用程序
- 像腾讯QQ和Skype一样定义自己的类似HTTP的Web协议,可以通过URL来触发自己的程序(附源码)
- 通过 URL 协议实现从 Safari 等浏览器中跳转打开你的 app
- 通过URL协议实现从Safari等浏览器中跳转打开你的app
- 通过URL协议实现从Safari等浏览器中跳转回到你的app
- stream_register_wrapper 注册一个用 PHP 类实现的 URL 封装协议 允许用户实现自定义的协议处理器和流
- 注册自定义URL协议
- 注册自定义URL协议
- 注册自定义URL协议
- 自定义URL Protocol 协议
- html常用
- 怎么才能防止flash被下载
- 在VC中编译和使用OpenSSL
- 搭建Eclipse+MyEclip
- Vi命令收集及总结
- DELPHI实现通过URL触发自定义协议的软件
- Web服务策略框架 ( WS Policy Framework )
- SQL语句优化技术分析
- 跳转菜单打开新页面
- Visual Studio .NET使用技巧手册读书笔记之探索编译器
- 防止网页被ifr
- SQLSERVER操作实例
- 防止网页被切屏
- access加密后c#连接字符串