在delphi中建立程序的快捷方式--并将快捷方式放在开始->程序->的启动组中
2004-08-24 14:18
483 查看
前几天应客户要求写这个东西,其实用VB,VC可能更快些,不过,我还是喜欢用DELPHI
首先 uses ActiveX,ComObj,StdCtrls,ShlObj,FileCtrl;
在指定文件夹建立当前应用程序才的快捷方式
procedure Tform1.MakeLink(Foldername:string;proName, lnkName, Description: string);
var
WorkDir, DestName: string;
aObj: IUnknown;
MyLink: IShellLink;
MyPFile: IPersistFile;
WFileName: WideString;
curdir: array[0..100] of Char;
begin
DestName := Foldername + lnkName;
aObj := CreateComObject(CLSID_ShellLink);
MyLink := aObj as IShellLink;
MyPFile := aObj as IPersistFile;
GetCurrentDirectory(sizeof(curdir), curdir);
workdir := curdir;
proname := trim(WorkDir)+'/'+proname;
with MyLink do
begin
SetShowCmd(SW_NORMAL);
SetArguments('');
SetDescription(pChar(Description));
SetPath(pChar(proName));
SetWorkingDirectory(pChar(WorkDir));
end;
CreateDir(ExtractFilePath(DestName));
WFileName := DestName;
MyPFile.Save(PWChar(WFileName), False);
end;
//获得开始->程序->的启动组 的路径
function Tform1.GetSpecialFolder: string;//get starup Floder
var
Pidl: PItemIDList;
handle : THandle;
Comp: TComponent;
LinkDir : string;
begin
result:='';
Comp := self;//self.owner;
handle := (Comp as TForm).handle;
if SUCCEEDED(SHGetSpecialFolderLocation(handle, CSIDL_COMMON_STARTUP, Pidl)) then //别的特殊路径也可以用CSIDL_COMMON或的,在delphi中查一下就可以了
begin
SetLength(LinkDir, MAX_PATH);
SHGetPathFromIDList(Pidl, PChar(LinkDir));
SetLength(LinkDir, StrLen(PChar(LinkDir)));
result:=linkdir+'/';
end;
end;
//部分内容借鉴了大富翁bbs上的内容
首先 uses ActiveX,ComObj,StdCtrls,ShlObj,FileCtrl;
在指定文件夹建立当前应用程序才的快捷方式
procedure Tform1.MakeLink(Foldername:string;proName, lnkName, Description: string);
var
WorkDir, DestName: string;
aObj: IUnknown;
MyLink: IShellLink;
MyPFile: IPersistFile;
WFileName: WideString;
curdir: array[0..100] of Char;
begin
DestName := Foldername + lnkName;
aObj := CreateComObject(CLSID_ShellLink);
MyLink := aObj as IShellLink;
MyPFile := aObj as IPersistFile;
GetCurrentDirectory(sizeof(curdir), curdir);
workdir := curdir;
proname := trim(WorkDir)+'/'+proname;
with MyLink do
begin
SetShowCmd(SW_NORMAL);
SetArguments('');
SetDescription(pChar(Description));
SetPath(pChar(proName));
SetWorkingDirectory(pChar(WorkDir));
end;
CreateDir(ExtractFilePath(DestName));
WFileName := DestName;
MyPFile.Save(PWChar(WFileName), False);
end;
//获得开始->程序->的启动组 的路径
function Tform1.GetSpecialFolder: string;//get starup Floder
var
Pidl: PItemIDList;
handle : THandle;
Comp: TComponent;
LinkDir : string;
begin
result:='';
Comp := self;//self.owner;
handle := (Comp as TForm).handle;
if SUCCEEDED(SHGetSpecialFolderLocation(handle, CSIDL_COMMON_STARTUP, Pidl)) then //别的特殊路径也可以用CSIDL_COMMON或的,在delphi中查一下就可以了
begin
SetLength(LinkDir, MAX_PATH);
SHGetPathFromIDList(Pidl, PChar(LinkDir));
SetLength(LinkDir, StrLen(PChar(LinkDir)));
result:=linkdir+'/';
end;
end;
//部分内容借鉴了大富翁bbs上的内容
相关文章推荐
- 在delphi中建立程序的快捷方式--并将快捷方式放在开始->程序->的启动组中
- 【起航计划 022】2015 起航计划 Android APIDemo的魔鬼步伐 21 App->Launcher Shortcuts 为某个非主Activity在Home Screen上建立一个快捷方式
- win8 添加开机启动项 (类似win7系统中开始->选择要启动的程序)
- TQ2440裸奔程序>>2440init.s启动代码分析
- vs打包程序步骤 开始程序和卸载以及桌面快捷方式
- java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码
- Centos修炼----->centos7办公环境打造(No1--桌面快捷方式创建)
- 【VM】对VMware Workstation自动启动服务项的处理方法 & 以管理员身份启动快捷方式的设定方法
- Delphi编程实现程序快捷方式
- 如何为一个程序建立一个快捷方式
- vs2008打包web程序,并建立数据库建立快捷方式--小结
- 小菜开始学习算法(返璞归真->程序=数据结构+算法)
- Delphi 程序启动报错 "A call to an OS function failed."
- delphi中建立快捷方式的函数
- 第九周【项目1】在第8周项1的基础上(1)再定义一目运算符 -,-c相当于0-c(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然
- C# 创建快捷方式,如建立桌面和程序夹的快捷方式链接,并且上ALL USERS级别
- java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码
- Objectdock stacks docklet 无法启动程序快捷方式
- 用人类的思维方式去写更容易维护的代码——用<抽象-基础-逻辑>模式开发Java(Android)程序
- ubuntu 创建程序启动的快捷方式