Windows 32 oder 64 bit?
Windows 32 oder 64 bit?
Hallo zusammen,
also hier in der Firma sollten Angeblich nur 64 Bit Rechner rumstehen (dachten wir bis gestern) nun hab ich Endlich mal die neue Lazarus Version auf 64 bit installiert und siehe da 30 % der Clients gingen nicht mehr. Nun haben wir aber viele Studenten die von zuhause aus arbeiten und das nicht so mitteilen wenn ihr Client so funktioniert. Deswegen wollte ich mal nachfragen ob ich irgendwie auslesen kann welches Betriebssystem der Anwender hat, 32 oder 64 bit und wie der Rechnername ist?
Tja und dann noch gleich automatisch ein Report erstellen wie teuer es wäre neue Rechner anzuschaffen
das wäre so mein Traum
das wäre echt klasse
also hier in der Firma sollten Angeblich nur 64 Bit Rechner rumstehen (dachten wir bis gestern) nun hab ich Endlich mal die neue Lazarus Version auf 64 bit installiert und siehe da 30 % der Clients gingen nicht mehr. Nun haben wir aber viele Studenten die von zuhause aus arbeiten und das nicht so mitteilen wenn ihr Client so funktioniert. Deswegen wollte ich mal nachfragen ob ich irgendwie auslesen kann welches Betriebssystem der Anwender hat, 32 oder 64 bit und wie der Rechnername ist?
Tja und dann noch gleich automatisch ein Report erstellen wie teuer es wäre neue Rechner anzuschaffen
das wäre so mein Traum
das wäre echt klasse
-
- Beiträge: 470
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: Windows 32 oder 64 bit?
Ich hab mal das benutzt:
Code: Alles auswählen
//False = 32bit system
//True = 64bit system
function IsWOW64: Boolean;
begin
Result := sysutils.GetEnvironmentVariable('ProgramW6432')<>'';
end;
mfg Ingo
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Windows 32 oder 64 bit?
Vorsicht! Erfahrungsgemäß ist auf vielen 64Bit-fähigen Rechnern ist ein 32-Bit Windows installiert! Es liegt nicht immer an der Hardware!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Windows 32 oder 64 bit?
MacWomble hat geschrieben:Vorsicht! Erfahrungsgemäß ist auf vielen 64Bit-fähigen Rechnern ist ein 32-Bit Windows installiert! Es liegt nicht immer an der Hardware!
Auf dem 32-Bit Win wirst Du aber auch kein ein 64-Bit Lazarusprogramm laufen lassen können.
Unter Start => Computer => rechte Maus => Eigenschaften bekommst Du sowohl Prozessor als auch OS-Version angezeigt.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Windows 32 oder 64 bit?
Timm Thaler hat geschrieben:Auf dem 32-Bit Win wirst Du aber auch kein ein 64-Bit Lazarusprogramm laufen lassen können.
... und auf 32-bit Hardware kein W64
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Windows 32 oder 64 bit?
Dies müsste doch auch irgendwo in der Registry vermerkt sein, so das man es im eigenen Lazarus-Programm abfragen kann ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Windows 32 oder 64 bit?
Man kann auch einfach das Betriebssystem selbst fragen:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684139(v=vs.85).aspx
Die Funktion ist in der Unit jwawinbase deklariert.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684139(v=vs.85).aspx
Die Funktion ist in der Unit jwawinbase deklariert.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Windows 32 oder 64 bit?
Code: Alles auswählen
function GetComputerName : string;
{$IFDEF WINDOWS}
var
len : cardinal;
begin
len := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(result, len);
if Windows.GetComputerName(PChar(result), len) then begin
SetLength(Result, len);
Result := SysToUTF8(Result);
end
else
RaiseLastWin32Error;
end;
{$ELSE}
begin
Result := GetHostName;
end;
{$ENDIF}
// Gibt aber auch bei einem 64-bit Windows "Win32" aus, wenn das Programm als 32-bit-Programm kompiliert wurde.
function GetOS: string;
begin
result := {$I %FPCTARGETOS%};
end;
uses
Windows;
function GetOS: string;
begin
result := {$I %FPCTARGETOS%};
end;
function GetWinVer: string;
// Liefert die Versionsnummer von Windows als String
begin
// http://wiki.lazarus.freepascal.org/WindowsVersion/de
{ Beispiele für Windows-Versionsnummern:
5.0 => Windows 2000
5.1 => Windows XP
5.2 => Windows XP64 oder Windows 2003 Server
6.0 => Windows Vista oder Windows 2008 Server
6.1 => Windows 7 oder Windows 2008 Server R2
6.2 => Windows 8 oder Windows Server 2012
6.3 => Windows 8.1 oder Windows Server 2012 RS
}
case Win32MajorVersion of
5: case Win32MinorVersion of
0: Result := 'Windows 2000';
1: Result := 'Windows XP';
2: Result := 'Windows XP64/Windows 2003 Server';
end;
6: case Win32MinorVersion of
0: Result := 'Vista/Windows 2008 Server';
1: Result := 'Windows 7/Windows 2008 Server R2';
2: Result := 'Windows 8/Windows Server 2012';
3: Result := 'Windows 8.1/Windows Server 2012 RS';
end;
10: Result := 'Windows 10';
else Result := Format('%d.%d', [Win32MajorVersion, Win32MinorVersion]);
end;
Result := Result + ' Build ' + IntToStr(Win32BuildNumber);
if Win32CSDVersion <> '' then
Result := Result + ' (' + Win32CSDVersion + ')';
end;
// http://wiki.lazarus.freepascal.org/Dete ... 64_example
function IsWindows64: boolean;
{ Detect if we are running on 64 bit Windows or 32 bit Windows,
independently of bitness of this program.
Original source:
http://www.delphipraxis.net/118485-ermi ... ystem.html
modified for FreePascal in German Lazarus forum:
viewtopic.php?f=55&t=5287
}
{$ifdef WIN32} //Modified KpjComp for 64bit compile mode
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 := TIsWow64Process(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;
{$else} //if were running 64bit code, OS must be 64bit :)
begin
Result := True;
{$endif}
end;
procedure TForm1.FormCreate(Sender: TObject);
const
bitness: array[boolean] of integer = (32, 64);
var
s: String;
begin
if IsWindows64 then s := '64 bit' else s := '32 bit';
Caption := Format('%s %d-bit', [
GetWinVer, bitness[IsWindows64]
]);
end;