AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Verknüpfung zum eigenen Programm mit Paramentern
Thema durchsuchen
Ansicht
Themen-Optionen

Verknüpfung zum eigenen Programm mit Paramentern

Ein Thema von MCXSC · begonnen am 4. Feb 2007 · letzter Beitrag vom 4. Feb 2007
Antwort Antwort
MCXSC
(Gast)

n/a Beiträge
 
#1

Verknüpfung zum eigenen Programm mit Paramentern

  Alt 4. Feb 2007, 14:54
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:
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;
Das ist die Funktion und das ist der Aufruf:

if dialog_verknuepfung.Execute then CreateLink(Application.ExeName + ' parameter', dialog_verknuepfung.FileName, dialog_verknuepfung.FileName); Funktioniert auch, nur dass der Link dann auf folgendes Ziel verweist:

"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
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Verknüpfung zum eigenen Programm mit Paramentern

  Alt 4. Feb 2007, 15:11
Hi!

So aus dem Hut würde ich folgendes vorschlagen:
CreateLink('"' + Application.ExeName + '" parameter',... Dadurch sollte Windows verstehen, was bei deiner Übergabe der Parameter und was das Programm ist.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#3

Re: Verknüpfung zum eigenen Programm mit Paramentern

  Alt 4. Feb 2007, 15:20
Nee, dann sieht das Ziel der Verknüpfung wie folgt aus:

"C:\"Pfad+EXE" parameter"
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Verknüpfung zum eigenen Programm mit Paramentern

  Alt 4. Feb 2007, 15:36


Die Antwort ist so simpel, das man kaum drauf kommt.

Zitat von Die Delphi-Hilfe ©Borland:
IShellLink::SetArguments Method
Sets the command-line arguments for a Shell link object.

Syntax
HRESULT SetArguments(LPCTSTR pszArgs);

Parameters
pszArgs
Pointer to a buffer that contains the new command-line arguments.

Return Value
Returns S_OK if successful, or an error value otherwise.

Remarks
This method is useful when creating a link to an application that takes special flags as arguments, such as a compiler.
Auf deutsch:
Man erweitere den Funktionskopf so ...
function CreateLink(const AFilename, AArgs, ALNKFilename, ADescription: String) : Boolean; ... und füge folgende Zeile ein:
psl.SetArguments(PChar(AArgs));
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#5

Re: Verknüpfung zum eigenen Programm mit Paramentern

  Alt 4. Feb 2007, 16:34
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz