.lnk auslesen
-
Hallo zusammen,
ich muss die mit einer .lnk verknüpfte .exe Datei bekommen. Ich weiss, dass es mit dem COM Objekt CLSID_ShellLink gehen muss.
Bei msdn habe ich das hier gefunden: http://msdn.microsoft.com/en-us/library/bb776891(VS.85).aspx
Aber so richtig komme ich damit nicht weiter.
Kann mir jemand helfen?Gruß
Alex
-
Das Beispielprogramm am Ende Deines Links müsste Dir doch eigentlich weiterhelfen.
-
Komischerweise funktioniert es nicht. Es lässt sich kompilieren, LPSTR lpszPath bleibt aber leer.

-
hast du daran gedacht CoInitialize aufzurufen?
-
``'' schrieb:
hast du daran gedacht CoInitialize aufzurufen?
Hmm nein, wie muss es denn aufgerufen werden?
-
-
Irgendwas mache ich immernoch falsch, hier ist mein Aufruf:
if (_s == ".lnk") { char path[MAX_PATH]; _GetSpecialPath(CSIDL_DESKTOPDIRECTORY, path); string sTmp(path); string pfad(path); sTmp = sTmp + "\\" + desc; CoInitialize(NULL); ResolveIt(NULL, (LPCSTR)sTmp.c_str(), (LPSTR)pfad.c_str(), 50); CoUninitialize (); cout << ".lnk path: " << pfad << "\n"; }so funktioniert es, aber iPathBufferSize stimmt noch nicht. Was muss da übergeben werden, damit der Aufruf richtig ist?
-
Mit sizeof ist alles in Ordnung, es tut nur nicht das, was du glaubst. Einfach gesagt, die Verwendung von sizeof ist hier falsch.
-
ich hatte es noch mit pfad.length() versucht, aber es ist auch nicht (in allen fällen) richtig...