![]() |
Eintrag unter Startmenü\Programme
Hallo!
Wie kann ich einen Eintrag unter \Startmenü\Programme machen??? :???: |
Re: Eintrag unter Startmenü\Programme
Hi!
Herzlich Willkommen in der DP. Bestimmt hilft dir das hier weiter: ![]() Zum Startmenü: Such mal nach ![]() Ciao Frederic |
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Eintrag unter Startmenü\Programme
Danke für deinen Tipp!! :xmas:
Leider hilft mir das nicht weiter. :coder2: |
Re: Eintrag unter Startmenü\Programme
Hi!
Wo hängst du denn? Ciao Frederic |
Re: Eintrag unter Startmenü\Programme
Ic hab mir einfach mal den code von der seite (
![]() bei var psl: IShellLink; gibts eine Fehlermedlung [Error] Unit1.pas(29): Undeclared identifier: 'IShellLink' [Error] Unit1.pas(30): Undeclared identifier: 'IPersistFile' [Error] Unit1.pas(40): Undeclared identifier: 'CoCreateInstance' [Error] Unit1.pas(40): Undeclared identifier: 'CLSID_ShellLink' [Error] Unit1.pas(42): Undeclared identifier: 'CLSCTX_INPROC_SERVER' [Error] Unit1.pas(43): Undeclared identifier: 'IID_IShellLinkA' |
Re: Eintrag unter Startmenü\Programme
Lies Dir das posting nochmal genau durch: benötigt wird die unit ShlObj...
Gruß, teebee |
Re: Eintrag unter Startmenü\Programme
Danke habs auch grad gelesen :idea: !! Danke
|
Re: Eintrag unter Startmenü\Programme
Muß nochmal kurz nerven. Schuldigung muss aber sein.
kann mir mal einer die zeile erklären:??? if CreateLink('d:\Datei.exe', 'c:\Verknüpfung.exe', 'Verknüpfung') verstehe den aufbau nicht ganz :( Dazu kommt das ich da noch den Fehler: [Error] Unit1.pas(59): Declaration expected but 'IF' found [Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas' bekomme. |
Re: Eintrag unter Startmenü\Programme
Hi!
Zeig mal noch etwas mehr, um die Zeile herum. Der Fehler liegt anscheinend vor der besagten Zeile. Ciao Frederic |
Re: Eintrag unter Startmenü\Programme
Ich geb mal den ganzen Code preis
Code:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, activex, comobj, shlobj, StdCtrls; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function CreateLink(lpszPathObj,lpszPathLink, lpszDesc: string):Boolean; var psl: IShellLink; ppf: IPersistFile; const IID_IPersistFile: TGUID = (D1:$0000010B; D2:$0000; D3:$0000; D4:($C0,$00,$00,$00,$00,$00,$00,$46)); 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; //Aufruf: if CreateLink('d:\Datei.exe', 'c:\Verknüpfung.exe', 'Verknüpfung') then MessageDlg('Verknüpfung angelegt', mtInformation, [mbOk], 0); end. Ich hoffe das reciht aus?! |
Re: Eintrag unter Startmenü\Programme
HI!
Du hast den Aufruf (also deine If-Anweisung) einfach so irgendwo hingeschrieben. Dann weiß er ja nicht, wann er sie ausführen soll etc. Also schreibe diese Zeile mal z.B. in eine Button-Click-Prozedur. Ciao Frederic |
Re: Eintrag unter Startmenü\Programme
:shock: is heut nich mein tag!
danke!!!!!!! komme aber immernoch nicht mit der zeile klar!!!
Code:
if CreateLink('d:\Datei.exe', 'c:\Verknüpfung.exe', 'Verknüpfung') then
|
Re: Eintrag unter Startmenü\Programme
ins blaue hinein, ohne den quelltext durchgeelesen zu haben:
CreateLink( ZuVerlinkendeDatei, DateiNameDesLinks, Beschreibung/Typ ): HatsGeklappt? sprich du übergibst ihm den namen der exe-datei, den namen des zu erstekllenden links, und 'verknüpfung', wenn hinten true rauskommt hats geklappt... |
Re: Eintrag unter Startmenü\Programme
Jo funktioniert soweit. Es wird aber nichst verknüpft. Die neue Datei startet nicht das gewünschte Programm. Das Programm zum erstellen der Linkdatei gibt ein fehler aus.
|
Re: Eintrag unter Startmenü\Programme
Hi!
Zitat:
Ciao Frederic |
Re: Eintrag unter Startmenü\Programme
welchen zum beispiel? :roll:
|
Re: Eintrag unter Startmenü\Programme
acces violation at adress A7663168 <---Fehlermeldung
|
Re: Eintrag unter Startmenü\Programme
Hi!
Schonmal mit F7 durchgegangen, um herrauszufinden, an welcher Stelle der Fehler auftritt? Ciao Frederic |
Re: Eintrag unter Startmenü\Programme
ne Fehlermeldung bringt der pc mir nicht mit F7. Aber solbalt ich auch den Button klicke kommt ein error. Starte ich das Programm aus Delphi raus stürtzt mit Delphi ab!
Zitat:
|
Re: Eintrag unter Startmenü\Programme
also, an sonem blauen punkt links neben dem quelltext klickst du, dann wird die zeile markiert (haltepunkt)
nun führst du das programm aus, und kannst mit F7 alle folgenden befehle einzeln durchgehen -> debugger damit kannst du uns wenigstens die zeile/den befehl sagen wo der fehler auftritt.. weil nur mit der AV kann hier(denke ich) keiner was anfangen |
Re: Eintrag unter Startmenü\Programme
in der Zeile 66 bei
Code:
bleibt der ablauf stehen sobald ich den button betätige. Hoffe das hilft weiter???
if CreateLink('......
|
Re: Eintrag unter Startmenü\Programme
hast du das mit dem debugger gemacht?
lad mal bitte das komplette projekt hoch |
Re: Eintrag unter Startmenü\Programme
hier das ganze script
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, activex, comobj, shlobj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function CreateLink(lpszPathObj,lpszPathLink, lpszDesc: string):Boolean; var psl: IShellLink; ppf: IPersistFile; const IID_IPersistFile: TGUID = (D1:$0000010B; D2:$0000; D3:$0000; D4:($C0,$00,$00,$00,$00,$00,$00,$46)); 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; //Aufruf: procedure TForm1.Button1Click(Sender: TObject); begin if CreateLink('C:\Programme\Borland\Delphi6\Projects\system\winxpbeenden\ausschalten.exe', 'C:\projekt_verknüpfung.exe', 'Verknüpfung') then MessageDlg('Verknüpfung angelegt', mtInformation, [mbOk], 0); end; end. |
Re: Eintrag unter Startmenü\Programme
also, der fehler kommt bei
psl._Release; wo passenderweise hintersteht // ---> Runtime-Error wenn aktiv wird seinen sinn haben ;) also hast du falsche parameter übergeben.... |
Re: Eintrag unter Startmenü\Programme
aha und was kann ich dagegen machen???
gibts denn noch andere Möglichkeiten ein Eintrag unter start/programme zumachen??? |
Re: Eintrag unter Startmenü\Programme
du könntest dir ein programm schreiben, welches die programme aufruft, und das in den autostart tun....
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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