Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Bussystem des Rechners ermitteln (https://www.delphipraxis.net/167095-bussystem-des-rechners-ermitteln.html)

Coffeecoder 13. Mär 2012 14:01

Betriebssystem: Win XP,Win Vista,Win 7

Bussystem des Rechners ermitteln
 
Hi Leute,
Ich suche nach einer Möglichkeit um herauszufinden ob es sich um einen 32-Bit oder 64-Bit Bussystem handelt.
Dies habe ich versucht :
Code:
@echo off & setlocal
wmic path win32_operatingsystem get caption|FINDSTR "x64" && goto:AAA

echo client ist ein XP 32 Bit rechner
goto ende

:AAA

echo Client ist XP 64 Bit Rechner

:ENDE
echo ende! 
pause
Quelle: http://www.administrator.de/index.php?content=94877
Dies zeigt bei einem Windows mit 64 Bit dennoch 32 Bit an.

Hat jemand eine andere Idee noch?

Danke euch 8-)

vagtler 13. Mär 2012 14:07

AW: Bussystem des Rechners ermitteln
 
Code:
Caption
ist definitiv die falsche Spalte. Hilfreicher wäre die Abfrage der Betriebssystemarchitektur.

Morphie 13. Mär 2012 14:07

AW: Bussystem des Rechners ermitteln
 
Das Script scheint nicht vernünftig zu funktionieren... Es gibt bestimmt bessere Alternativen, aber um mal bei deinem Beispiel zu bleiben, versuch mal das:
Code:
@echo off & setlocal
wmic path win32_operatingsystem get OSArchitecture|FINDSTR "64-Bit" && goto:AAA

echo client ist ein 32 Bit rechner
goto ende

:AAA

echo Client ist ein 64 Bit Rechner

:ENDE
echo ende! 
pause

implementation 13. Mär 2012 14:08

AW: Bussystem des Rechners ermitteln
 
Schau vielleicht mal, ob WOW64* vorhanden ist.

*Windows On Windows64

Luckie 13. Mär 2012 14:13

AW: Bussystem des Rechners ermitteln
 
Morphies Version gibt bei mir 64-Bit (endlich ;) ) aus.

Coffeecoder 13. Mär 2012 14:13

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Luckie (Beitrag 1156324)
Morphies Version gibt bei mir 64-Bit (endlich ;) ) aus.

Darf ich fragen welches Windows du hast?

Coffeecoder 13. Mär 2012 14:15

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von implementation (Beitrag 1156322)
Schau vielleicht mal, ob WOW64* vorhanden ist.

*Windows On Windows64

Ich nehme an, dass dieser Ordner C:\Windows\SysWow64 auf einem 64 Bit Rechner anwesend ist und auf einem 32 Bit eben nicht. Dann wäre das ein Ansatz.

So geht es auch:

Code:
@echo off
if exist C:\Windows\SysWow64  (
   echo Client ist ein 64 Bit
) else (
   echo Client ist ein 32 Bit
)
pause

Luckie 13. Mär 2012 14:27

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Coffeecoder (Beitrag 1156325)
Zitat:

Zitat von Luckie (Beitrag 1156324)
Morphies Version gibt bei mir 64-Bit (endlich ;) ) aus.

Darf ich fragen welches Windows du hast?

Windows 7 HP 64-Bit.

Coffeecoder 13. Mär 2012 14:30

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Luckie (Beitrag 1156331)
Zitat:

Zitat von Coffeecoder (Beitrag 1156325)
Zitat:

Zitat von Luckie (Beitrag 1156324)
Morphies Version gibt bei mir 64-Bit (endlich ;) ) aus.

Darf ich fragen welches Windows du hast?

Windows 7 HP 64-Bit.

Hmm eigenartig bei meinem Kollegen zeigte er vonMorphies Version "32 Bit" an obwohl es ein Windows 7 Pro 64-Bit ist. Sei es drum.
Was zeigt er denn bei dir an mit der Wow64 Variante an?

Luckie 13. Mär 2012 14:33

AW: Bussystem des Rechners ermitteln
 
Auch 64-Bit.

Coffeecoder 13. Mär 2012 14:37

AW: Bussystem des Rechners ermitteln
 
Ok. Das scheint zu funktionieren.
Danke euch allen :thumb:

