4 Replies Latest reply on Aug 28, 2008 3:38 AM by bsc1

    WMI Abfrage

    MichaelPilling Apprentice
      Hallo zusammen,
      ich habe ein kleines denkproblem mit der WMISimpleQuery Abfrage. Ich möchte die Betriebssystem Sprache ermitteln. Versuche mit GetUserDefaultLangID bzw. GetSystemDefaultLangID schlagen fehl da standardmässig die Regionalen Einstellungen als Standard auf Deutsch gesetzt wurden.
      Deswegen bin ich auf Wmi Abfragen gekommen.
      Nun mein Problem:
      Kann mann dieselbe WMISimpleQuery Abfrage zweimal benutzen um zwei Variablen zu füllen ?

      Ich hatte gedacht in etwa so gedacht das:
      MISimpleQuery('\\.\root\cimv2','WIN32_OPERATINGSYSTEM','OSLanguage1=1033','WMI_')
      Englisch OS Abfragen soll und mit:
      MISimpleQuery('\\.\root\cimv2','WIN32_OPERATINGSYSTEM','OSLanguage2=1031','WMI_')
      ich die deutsche OS Abfrage realisieren.
      Nun habe ich aber immer das Problem das die Erste Abfrage funktioniert und die Zweite nicht.
      Danke für eure Hilfe.
      Michael

      Eingesezt enteo 5.8 mit cumu_ni_5.80_1535
        • 1. Re: WMI Abfrage
          MichaelPilling Apprentice
          Hallo zusammen,
          ich habe jetzt noch ein bischen mit if Abfragen getestet und so funktioniert es jedenfalls:

          WMISimpleQuery('\\.\root\cimv2','WIN32_OPERATINGSYSTEM','OSLanguage=1031','WMI_')
          OSLanguage

          If %WMI_OSLanguage%='1031'
          MsgBox  Info 1 Deutsch
          Else
          WMISimpleQuery('\\.\root\cimv2','WIN32_OPERATINGSYSTEM','OSLanguage=1033','WMI_')
            OSLanguage

          If %WMI_OSLanguage%='1033'
            MsgBox
             Info 2 Englisch


          Viele Grüße
          Michael
          • 2. Re: WMI Abfrage
            klaus.messmer Apprentice
            Hey,

            also ich mach das ganz flach und frage nur nach c:\programme oder c:\program files und zwischen Englisch und Deutsch zu unterscheiden... Aber wie man sieht führen viele Wege nach Rom... ;-)
            • 3. Re: WMI Abfrage
              vanGoo Rookie
              ???
              Warum denn so umständlich??

              Du hast die User-Id des angemeldeten User´s doch als globale Variable in NI angegeben.

              Dann einfach mit RegReadValue
              HKEY_USERS\%MS.SID%\Control Panel\Desktop\MultiUILanguageId
              die LanguageID auslesen und mit IF deine Installation durchführen..

              Ganz sauber wäre es natürlich die LanguageID in einer globalen NI-Variable zu definieren. :-)

              greez
              vanGoo

              @Klaus
              Gute Idee aber bei einer größeren Anzahl an Clients viel zu riskant. :-)
              • 4. Re: WMI Abfrage
                bsc1 Rookie
                Hallo zusammen,

                es gibt ja schon einige Threads und Ansätze zu dem Thema, aber eine wirklich praktikable Lösung war bisher nicht dabei.
                Entweder nicht zuverlässig oder zu kompliziert.

                Auf meiner Suche im Internet habe ich eine weitere Stelle gefunden, an der ich ein handfestes Merkmal für eine eindeutige Unterscheidung habe.
                C:\WINDOWS\system32\prodspec.ini

                ReadIni('C:\WINDOWS\system32\prodspec.ini','Product Specification','Localization','prodspeclang')


                Scheint auf den ersten Blick ganz gut zu funktionieren.
                Hat da irgend jemand Bedenken oder Anmerkungen?

                Gruß,
                Bene

                /Edit: Ich hab das in der 6.2beta getested.