windows - 如何为指向特定 firebird 数据库存档的应用程序创建快捷方式?
问题描述
如何为指向特定 firebird 数据库存档的应用程序创建快捷方式?
就像是:
\\192.168.235.5\application\app.exe \\192.168.235.2:3050:C:\firebird\db.fdb
- \\192.168.235.5\application\app.exe -> 运行正常且没有客户端计算机的应用程序的路径。所有机器从服务器运行应用程序;和
- \\192.168.235.2:3050:C:\firebird\db.fdb -> 情况说明:数据库存档存储在另一台机器上。
我想我在几年前看到了一个启动器,当我使用 Windows 时,使用这个角色。也许在运行银行应用程序的机器中,财务部门负责管理树企业。那是12年。现在我一直在使用 Linux。
此应用程序可以与不同的数据库一起运行,并且客户端计算机可以有多个快捷方式。
解决方案
这里经过一个 Delphi 函数通过代码创建快捷方式:
function CreateShellLink(
const ATargetName : String;
const AArguments : String;
const ALinkFolder : String;
const ALinkName : String;
const ADescription : String): Boolean;
var
ISLink : IShellLink;
IPFile : IPersistFile;
LinkFileName : String;
hr : HRESULT;
const
IID_IPersistFile: TGUID = (
D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
begin
Result := FALSE;
if ALinkName = '' then
Exit;
hr := CoCreateInstance(CLSID_ShellLink,
nil,
CLSCTX_INPROC_SERVER,
IID_IShellLink,
ISLink);
if not Succeeded(hr) then
Exit;
hr := ISLink.QueryInterface(IID_IPersistFile, IPFile);
if not Succeeded(hr) then
Exit;
ISLink.SetDescription(PChar(ADescription));
ISLink.SetPath(PChar(ATargetName));
ISLink.SetWorkingDirectory(PChar(ExtractFilePath(ATargetName)));
ISLink.SetArguments(PChar(AArguments));
ForceDirectories(ALinkFolder);
LinkFileName := IncludeTrailingBackslash(ALinkFolder) +
ChangeFileExt(ALinkName,
'.lnk');
DeleteFile(LinkFileName);
if IPFile.Save(PChar(LinkFileName), FALSE) = S_OK then
Result := TRUE;
end;
使用示例:
CreateShellLink('C:\Program Files\Notepad++\notepad++.exe',
'E:\Temp\BugReport1.txt',
'C:\Users\MyUserCode\Desktop',
'ShortcutTest',
'Demo of CreateShellLink');
当然,与其硬编码dektop文件夹,不如查询系统获取桌面文件夹。如果您不知道如何执行此操作并且没有自己找到,请提出一个单独的问题。
应用于您的问题数据,调用变为:
CreateShellLink('\\192.168.235.5\application\app.exe',
'\\192.168.235.2:3050:C:\firebird\db.fdb',
'C:\Users\MyUserCode\Desktop',
'Databse access',
'Use this shortcut to start database access');
推荐阅读
- julia - 求解线性方程组
- asp.net-mvc - 继承映射asp.net mvc
- laravel - 错误打开流失败:上传视频时权限被拒绝
- android - Textview水平和垂直滚动
- node.js - MongoDB 官方 Docker 映像初始化脚本未运行
- python - 熊猫:merge_asof 方法。用 NaN 代替零保持插值
- android - 如何保护 API Key 和 AppID 被中间拦截?
- java - 我想为我的 android 应用创建一个多用户登录
- microsoft-cognitive - QnAMaker Update API 如何知道要更新哪一个?
- arangodb - 有效消除旧文档