Leider seh ich ein Problem mit der Wow64 Variante: Wenn man den Ordner in C:\Windows erstellt dann zeigt er trotzdem 64-Bit an, obwohl es ein 32-Bit wäre. Da hilft wohl nach weiteren Unterordner oder DLL zu suchen. Somit wäre es "sicherer".

p80286 13. Mär 2012 15:55

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Coffeecoder (Beitrag 1156318)
Hi Leute,
Ich suche nach einer Möglichkeit um herauszufinden ob es sich um einen 32-Bit oder 64-Bit Bussystem handelt.

Jetzt frag ich mich, wen interessiert das?
und
was hat das Betriebssystem mit einem Bussystem zu tun?

und man könnte fragen welches der vorhandenen Bussysteme denn gemeint ist....

Gruß
K-H

himitsu 13. Mär 2012 16:49

AW: Bussystem des Rechners ermitteln
 
paar Infos zum Computer:
Code:
COMPUTERNAME=MeinServer
NUMBER_OF_PROCESSORS=8
OS=Windows_NT
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 26 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=1a05

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files


Code:
REM 64 Bit AMD ?
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" ...

REM 32 Bit ?
IF "%ProgramFiles(x86)%"=="" ...

Coffeecoder 13. Mär 2012 18:29

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von p80286 (Beitrag 1156352)

Jetzt frag ich mich, wen interessiert das?
und
was hat das Betriebssystem mit einem Bussystem zu tun?

und man könnte fragen welches der vorhandenen Bussysteme denn gemeint ist....

Gruß
K-H

Nunja, ich bin dabei einen Vorgang zu vereinfachen: Kunden von uns müssen manchmal ihr Blackberry formatieren. Dies geht über eine exe-Datei wenn ein Programm installiert ist. Wenn es 32-Bit sind dann ist der Pfad anders als bei der 64-Bit Version.

himitsu 13. Mär 2012 18:39

AW: Bussystem des Rechners ermitteln
 
Was für ein Pfad denn?

Coffeecoder 13. Mär 2012 18:52

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von himitsu (Beitrag 1156387)
Was für ein Pfad denn?

32-Bit-Version: "C:\Program Files\Common Files\Research In Motion\"
64-Bit-Version: "C:\Program Files(x86)\Common Files\Research In Motion\"

:gruebel: Gibt es eventuell nicht die Möglichkeit ebenfalls sofort den Pfad von Programme oder Program Files rauszufinden?
Eine Umgebungsvariable? Es muss nicht immer zwingend Program Files sondern manchmal auch Programme bzw. Programme(x86).

jfheins 13. Mär 2012 19:21

AW: Bussystem des Rechners ermitteln
 
Sofern deine Delphi Anwendung 32 bittig ist, kannst du auch einfach das hier benutzen:
Code:
%CommonProgramFiles%\Research In Motion\
In der 64bit Version dann das hier:
Code:
%COMMONPROGRAMFILES(x86)%\Research In Motion\
Ggf. noch einen Compilerschalter rein und fertisch :-)

P.S.: Das Bussystem des Rechners hat damit erst mal wenig zu tun. Du solltest den Thread umbenennen ;-)

Coffeecoder 13. Mär 2012 19:29

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von jfheins (Beitrag 1156401)
Sofern deine Delphi Anwendung 32 bittig ist, kanns tdu auch einfach das hier benutzen:
Code:
%CommonProgramFiles%\Research In Motion\
In der 64bit Version dann das hier:
Code:
%COMMONPROGRAMFILES(x86)%\Research In Motion\
Ggf. noch einen Compilerschalter rein und fertisch :-)

Gut, danke für die Info :)

Zitat:

Zitat von jfheins (Beitrag 1156401)
P.S.: Das Bussytem des Rechners hat damit erst mal wenig zu tun. Du solltest den Thread umbenennen ;-)

An der Stelle könnte man auch einen neuen Thread aufmachen, weil es schon sehr nah an der Problembeschreibung ist ;)
Ich benenne ihn nicht um (wenn die Moderatoren einverstanden sind) aus dem Grund, wenn jemand nach einer Möglichkeit sucht um per Batch Datei das Bussystem festzustellen.

Bis dahin, sag ich mal danke an alle :thumb:

