![]() |
Re: Verknüpfung erstellen?
Hi!
Du musst min. mal noch SHLOBJ oben zu den uses dazu schreiben, evtl. noch mehr. Markiere einfach das wort, dass er nicht kennt und drücke F1. Ciao Frederic |
Re: Verknüpfung erstellen?
Hi,
außerdem noch ShellAPI. ;) Chris |
Re: Verknüpfung erstellen?
Nachdem ich SHLOBJ in die Uses-Klausel aufgenommen hab, hat sich die Anzahl der Fehldermeldungen stark verringert.
[Fehler] Unit2.pas(35): Undefinierter Bezeichner: 'IPersistFile' [Fehler] Unit2.pas(45): Undefinierter Bezeichner: 'CoCreateInstance' [Fehler] Unit2.pas(47): Undefinierter Bezeichner: 'CLSCTX_INPROC_SERVER' [Fehler] Unit2.pas(56): Operator oder Semikolon fehlt [Fehler] Unit2.pas(58): Operator oder Semikolon fehlt [Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit2.pas' kann nicht compiliert werden Ich hab dann versucht, die Sachen mit F1 nachzuschlagen, aber in dem Englischen Text(trotz deutscher Delphi-Version) konnte ich keine Hilfe für mich finden, bzw. hab sie nicht verstanden :( edit: shellAPI hab ich auch hinzugefügt, hat mir jedoch in den Fehlermeldungen keine Änderung gebracht :( |
Re: Verknüpfung erstellen?
Hi!
Die hier evtl. mal noch: ActiveX, ComObj; Ciao Frederic |
Re: Verknüpfung erstellen?
Jetzt Compiliert Delphi mein programm. Wenn ich jetzt die Verknüpfung erstellen will, beendet sich mein Programm und ein Textfenster erscheint.
Zitat:
Delphi-Quellcode:
Wobei MyPath1 eine Variable ist, um den Programmpfad herauszufinden. Was ist falsch?
CreateLink (MyPath1+'Project2.exe', 'F:\Verknüpfung.exe', 'Verknüpfung');
|
Re: Verknüpfung erstellen?
Hier, ein wenig googeln hätte nicht geschadet:
Delphi-Quellcode:
lpszPathObj = Datei, die verlinkt werden soll
function CreateLink(lpszPathObj,lpszPathLink,lpszDesc:string):Boolean;
var psl : IShellLink; ppf : IPersistFile; begin result := False; if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl)) then begin psl.SetPath(PChar(lpszPathObj)); psl.SetDescription(PChar(lpszDesc)); if SUCCEEDED(psl.QueryInterface(IID_IPersistFile,ppf)) then begin ppf.Save(StringToOLEStr(lpszPathLink),TRUE); Result := true; // ppf._Release; ---> Runtime-Error wenn aktiv end; end; // psl._Release; ---> Runtime-Error wenn aktiv //end; end; lpszPathLink = Beschreibung lpszDesc = Ordner in der die Verknüpfung erstellt werden soll Result = Erfolg, oder Nichterfolg Ich hab es ausprobiert, es funktioniert. Gruß DelphiFreund |
Re: Verknüpfung erstellen?
Wenn du dir den Thread durchgelesen hättest, wüsstest du, dass ich bereits eine functin eingebaut habe. Bei deiner function hab ich dasselbe Problem wie bei der anderen: die auf seite 1 (letzter Post) beschriebe Fehlermeldung.
Trotzdem danke ;) |
Re: Verknüpfung erstellen?
Hi!
Hast du mal überprüft, ob in MyPath1 das richtige drinsteht? Existiert F:\ Darfst du dort schreiben? Ciao Frederic |
Re: Verknüpfung erstellen?
Zitat:
Zitat:
|
Re: Verknüpfung erstellen?
Zitat:
Ich hab da nämlich das Gefühl, dass das erst heute eingefügt wurde, denn als ich mir das zuletzt angesehen hab, stand da noch nichts wegen einer unit ;) Naja, wie dem auch sei. Ich hab ja ShlOBJ in der uses-klausel, damit dürfte das wohl erledigt sein, denke ich(berichtigt mich bitte, wenn ich falsch liege). F:\ existiert und man darf dort schreiben. Zu MyPath1: MyPath1 ermittelt den eigenen Programmpfad. Hier mal der Quellcode aus dem OnClick-Ereignis:
Delphi-Quellcode:
Da wird nun der aktuelle Programmpfad ermittelt und in der Variable MyPath1 gespeichert. Danach wird direkt mit dieser Variable weitergearbeitet. Ich hab also den Programmpfad, hänge da noch den Dateinamen an und das ist dann mein Zielprogramm ;)
procedure TForm1.Button1Click(Sender: TObject);
var MyPath1 : string; begin MyPath1 := ExtractFilePath(Application.ExeName); CreateLink (MyPath1+'Project2.exe', 'F:\Verknüpfung.exe', 'Verknüpfung'); end; Mir ist übrigens grade aufgefallen, dass die Datei "Verknüpfung.exe" erstellt wird, nur ist es halt eine ganz normale .exe ohne irgendeine Funktion :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz