![]() |
Verknüpfung zum eigenen Programm mit Paramentern
Hallo!
Ich habe folgendes Problem: Ich habe einen SvaeDialog, in dem der User einen Dateinamen angeben kann. Nun wird dementsprechend eine Verknüpfung zu meinem Programm erstellt...
Delphi-Quellcode:
Das ist die Funktion und das ist der Aufruf:
function CreateLink(const AFilename, ALNKFilename, ADescription: String) : Boolean;
var psl: IShellLink; ppf: IPersistFile; wsz: PWideChar; begin result := false; if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_inPROC_SERVER, IID_IShellLinkA, psl)) then begin psl.SetPath(PChar(AFilename)); psl.SetDescription(PChar(ADescription)); psl.SetWorkingDirectory(PChar(ExtractFilePath(AFilename))); if SUCCEEDED(psl.QueryInterface(IPersistFile, ppf)) then begin GetMem(wsz, MAX_PATH * 2); try MultiByteToWideChar(CP_ACP, 0, PChar(ALNKFilename), -1, wsz, MAX_PATH); ppf.Save(wsz, true); result := true; finally FreeMem(wsz, MAX_PATH * 2); end; end; end; end;
Delphi-Quellcode:
Funktioniert auch, nur dass der Link dann auf folgendes Ziel verweist:
if dialog_verknuepfung.Execute then CreateLink(Application.ExeName + ' parameter', dialog_verknuepfung.FileName, dialog_verknuepfung.FileName);
"Pfad+Exe parameter" Somit findet Windoof des natürlich nicht... Weiß jemand, wie ich die Verknüpfung samt Parameter korrekt erstellen kann? Ich hab nirgends was brauchbares dazu gefunden... :( MCXSC |
Re: Verknüpfung zum eigenen Programm mit Paramentern
Hi!
So aus dem Hut würde ich folgendes vorschlagen:
Delphi-Quellcode:
Dadurch sollte Windows verstehen, was bei deiner Übergabe der Parameter und was das Programm ist.
CreateLink('"' + Application.ExeName + '" parameter',...
|
Re: Verknüpfung zum eigenen Programm mit Paramentern
Nee, dann sieht das Ziel der Verknüpfung wie folgt aus:
"C:\"Pfad+EXE" parameter" |
Re: Verknüpfung zum eigenen Programm mit Paramentern
:-D
Die Antwort ist so simpel, das man kaum drauf kommt. Zitat:
Man erweitere den Funktionskopf so ...
Delphi-Quellcode:
... und füge folgende Zeile ein:
function CreateLink(const AFilename, AArgs, ALNKFilename, ADescription: String) : Boolean;
Delphi-Quellcode:
psl.SetArguments(PChar(AArgs));
|
Re: Verknüpfung zum eigenen Programm mit Paramentern
Super danke...! So funktioniert es :)
Hatt mich zwar in der Hilfe wegen IShellLink umgeschaut, aber das Argumente Parameter sind... :) Dazu war ich wohl im Halbschlaf nicht in der Lage... Danke jedenfalls! :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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