Luckie 13. Mär 2012 19:44

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Coffeecoder (Beitrag 1156403)
Ich benenne ihn nicht um (wenn die Moderatoren einverstanden sind) aus dem Grund, wenn jemand nach einer Möglichkeit sucht um per Batch Datei das Bussystem festzustellen.

Aber genau das machst du nicht und willst du auch nicht. Dir geht es um die Prozessorarchitektur.

himitsu 13. Mär 2012 22:57

AW: Bussystem des Rechners ermitteln
 
Zitat:

Eine Umgebungsvariable?
Wobei ich diese Umgebungsvariablen gaaaanz kurz vorher sogar aufgezeigt hatten. :angle2:

Nur ob es nun denn die globalen COMMON-Ordner sind, oder die private User-Ordner, das müßte man noch rausfinden.

Tipp: Gib mal den Befehl
Delphi-Quellcode:
SET
in die Konsole ein.

Coffeecoder 14. Mär 2012 07:10

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von himitsu (Beitrag 1156431)
Zitat:

Eine Umgebungsvariable?
Wobei ich diese Umgebungsvariablen gaaaanz kurz vorher sogar aufgezeigt hatten. :angle2:

*Hust* Ja, schon klar :roll: :oops:
Danke euch ;)

Luckie 14. Mär 2012 07:24

AW: Bussystem des Rechners ermitteln
 
Also um was geht es dir denn jetzt? Um die Prozessorarchitektur? dass das Bussystem von Interesse wäre, wäre mir nämlich neu.

vagtler 14. Mär 2012 07:39

AW: Bussystem des Rechners ermitteln
 
Genau genommen geht es wahrscheinlich weder um Bus- noch Prozessorarchitektur, sondern nur um die Ermittlung des korrekten Programmpfads abhängig vom Betriebssystem...

Coffeecoder 14. Mär 2012 07:44

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von vagtler (Beitrag 1156458)
Genau genommen geht es wahrscheinlich weder um Bus- noch Prozessorarchitektur, sondern nur um die Ermittlung des korrekten Programmpfads abhängig vom Betriebssystem...

Das ist wahr. Ich erläutere mal die Problembeschreibung:
Eine Batch-Datei soll ermitteln ob es sich um ein 32-Bit oder 64-Bit System handelt.
Ist eine 32-Bit-Version dann soll er diesen Pfad "C:\Program Files\Common Files\Research In Motion\" nehmen, sonst bei der
64-Bit-Version diesen Pfad "C:\Program Files(x86)\Common Files\Research In Motion\".
Doch jetzt entsteht ein weiteres Problem, je nach Sprache heisst es Program Files, Programme oder sonst was anderes.
Dazu verwende dann ich die Umgebungsvariable %ProgramFiles% und bastele mir den restlichen Pfad zusammen.

An der Stelle, sollte ich vielleicht in Betracht ziehen, dass ein Delphi-Programm besser geeignet wäre als eine Batch-Datei. In diesem Ordner "Research In Motion" gibt es ein Unterordner, welche eine Datei enthält die eine exe, die ich (mit Parameter) ausführen muss. Das kann man ja leicht mit der Funktion
Delphi-Quellcode:
ShellExecute(..)
machen.

Luckie 14. Mär 2012 07:52

AW: Bussystem des Rechners ermitteln
 
Zitat:

Zitat von Coffeecoder (Beitrag 1156461)
Doch jetzt entsteht ein weiteres Problem, je nach Sprache heisst es Program Files, Programme oder sonst was anderes.

Ab Vista nicht mehr. Und 64-Bit XP System dürfte es in der freien Wildbahn kaum geben.

himitsu 14. Mär 2012 08:45

AW: Bussystem des Rechners ermitteln
 
Jupp, Windows spricht inzwischen Englisch und die Anzeige wird lokalisiert.

Ist ganz bestimmt Programmierern wie dir geschuldet, welche Pfade hart einprogrammieren, anstatt Windows danach zu fragen.
Hier im Forum suchenenvironment variable usw.

Coffeecoder 14. Mär 2012 09:23

AW: Bussystem des Rechners ermitteln
 
Mit dieser Umgebungsvariable sollte es klappen:

Code:
echo %CommonProgramFiles%
Bei mir, zeigt er dann
Code:
C:\Program Files\Common Files
an.
Ich habe hier ein XP Pro.

Dies ist auch der Fall, kann jemand von euch auch das testen und eurer System auch angeben?
Danke euch.


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