Startmenü eintrag
Hallo,
ich möchte einen Eintrag ins Startmenü von windows vista und xp machen und zwar dort, wo man auch die systemsteuerung oder ähnliches einblenden kann. ist dies mit delphi möglich? wenn ja, wie? wäre über antworten sehr erfreut! :) gruß |
Re: Startmenü eintrag
Start->rechtsklick->Eigenschaften->Startmenü->Startmenü anpassen
Da musste ma schaun, vielleicht hilft dir das |
Re: Startmenü eintrag
er wird wohl eher eine API zum hinzfügen selbstdefinierter Menüpunkte meinen.
Naja... schau am besten mal beim MSDN nach. Ich hab noch nie gehört/gelesen, daß sowas möglich ist.. aber wer weiß? Auf alle Fälle wird es (wenn es geht) wohl auf einen COM-Server (ähnlich eines Deskband) oder eine Shell extension hinauslaufen. Viel Spaß damit *evil grin* |
Re: Startmenü eintrag
Das funktioniert auf jeden Fall, nur leider weiß ich nicht wie :D
|
Re: Startmenü eintrag
Hier ist die Procedure dazu:
Delphi-Quellcode:
Hab jetzt nur nicht die Zeit, das näher zu erläutern, sorry.
function CreateShortcut(SourceFileName: string; // the file the shortcut points to
Location: ShortcutType; // shortcut location SubFolder, // subfolder of location WorkingDir, // working directory property of the shortcut Parameters, Description: string): // description property of the shortcut string; const SHELL_FOLDERS_ROOT = 'Software\MicroSoft\Windows\CurrentVersion\Explorer'; QUICK_LAUNCH_ROOT = 'Software\MicroSoft\Windows\CurrentVersion\GrpConv'; var MyObject: IUnknown; MySLink: IShellLink; MyPFile: IPersistFile; Directory, LinkName: string; WFileName: WideString; Reg: TRegIniFile; begin MyObject := CreateComObject(CLSID_ShellLink); MySLink := MyObject as IShellLink; MyPFile := MyObject as IPersistFile; MySLink.SetPath(PChar(SourceFileName)); MySLink.SetArguments(PChar(Parameters)); MySLink.SetDescription(PChar(Description)); LinkName := ChangeFileExt(SourceFileName, '.lnk'); LinkName := ExtractFileName(LinkName); // Quicklauch if Location = _QUICKLAUNCH then begin Reg := TRegIniFile.Create(QUICK_LAUNCH_ROOT); try Directory := Reg.ReadString('MapGroups', 'Quick Launch', ''); finally Reg.Free; end; end else // Other locations begin Reg := TRegIniFile.Create(SHELL_FOLDERS_ROOT); try case Location of _OTHERFOLDER : Directory := SubFolder; _DESKTOP : Directory := Reg.ReadString('Shell Folders', 'Desktop', ''); _STARTMENU : Directory := Reg.ReadString('Shell Folders', 'Start Menu', ''); _SENDTO : Directory := Reg.ReadString('Shell Folders', 'SendTo', ''); end; finally Reg.Free; end; end; if Directory <> '' then begin if (SubFolder <> '') and (Location <> _OTHERFOLDER) then WFileName := Directory + '\' + SubFolder + '\' + LinkName else WFileName := Directory + '\' + LinkName; if WorkingDir = '' then MySLink.SetWorkingDirectory(PChar(ExtractFilePath(SourceFileName))) else MySLink.SetWorkingDirectory(PChar(WorkingDir)); MyPFile.Save(PWChar(WFileName), False); Result := WFileName; end; end; |
Re: Startmenü eintrag
Liste der Anhänge anzeigen (Anzahl: 1)
hm.... ahbe mir mal den source angeschaut
und die werte in der registry und im dateisystem mal nachvollzogen. allerdings bin ich der meinung, dass dies nicht das gesuchte ist. ich möchte einen eintrag im startmenü haben und zwar dort, wo z.b. "Ausführen" oder "Arbeistplatz" steht. diese optinen kann man ja festlegen. nun suche ich nach einer möglichkeit, dort eine programmverknüpfung anzulegen, oder noch besser gleich eine ordnerstruktur, welche dann in einer liste ausklappt, so wie z.b. die systemsteuerung. näheres siehe anhang. gruß |
Re: Startmenü eintrag
hm, mit diesen Startmenu-Einträgen hab ich mich noch nie beschäftigt.
Ich weiss nur, dass z.B. Programme und alles was darunter steht, auch nur Verzeichnisse sind, die dann *.lnk-Dateien enthalten. Bei der Systemsteuerung ist das sicher anders realisiert. Da kann ich leider nicht helfen :cry: |
Re: Startmenü eintrag
ja das mit den programmen weiß ich auch... :(
wenn es überhaupt nicht geht ist es auch nicht so schlimmm, aber das wäre auf jeden fall die sauberste und schönste lösung. hat noch jemand eine idee? gruß |
Re: Startmenü eintrag
Zitat:
|
Re: Startmenü eintrag
ich habe so ein programm leider auch noch nie gesehen... :(
aber wenn es möglich ist, wäre das auch nur eine alternative zu anderen optionen der darstellung. der user wird sich das aussuchen können. weiß jemand nach was ich suchen könnte? kann man vielleicht windows vortäuschen, dass die ordner durch andere ersetzt wurden und damit darauf zugreifen? gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 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