数日前、顧客のリクエストで、私は実際にVBとVCを使用してこのことをより速く書きましたが、それでもDelphiを使用するのが好きです
まず第一に、Activex、comobj、stdctrls、shlobj、filectrlを使用します。
指定されたフォルダーの現在のアプリケーションのショートカットを作成する
手順tform1.makelink(foldername: string ; proname、lnkname、description: string );
var
workdir、destname: string ;
aobj:iunknown;
mylink:ishelllink;
mypfile:ipersistfile;
wfilename:widestring;
Curdir:Charの配列[0..100]。
始める
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;
MyLinkでは
始める
setShowcmd(sw_normal);
setarguments( '');
setdescription(pchar(description));
setPath(pchar(proname));
setworkingdirectory(pchar(workdir));
終わり;
createdir(extractfilepath(destname));
wfileName:= destName;
mypfile.save(pwchar(wfilename)、false);
終わり;
// start-> program->の開始グループへのパスを取得します - >
function tform1.getSpecialFolder:string; // starup floderを取得します
var
PIDL:PiteMidlist;
ハンドル:サンドル;
comp:tomponent;
Linkdir:文字列;
始める
結果:= '';
comp:= self; // self.owner;
ハンドル:=(tformとしてのcomp).handle;
成功した場合(ShgetSpecialFolderLocation(Handle、CSIDL_Common_Startup、PIDL)) 、//他の特別なパスも使用できます。
始める
setLength(linkdir、max_path);
shgetPathFromIdList(PIDL、PCHAR(linkdir));
setLength(linkdir、strlen(pchar(linkdir)));
結果:= linkdir+'/';
終わり;
終わり;
// Monopoly BBSコンテンツからコンテンツを借りています