AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi TRegistry: Unterschied zwischen Konsole und GUI?

TRegistry: Unterschied zwischen Konsole und GUI?

Ein Thema von DeddyH · begonnen am 11. Jul 2012 · letzter Beitrag vom 12. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#1

TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:28
Hallöle,

gegeben sei folgende Funktion:
Delphi-Quellcode:
function GetTheUltimateAnswer(out Value: string): Boolean;
const
  Key = 'SOFTWARE\Deep Thought';
  Ident = 'Die Frage nach dem Leben, dem Universum und einfach allem';
var
  Reg: TRegistry;
begin
  Value := '';
  Result := false;
  Reg := TRegistry.Create(KEY_READ);
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey(Key, false) then
      try
        Value := Reg.ReadString(Ident);
        Result := Value <> '';
      finally
        Reg.CloseKey;
      end;
  finally
    Reg.Free;
  end;
end;
In einem GUI-Programm bekomme ich true und damit einen Wert zurück, in einer Konsolenanwendung nicht (natürlich bei exakt identischem Code). Hat jemand eine Ahnung, woran das liegen könnte?

Nachtrag: mit einem anderen Schlüssel funktioniert das auch in der Konsole, hä?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:32
42

Rechte?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:34
Leserechte sind vorhanden, außerdem ist das ja derselbe User, oder wird ein Konsolenprogramm in einem anderen Kontext ausgeführt? Achja, OpenKey wird noch ausgeführt, nur beim ReadString kommt nix zurück.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#4

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:35
Eventuell bekommt die Konsole andere Rechte, bzw. die (eventuell aktivierte) Virtualisierung greift bei Konsolen anders ein?

Bei Dateioperationen weiß ich z.B. daß dort die OEM-Codepage verwendet wird, wärend GUI-Anwendungen auf ANSI laufen.
(drum sieht WriteLn('ä') etwas komisch aus, bzw FindFirst mit solchen Umlauten wirkt auch nicht unbedingt so, wie gewollt)

MSDN-Library durchsuchenAreFileApisANSI
MSDN-Library durchsuchenSetFileApisToANSI
MSDN-Library durchsuchenSetFileApisToOEM
Vielleicht gibt's sowas auch für die Registry, bzw. es wirkt sich auch auf Diese aus.

[add]
Delphi-Referenz durchsuchenOpenKeyReadOnly?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:42
Hmm..., der originale Ident enthält einen Tiefstrich, ob es daran liegt? Aber ist der denn unterschiedlich zwischen Ansi und OEM, zumindest ist mir das nie aufgefallen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:49
Reg := TRegistry.Create(KEY_READ OR KEY_WOW64_64KEY );

geht bei mir im nicht Wow6432Node
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 14:57
Nochmal: derselbe Code mit demselben Delphi auf demselben System (Vista 32 Business) liefert entweder ein Ergebnis(GUI) oder nicht(Konsole). Wahrscheinlich hat das tatsächlich mit der Zeichenkodierung zu tun, aber bevor ich jetzt mit OEMToCharBuff o.ä. herumhantiere habe ich nun doch ein "normales" VCL-Progrämmchen daraus gemacht. Interessant ist der Effekt trotzdem.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#8

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 15:12
Du kannst auch das {$APP CONSOLE} aus der Konsolenanwendung entfernen, dann ist es quasi eine GUI-Anwendung, ohne GUI.

Funktioniert es dann?

(Notfalls kann man sich dann über CreateConsole AllocConsole ein Konsolenfenster in seine GUI-Anwendung holen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Jul 2012 um 15:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 15:17
Tut auch nicht, nur als Standard-VCL-Programm. Komisch, das. Ich probier das jetzt mal mit Umkodieren, weil es mich interessiert.

[edit] Jetzt wird es ganz ulkig: KeyExists liefert auch unter VCL false, ausgelesen wird trotzdem der richtige Wert [/edit]

[edit2] Logisch, das müsste ja auch ValueExists heißen [/edit2]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (11. Jul 2012 um 15:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: TRegistry: Unterschied zwischen Konsole und GUI?

  Alt 11. Jul 2012, 16:03
Und auch hier wieder mal der Hinweis auf den Process Monitor. Damit siehst du sofort und ohne Mühe worauf zugegriffen wird...

Damit debugge ich so etwas immer schnell und brauche nicht lange suchen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:57 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