| Autor |
Beitrag |
Danniolo
      
Beiträge: 693
|
Verfasst: Mi 13.07.05 15:55
Moin,
Wie kann ich einen (oder mehrere) Einträge in's Startmenü einfügen.
(Mit Delphi natürlich) und ohne die JVCL???  : Moderiert von raziel: Topic aus Sonstiges verschoben am Mo 18.07.2005 um 10:14
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 15:58
Per Registry! Such mal im DF, da findest du bestimmt was!
STARTMENÜ
MfG, ScorpionKing!
_________________ Aus dem Urlaub zurück!
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 13.07.05 18:55
Jein, dort steht nur, wo sich der Startmenüordner befindet:
Quelltext 1: 2:
| Alle Benutzer: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Start Menu Benutzermenü: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu | Die dort angegebenen Ordner (kann auch der selbe sein !) speichern das eigentliche Startmenü, ab dann geht es nurnoch darum eine Verknüpfung/Datei zu erstellen.
Gruß,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 18:58
Stimmt, sorry, da hab ich mich vertan!
Dann könnte man theoretisch da ja eine Verknüpfung (in dem Ordner) ablegen!
_________________ Aus dem Urlaub zurück!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 13.07.05 19:00
Man sollte aber stattdessen lieber die entsprechende API Funktion nutzen, um die entsprechenden Ordner zu ermitteln.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 19:01
Luckie hat folgendes geschrieben: | | Man sollte aber stattdessen lieber die entsprechende API Funktion nutzen, um die entsprechenden Ordner zu ermitteln. |
Diese Funktionen machen aber auch nichts anderes, als es aus der Registry auszulesen!
_________________ Aus dem Urlaub zurück!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 13.07.05 19:05
Jupp. Aber was, wenn Microsoft im nächsten SP entscheidet, dass sie besser wo anders aufgehoben sind? Dann fällst du auf die Nase. Ich, der die Funktion aus der DLL nutzt, kann sich bequem in seinen Sessel zurücklehnen, da mit dem SP auch die entsprächend geänderte DLL mitgeliefert wird.
Gut, für diese Einträge ist es eher unwahrscheinlich, aber man sollte es sich nicht angewöhnen.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 19:07
Luckie hat folgendes geschrieben: | Jupp. Aber was, wenn Microsoft im nächsten SP entscheidet, dass sie besser wo anders aufgehoben sind? Dann fällst du auf die Nase. Ich, der die Funktion aus der DLL nutzt, kann sich bequem in seinen Sessel zurücklehnen, da mit dem SP auch die entsprächend geänderte DLL mitgeliefert wird.
Gut, für diese Einträge ist es eher unwahrscheinlich, aber man sollte es sich nicht angewöhnen. |
Stimmt, aber ich liebe die Herausforderung!
Nein, du hast schon Recht, man sollte die API-Funktionen nutzen! 
_________________ Aus dem Urlaub zurück!
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 13.07.05 19:26
Luckie hat folgendes geschrieben: | | Man sollte aber stattdessen lieber die entsprechende API Funktion nutzen, um die entsprechenden Ordner zu ermitteln. |
Weisst du auch, wie diese API Funktion heisst? Oder gönnst du es uns nicht uns dann auch im Sessel zurückzulehnen 
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Do 14.07.05 13:44
Delphi-Quelltext
_________________ Aus dem Urlaub zurück!
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 14.07.05 13:49
ShellApi ist kein API-Befehl, sondern eine unit
wenn man von was keine ahnung hat, ists manchmal besser zu schweigen
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Do 14.07.05 13:54
retnyg hat folgendes geschrieben: | ShellApi ist kein API-Befehl, sondern eine unit
wenn man von was keine ahnung hat, ists manchmal besser zu schweigen |
Sorry, hatte gelesen, welche API! Und das ist nunmal die ShellApi! Dein beitrag ist auch nicht sonderlich hilfreich. Vielleicht hättest du die Funktion mal posten können, anstatt sich zu beschweren!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| uses JclShell, ShlObj, ShellApi;
var ShellLink: TShellLink; begin CoInitialize(nil); with ShellLink do begin Arguments:=''; IdList:=nil; WorkingDirectory:='c:\'; Target:='c:\test.exe'; Description:='Delphiprog'; end; ShellLinkCreateSystem(ShellLink, CSIDL_COMMON_STARTMENU, 'Programme\Zubehör\Test.lnk'); ShellLinkFree(ShellLink); end; |
MfG, ScorpionKing!
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt.
_________________ Aus dem Urlaub zurück!
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 14.07.05 14:24
Also in meiner ShellApi gibt's kein CSIDL_COMMON_STARTMENU und bevor ich wieder andere Units benutzt, die evtl. jemand nicht hat, greife ich dann doch lieber auf die Registry zurück - oder im Notfall direkt auf die DLL.
Gruß,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Do 14.07.05 14:35
maxk hat folgendes geschrieben: | Also in meiner ShellApi gibt's kein CSIDL_COMMON_STARTMENU und bevor ich wieder andere Units benutzt, die evtl. jemand nicht hat, greife ich dann doch lieber auf die Registry zurück - oder im Notfall direkt auf die DLL.
Gruß,
maxk |
Ja, ab er dann hast du das Problem, falls etwas an Windows geändert wird. Nimm lieber oben die Funktion!
_________________ Aus dem Urlaub zurück!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.07.05 14:43
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 14.07.05 14:51
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 15.07.05 12:20
retnyg hat folgendes geschrieben: | | wenn man von was keine ahnung hat, ists manchmal besser zu schweigen |
gut, dass die meisten der df-mitglieder solche überflüssigen kommentare nicht von sich geben.
lg martin
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Fr 15.07.05 13:07
| Zitat: | | wenn man von was keine ahnung hat, ists manchmal besser zu schweigen |
völlig falsch zitiert.
Dieter Nuhr: Wenn man keine Ahnung hat, einfach mal die Fresse halten!
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|