Vor ein paar Tagen habe ich auf Anfrage des Kunden tatsächlich VB und VC verwendet, um dieses Ding schneller zu schreiben, aber ich benutze immer noch gerne Delphi
Verwenden Sie zunächst ActiveX, Comobj, Stdctrls, Shlobj, Filectrl;
Erstellen Sie eine Abkürzung zur aktuellen Anwendung im angegebenen Ordner
Procedure tform1.makelink (firtename: string ; proname, lnkname, Beschreibung: String );
var
WorkDir, Destname: String ;
AOBJ: IUKNNOWN;
Mylink: iShellLink;
Mypfile: ipersistfile;
WFileName: Widestring;
Curdir: Array [0..100] von Char;
Beginnen
Destname: = firmename + lnkname;
AOBJ: = CreateComObject (clSID_ShellLink);
Mylink: = aobj as iShelllink;
Mypfile: = aoBj als ipersistfile;
GetCurrentDirectory (Sizeof (Curdir), Curdir);
WorkDir: = Curdir;
Proname: = trim (WorkDir)+'/'+Proname;
mit mylink tun
Beginnen
SetShowcmd (sw_normal);
SetArguments ('');
SetDescription (pchar (Beschreibung));
SetPath (pchar (proname));
SetworkingDirectory (pchar (workDir));
Ende;
Erstellte (extractFilepath (destname));
WFileName: = destname;
Mypfile.save (pwchar (WFileName), falsch);
Ende;
// den Weg zur Startgruppe von Start-> Programm-> Holen Sie sich
Funktion tForm1.getSpecialFolder: String; // Sterne Floder erhalten
var
PIDL: Pitemidlist;
Handle: Thandle;
Comp: tcomponent;
LinkDir: String ;
Beginnen
Ergebnis: = '';
Comp: = self; // self.besitzer;
Handle: = (comp as tform) .handle;
Wenn der Erfolg (shGetSpecialFolderLocation (Handle, csidl_common_startup, pIDL)) , können andere spezielle Pfade auch CSIDL_Common verwendet werden oder überprüfen Sie es einfach in Delphi
Beginnen
SetLength (linkDir, max_path);
ShgetPathfromidList (PIDL, pchar (linkDir));
SetLength (linkDir, strlen (pchar (linkDir)));
Ergebnis: = linkDir+'/';
Ende;
Ende;
// Einige der Inhalte leihen sich von Monopoly BBS -Inhalten