AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

32/64 Bit Problem

Ein Thema von calibra301 · begonnen am 5. Okt 2015 · letzter Beitrag vom 5. Okt 2015
Antwort Antwort
calibra301

Registriert seit: 20. Mär 2009
95 Beiträge
 
Delphi XE8 Professional
 
#1

32/64 Bit Problem

  Alt 5. Okt 2015, 06:44
Delphi-Version: 5
Hallo,

habe eine alte Anwendung von Delphi 6 nach XE8 portiert.

Diese benutzt eine externe C++ DLL welche unter anderem einen Wert in die Registry
schreibt. Diese DLL liegt auch als 32/64 Bit Version vor und wurde entsprechend angepasst.

Die 32 Bit Variante macht was sie soll, das schreiben des Wertes in die REgistry per Externer DLL (die natürlich noch
vieles mehr mach ) funktioniert.

In der 64 Bit Version klappt auch alles so lange ich die exe in der Entwicklungsumgebung starte (sowie Debug als auch Release funktionieren da )

Ausserhalb der Entwicklungsumgebung geht's nur wenn ich die exe als Admin starte.

Hab als Laufzeit - Themes "Keine" und "Laufzeitthemes aktivieren" probiert.
Das mit dem externem Manifest hab ich leider nicht ganz verstanden und alle ge-googelten Vorlagen funktionierten nicht.

Wo könnte der Haken liegen ? Die DLL schliesse ich aus da es ja als Admin und in der Entwicklungsumgebung funktioniert.
Die Exe mit Adminrechten zu starten geht zwar aber das Popup a la "Sind sie sicher.." nervt schon.

Danke und Gruss
Calli
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: 32/64 Bit Problem

  Alt 5. Okt 2015, 06:55
Die IDE läuft auch mit Adminrechten. In welchen Registry-Zweig schreibt den die Dll?
Markus Kinzler
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
95 Beiträge
 
Delphi XE8 Professional
 
#3

AW: 32/64 Bit Problem

  Alt 5. Okt 2015, 07:04
Hallo,

vorab: Hab hier den Manifest Creator gefunden, ein Manifest erzeugt und das Programm damit kompiliert.
Es kommt die "Admin" Warnung aber es geht.
Schön wäre es wenn man die abstellen könnte.

Zu deiner Frage:

Delphi-Quellcode:
LPDWORD lpdwDisp = &dwDisp;
   string key = "SOFTWARE\\MeineSoftware\\"+ getName() + "\\" + getID();

    LONG iSuccess = RegCreateKeyEx(HKEY_LOCAL_MACHINE, (const char *) key.c_str() , 0L,NULL, REG_OPTION_NON_VOLATILE, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &hKey,lpdwDisp);

Gruss
Calli

Geändert von calibra301 ( 5. Okt 2015 um 07:10 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: 32/64 Bit Problem

  Alt 5. Okt 2015, 07:14
Um in HKLM zu schreiben werden Adminrechte benötigt. Als Nicht-Admin darf man nur in HKCU schreiben.
Markus Kinzler
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#5

AW: 32/64 Bit Problem

  Alt 5. Okt 2015, 07:15
und genau hier 'HKEY_LOCAL_MACHINE' liegt das Problem!

Meines Wissens nach, kann nur ein Admin unter 'HKEY_LOCAL_MACHINE' schreiben.
Rein 'Lesen' kann hier jeder.

Welche Eintrage müssen denn dort gemacht werden?

Wenn es User-Bezogene sind, sollten diese eher in 'HKEY_CURRENT_USER' abgelegt werden.

Wenn Du Daten/Konfigurationen für alle Benutzer ablegen möchtest, kannst Du auch eine eigene Konfigurationsdatei unter '%appdata%' ablegen.

Ansonsten sollen alle Eintrage unter 'HKEY_LOCAL_MACHINE' direkt einmalig bei der Installation/Erstem Start angelegt werden und dann nur noch mit geringeren Rechten lesend darauf zugegriffen werden.
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
95 Beiträge
 
Delphi XE8 Professional
 
#6

AW: 32/64 Bit Problem

  Alt 5. Okt 2015, 07:23
Hi,

danke für den Hinweis...ist echt peinlich...

Hab in der DLL den Registry Eintrag auf Current User umgebogen und nun geht's.

Dickes Danke !!
Hoffe ich kann mich mal revanchieren.

Gruss
Calli
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:50 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