Beberapa hari yang lalu, atas permintaan pelanggan, saya benar -benar menggunakan VB dan VC untuk menulis hal ini lebih cepat, tetapi saya masih suka menggunakan Delphi
Pertama -tama, gunakan ActiveX, Comobj, Stdctrls, Shlobj, Filectrl;
Buat jalan pintas ke aplikasi saat ini di folder yang ditentukan
Prosedur TFORM1.MakElink (Foldername: String ; Proname, Lnkname, Deskripsi: String );
var
Workdir, destname: string ;
aobj: iunknown;
MyLink: Ishelllink;
Mypfile: ipersistfile;
Wfilename: lebar;
Curdir: Array [0..100] dari Char;
Mulai
DestName: = FolderName + lnkname;
aobj: = createComObject (clsid_shelllink);
Mylink: = aobj sebagai ishelllink;
Mypfile: = aobj sebagai ipersistfile;
GetCurrentDirectory (sizeof (Curdir), Curdir);
WorkDir: = Curdir;
proname: = trim (workdir)+'/'+proname;
dengan mylink lakukan
Mulai
SetShowCmd (sw_normal);
Setarguments ('');
SetDescription (pchar (deskripsi));
SetPath (pchar (proname));
SetWorkingDirectory (PCHAR (WorkDir));
akhir;
CreateDir (ExtractFilePath (DestName));
Wfilename: = destName;
Mypfile.save (pwchar (wfilename), false);
akhir;
// Dapatkan jalur ke grup start start-> Program->
fungsi tform1.getspecialfolder: string; // dapatkan starup floder
var
PIDL: Pitemidlist;
Tangani: Thandle;
Comp: tcomponent;
Linkdir: string ;
Mulai
Hasil: = '';
Comp: = self; // self.Owner;
handle: = (comp as tform) .handle;
Jika berhasil (shgetspecialfolderlocation (handle, csidl_common_startup, pidl)) lalu // jalur khusus lainnya juga dapat digunakan csidl_common atau, cukup periksa di delphi
Mulai
SetLength (linkdir, max_path);
ShgetPathFromIdlist (PIDL, PCHAR (LinkDir));
SetLength (linkdir, strlen (pchar (linkdir)));
Hasil: = linkdir+'/';
akhir;
akhir;
// Beberapa konten meminjam dari konten BBS monopoli