AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Link einer Verknüpfung auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Link einer Verknüpfung auslesen

Ein Thema von mumu · begonnen am 12. Mai 2006 · letzter Beitrag vom 13. Mai 2006
 
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Link einer Verknüpfung auslesen

  Alt 12. Mai 2006, 11:16
Über diesen Code lese ich die Datei aus auf die eine Verknüpfung zeigt. (variable link ist dabei die verknüpfung selbst und in der variable buff steht nach aufruf die datei auf die die Verknüpfung zeigt.

Delphi-Quellcode:
var
  MyObject: IUnknown;
  MySLink: IShellLink;
  MyPFile: IPersistFile;
  FileInfo: TWin32FINDDATA;
  WidePath: array[0..MAX_PATH] of WideChar;
  Buff: array[0..MAX_PATH] of Char;
begin
    MyObject := CreateComObject(CLSID_ShellLink);
    MyPFile := MyObject as IPersistFile;
    MySLink := MyObject as IShellLink;

    StringToWideChar(link, WidePath, SizeOf(WidePath));
    MyPFile.Load(WidePath, STGM_READ);
    MySLink.GetPath(Buff, Max_PATH, FileInfo, SLGP_UNCPRIORITY);
end;
Das funktioniert eigentlich alles wunderbar. Nur folgendes Problem:
Ich hab 2 Betriebssysteme installiert (Windows 2000 auf Laufwerk D und XP auf Laufwerk E).
Wenn ich jetzt unter Windows 2000 bestimmte Verknüpfungen aus dem Windows XP Startmenü Pfad auslese, dann zeigen die Verknüpfungen auf die Festplatte D, obwohl Sie eigentlich auf Laufwerk E zeigen müssten. Ich hab mir mal den Inhalt einer lnk datei (die sich im Windows XP Startmenü befindet) unter windows 2000 anzeigen lassen.

Delphi-Quellcode:
L  À FŸ Øߧ܃YÆTT
ÀÝZÆ `½™SOÂQ¦  A PàOÐ ê:i¢Ø +00 /E:\ B 1 ˆ4/7 PROGRA~1 *   ニ4¥xˆ4/7 P r o g r a m m e  N 1 †4Oq MSNGAM~1 6   ニ4Oqˆ4Ð6 M S N G a m i n g Z o n e  < 1 †4Pq Windows &   ニ4Oqˆ4Ð6 W i n d o w s  F 2 Q¦ - ` bckgzm.exe ,   ニ4Pqˆ4O; b c k g z m . e x e  h    7 g  
o  Windows XP E:\Programme\MSN Gaming Zone\Windows\bckgzm.exe 7 @ E : \ P r o g r a m m e \ M S N G a m i n g Z o n e \ W i n d o w s \ b c k g r e s . d l l , - 1 2 1 3 ; . . \ . . \ . . \ . . \ . . \ P r o g r a m m e \ M S N G a m i n g Z o n e \ W i n d o w s \ b c k g z m . e x e  % H O M E D R I V E % % H O M E P A T H % `  *X laptop /þ!‰8ûO«&‘Ì«|×£™~ÅÚ¨, 
Q@ /þ!‰8ûO«&‘Ì«|×£™~ÅÚ¨, 
Q@  *& o
eigentlich ist hier nix mit %SystemRoot% oder ähnliches? Warum ist der Pfad auf diese Datei aber trotzdem
D:\Programme\MSN Gaming Zone\Windows\bckgzm.exe wenn ich ihn unter Windows 2000 über den oben genannten Code auslese?
  Mit Zitat antworten Zitat
 


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 09:35 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