systemabfrage (os) mit c/c++
Marcel Stoer
- programmiertechnik
hallo leute
wie kann ich mit c/c++ bestimmen mit welchem os der user arbeitet. bestimmt gibt es eine filesearch nach einer datei, die z.b. nur unter nt vorhanden ist oder so...
auch links zu relevanten themen sind willkommen:-)
marcel
Hi Marcel,
wie kann ich mit c/c++ bestimmen mit welchem os der user arbeitet. bestimmt gibt es eine filesearch nach einer datei, die z.b. nur unter nt vorhanden ist oder so...
meinst du jetzt unter welcher Windows-Version, oder überhaupt unter welchem OS, also auch Unix? Letzteres geht nicht, Ersteres kann ich bei Interesse morgen beantworten. Ich komm' gerade vom Weindorf und hab leichte Schwieirigkeiten geradeaus zu schauen *hicks*
Gruß,
Martin
hi!
wie kann ich mit c/c++ bestimmen mit welchem os der user arbeitet.
bestimmt gibt es eine filesearch nach einer datei, die z.b. nur
unter nt vorhanden ist oder so...
Eigentlich gibt es in C oder C++ gar keine richtige Möglichkeit, das
zur Laufzeit herauszufinden. Aber du kannst das ganz einfach vom
Preprozessor erledigen lassen, bereits beim kompilieren:
#ifdef WIN32
const char *os = "Windows";
#endif
#ifdef LINUX
const char *os = "Linux";
#endif
Und so weiter... Normalerweise müsste bei jedem Compiler irgendwo
definiert sein, unter welchem OS gerade kompiliert wird.
Innerhalb dieser Abschnitte kannst du dann evtl. genauer entscheiden,
zb. im "#ifdef WIN32"-Bereich die Win-API abfragen, welche Version
von Windows gerade läuft, etc.
bye, Frank!
Hi Marcel,
schön dass du mir gemailt hast, aber ich antworte lieber hier, weil ich denke, dass sowas auch andere mal interessiert. Und dann steht der Link http://msdn.microsoft.com/library/psdk/sysmgmt/sysinfo_92jy.htm im Archiv.
Gefunden habe ich es auf der MSDN-Website von MS mit Hilfe der Suche. Die funktioniert ähnlich wie die Archiv-Suche hier, man muss nur die Worte eingeben, die dann mit "UND" verknüpft werden. Wer ausgefeiltere Techniken braucht, zur Advanced Search gibt's ne gute Hilfe.
Gruß,
Martin
hallo martin
vielen dank für deine hilfe. ich denkde, ich werd mich beim msdn online jetzt häufiger mal umsehen. habs bis anhin noch nie benutzt.
zum code:
ist doch toll, wenn man sich den ms code mit copy & paste runterzieht und dann beim kompilieren erstmal 4 fehlermeldungen erhält, was?... keine wunder ist die ms software nicht immer die stabilste...;-)
auf ein ander mal
marcel
Hi Marcel,
zum code:
ist doch toll, wenn man sich den ms code mit copy & paste runterzieht und dann beim kompilieren erstmal 4 fehlermeldungen erhält, was?... keine wunder ist die ms software nicht immer die stabilste...;-)
dann aber hopp, hopp, nochmal zu MS, diesmal http://msdn.microsoft.com/downloads/sdks/platform/platform.asp und das neuste Platform SDK mit den Headern und Libs runterladen, die nötig sind, um das Beispiel zu übersetzen :-)
Die im Beispiel benutzte Struktur OSVERSIONINFOEX gibt's erst ab Windows 2000, ebenso die Konstanten. Da aber drauf Rücksicht genommen wird, ob es diese Struktur überhaupt gibt, läuft es auf allen Win32-Plattformen.
Gruß,
Martin