Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sprach-DLL's von "Form in DLL" (https://www.delphipraxis.net/109992-sprach-dlls-von-form-dll.html)

ralfiii 11. Mär 2008 11:02


Sprach-DLL's von "Form in DLL"
 
Ich hab eine Anwendung die Formulate in DLLs nachlädt.
(Eigentlich sind's ja COM-Objekte, aber das kommt auf's gleiche raus).

Sowohl die Anwendung als auch die DLLs werden übersetzt. Wir verwenden die standard Borland Methode, also mit Sprach-DLLs. Es gibt also z.B. die Files
* App.exe
* App.DE
* Test.dll
* Test.DE

Um die Anwendung auf einem Rechner in Deutsch anzuzeigen trägt man einfach in die Registry unter HKEY_CURRENT_USER\Software\Borland\Locales ein
"C:\Programme\Pfad\App.exe"="DE"
und schon lädt die Anwendung und alle DLLs die von der Anwendung geladn werden die .DE-Sprachdateien nach.
Probleme gibt's allerdings wenn ich auf einem deutschen Rechner erzwingen will, dass die Anwendung englisch bleibt, also keine Sprach-DLLs geladen werden.

Trage ich in die Registry ein
"C:\Programme\Pfad\App.exe"="EXE"
lädt de Hauptanwendung in englisch (weil er die ressourcen aus der exe holt), für die DLL's findet er aber keine gleichnamigen .exe-Dateien und lädt wieder die deutschen Ressourcen.

Schreibe ich
"C:\Programme\Pfad\App.exe"="DLL"
läuft die Hauptanwendung deutsch und die DLLs englisch.

Um das Problem zu umgehen haben wir bisher - wenn ein Kunde unbedingt eine englische Version wollte - die Sprachdateien in einen Unterordner verschoben, da kann die Applikation nicht anders als die originalen englischen Ressourcen zu nehmen. Blöderweise geht das unter Vista nicht mehr weil die Anwendung Files in "C:\program files"-Unterordnern nicht mehr verschieben kann.

Wie könnte ich dieses Problem lösen?

Vielen Dank!
Ralf

Bernhard Geyer 11. Mär 2008 11:05

Re: Sprach-DLL's von "Form in DLL"
 
Geht doch auch unter Vista wenn sicher der User/Prozess kurzzeitig per UAC Adminrechte verschafft (hier natürlich ein weiterer Prozess).

Das Problem ist das genau gleiche wie unter NT/2000/XP wenn der User keine entsprechenden Rechte unter C:\Programme hat (z.b. wenn er nur in der Gruppe "Benutzer" und nicht "Hauptbenutzer" oder "Administratoren" ist).


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