Startmen? > Startmenü

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Startmen? > Startmenü

Beitrag von felix96 »

Guten Abend,
ich wollte meinem Programm doch eine "Automatische-Startmenü-findung" spendiren.
Aber egal was, der Pfad ist später immer
C:\Dokumente und Einstellungen\felix\Startmen?\Programme

z.B. bei dem Code:

Code: Alles auswählen

uses shlobj, windows;
{ TForm1 }
 
 
function getproglocation:String;
var PIDL:PItemIDList;
  progdir:array[0..MAX_PATH]of Char;
begin
  SHGetSpecialFolderLocation( 0,CSIDL_PROGRAMS,PIDL);
 
Danke schonmal für Antworten
  SHGetPathFromIDList( PIDL,progdir);
  result:=strpas( progdir);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(getproglocation);
end;
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Startmen?

Beitrag von theo »

felix96 hat geschrieben: Aber egal was, der Pfad ist später immer
C:\Dokumente und Einstellungen\felix\Startmenü\Programme
Und was wäre denn richtig?

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Startmen?

Beitrag von felix96 »

Richtig wäre:
C:\Dokumente und Einstellungen\felix\Startmenü\Programme anstatt:
C:\Dokumente und Einstellungen\felix\Startmen?\Programme
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Startmen?

Beitrag von felix96 »

Hab gerade das ausprobiert:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
  var PIDL:PItemIDList;
  progdir:array[0..MAX_PATH]of Char;
begin
  SHGetSpecialFolderLocation( 0,CSIDL_PROGRAMS,PIDL);
  SHGetPathFromIDList( PIDL,progdir);
  showmessage(strpas( progdir));
end;
Da kam das raus:
C:\Dokumente und Einstellungen\felix\Startmen?\Programme
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Startmen?

Beitrag von theo »

Dann mach SysToUTF8(); zum Anzeigen.
Zum weiter verwenden als Pfad müsste es aber ohne dies klappen.

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Startmen?

Beitrag von felix96 »

Danke

Code: Alles auswählen

uses windows, shlobj;
 
...
 
procedure TForm1.Button1Click(Sender: TObject);
  var PIDL:PItemIDList;
  progdir:array[0..MAX_PATH]of Char;
  s: string;
begin
  SHGetSpecialFolderLocation( 0,CSIDL_PROGRAMS,PIDL);
  SHGetPathFromIDList( PIDL,progdir);
  s := SysToUTF8(strpas( progdir));
  showmessage(s);
end;
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Antworten