Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fehler mit TShellLink und Windows 7 (https://www.delphipraxis.net/160757-fehler-mit-tshelllink-und-windows-7-a.html)

wwwdirk 30. Mai 2011 10:50

Fehler mit TShellLink und Windows 7
 
Hallo,

erstelle teilweise in meinen Progs .lnk-Files, dabei benutze ich die TShellLink-Klasse, die ich mal vor Jahren schon für Delphi 6 runtergeladen habe. Diese wiederum implementiert das IShellLink-Interface.

Bisher funktionierte das mit verschiedenen Windowssystemen problemlos. Jetzt steht bei uns der Wechsel auf Windows 7 bevor, wo das Erstellen der Verknüpfungen in meinen Progs nicht mehr funktioniert. Beim Debuggen ist mir aufgefallen, das alle Stringvariablen des TShellLink-Objektes nur noch chinesische Schriftzeichen beinhalten!

Hat jemand eine Lösung?

Viele Grüße
Dirk

P.S. Bin mit Delphi 2009 unterwegs

Gausi 30. Mai 2011 10:53

AW: Fehler mit TShellLink und Windows 7
 
Das dürfte nicht an Windows 7 liegen, sondern an Delphi 2009. ;-)

Ein String ist jetzt kein AnsiString mehr, sondern ein UnicodeString. Vermutlich musst du die TShellLink-Klasse da fit für Unicode machen.

DeddyH 30. Mai 2011 10:53

AW: Fehler mit TShellLink und Windows 7
 
Zitat:

Zitat von wwwdirk (Beitrag 1103669)
P.S. Bin mit Delphi 2009 unterwegs

Das dürfte wohl eher der Knackpunkt sein als Windows 7. Vermutlich benutzt/erwartet Deine Klasse explizit Ansi-Strings (welche aber nicht als solche deklariert sind), Delphi allerdings Unicode.

wwwdirk 30. Mai 2011 11:04

AW: Fehler mit TShellLink und Windows 7
 
Mich wundert nur das mit Windows XP und Delphi 2009 noch alles funktionierte. Ich versuch aber mal auf Unicodestring umzustellen.

wwwdirk 30. Mai 2011 11:25

AW: Fehler mit TShellLink und Windows 7
 
Kommando zurück! Hatte ich nie mit Delphi 2009 kompiliert. Werde jetzt zuerstmal die Unicode-Umstellung angehen.

wwwdirk 30. Mai 2011 12:35

AW: Fehler mit TShellLink und Windows 7
 
Habe in meiner TShellLink-Klasse alle Strings durch AnsiStrings ersetzt und schon funktioniert es wieder wie gewünscht.

Vielen Dank für eure Tipps.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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