AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ermitteln ob 32 Bit oder 64 Bit Betriebssystem

ermitteln ob 32 Bit oder 64 Bit Betriebssystem

Ein Thema von juergen · begonnen am 8. Aug 2008 · letzter Beitrag vom 9. Aug 2008
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 14:42
Hallo zusammen,

ich musste gerade feststellen, dass ein bestimmtes Programm welches ich unter VISTA 64 Bit programmiert hatte und welches auch in die Registry schreibt unter Vista 32 Bit nicht richtig funktioniert.
Unter Vista 64 Bit schreibe ich in den Schlüssel -> HKEY_LOCAL_Machine\Software\Wow6432Node\...
In der Suche habe ich hier nichts gefunden, auf MSDN folgenden C#-Code-Schnipsel:
Zitat:
{
BOOL Is64BitWindows()
#if defined(_WIN64)
return TRUE; // 64-bit programs run only on Win64
#elif defined(_WIN32)
// 32-bit programs run on both 32-bit and 64-bit Windows
// so must sniff
BOOL f64 = FALSE;
return IsWow64Process(GetCurrentProcess(), &f64) && f64;
#else
return FALSE; // Win64 does not support Win16
#endif
}
Den bekomme ich in Delphi nicht umgesetzt.

Kann mir hier jemand helfen?

Schon mal Danke vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 14:46
Gibts in der Jedi:

IsWindows64 in JclSysInfo.


Da aktuell Delphi nur 32-Bit Exen erzeugen kann ist dieser Codeabschnitt für dich nicht gerade brauchbar.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#3

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 14:52
Delphi-Quellcode:
function IsWindows64: Boolean;
type
  TIsWow64Process = function( // Type of IsWow64Process API fn
    Handle: Windows.THandle; var Res: Windows.BOOL
  ): Windows.BOOL; stdcall;
var
  IsWow64Result: Windows.BOOL; // Result from IsWow64Process
  IsWow64Process: TIsWow64Process; // IsWow64Process fn reference
begin
  // Try to load required function from kernel32
  IsWow64Process := Windows.GetProcAddress(
    Windows.GetModuleHandle('kernel32'), 'IsWow64Process
  );
  if Assigned(IsWow64Process) then
  begin
    // Function is implemented: call it
    if not IsWow64Process(
      Windows.GetCurrentProcess, IsWow64Result
    ) then
      raise SysUtils.Exception.Create('IsWindows64: bad process handle');
    // Return result of function
    Result := IsWow64Result;
  end
  else
    // Function not implemented: can't be running on Wow64
    Result := False;
end;
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 15:09
@ Bernhard,
Jedi habe ich (noch) nicht installiert...

@API,
perfekt, funktioniert!
Danke!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 22:01
Zitat von juergen:
unter Vista 32 Bit nicht richtig funktioniert.
Nö, funktioniert wie von Microsoft vorgesehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 8. Aug 2008, 22:44
Zitat von juergen:
...In der Suche habe ich hier nichts gefunden...
Suche mal in der Code-Libary nach Wow64Wow64 drt findest Du einen ausführlichen Beitrag über die Registry unter Windows 64Bit und 32Bit.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: ermitteln ob 32 Bit oder 64 Bit Betriebssystem

  Alt 9. Aug 2008, 10:38
@RWarnecke,

den Suchbegriff Wow64 hatte ich leider nicht verwendet...
Danke für den interessanten Link!

Der Beitrag von Rakshasa erläutert anschaulich die Hintergründe und Handhabung der Registry (lesend und schreibend) und ist wichtig zu wissen.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
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 00:26 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