AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verknüpfung erstellen?

Ein Thema von malo · begonnen am 23. Okt 2004 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#11

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 14:21
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
Frederic Kerber
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 14:24
Hi,
außerdem noch ShellAPI.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#13

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 14:29
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
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#14

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 14:40
Hi!

Die hier evtl. mal noch:
ActiveX, ComObj;



Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#15

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 14:56
Jetzt Compiliert Delphi mein programm. Wenn ich jetzt die Verknüpfung erstellen will, beendet sich mein Programm und ein Textfenster erscheint.

Zitat von Fehlermeldung:
Im Projekt Project2.exe ist eine Exception der Klasse EAccesViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse blabla in Modul 'Project2.exe'. Lesen der Adresse blabla'. Prozess wurde angehalten
So ungefähr steht das da. Dann ist diese Zeile blau unterlegt:

CreateLink (MyPath1+'Project2.exe', 'F:\Verknüpfung.exe', 'Verknüpfung'); Wobei MyPath1 eine Variable ist, um den Programmpfad herauszufinden. Was ist falsch?
  Mit Zitat antworten Zitat
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 15:28
Hier, ein wenig googeln hätte nicht geschadet:

Delphi-Quellcode:
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;
lpszPathObj = Datei, die verlinkt werden soll
lpszPathLink = Beschreibung
lpszDesc = Ordner in der die Verknüpfung erstellt werden soll
Result = Erfolg, oder Nichterfolg

Ich hab es ausprobiert, es funktioniert.




Gruß DelphiFreund
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#17

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 16:09
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
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#18

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 16:11
Hi!

Hast du mal überprüft, ob in MyPath1 das richtige drinsteht?
Existiert F:\
Darfst du dort schreiben?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 16:30
Zitat von malo:
@Luckie: Unit einbinden? Was für 'ne Unit und wo genau? Sry, ich kenn mich da einfach nich aus
Ja, wie es auch in dem Tipp in der Code-Lib steht:
Zitat von Code-Lib:
Benötigt wird die Unit ShlOBJ.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#20

Re: Verknüpfung erstellen?

  Alt 24. Okt 2004, 18:40
Zitat von Luckie:
Zitat von malo:
@Luckie: Unit einbinden? Was für 'ne Unit und wo genau? Sry, ich kenn mich da einfach nich aus
Ja, wie es auch in dem Tipp in der Code-Lib steht:
Zitat von Code-Lib:
Benötigt wird die Unit ShlOBJ.
Interressant wäre da, dass der Post erst heute Mittag editiert wurde
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:
procedure TForm1.Button1Click(Sender: TObject);
var MyPath1 : string;
begin
  MyPath1 := ExtractFilePath(Application.ExeName);
  CreateLink (MyPath1+'Project2.exe', 'F:\Verknüpfung.exe', 'Verknüpfung');
end;
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

Mir ist übrigens grade aufgefallen, dass die Datei "Verknüpfung.exe" erstellt wird, nur ist es halt eine ganz normale .exe ohne irgendeine Funktion
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 03:06 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