AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laptop oder Desktop Computer ermitteln??

Ein Thema von Piro · begonnen am 22. Feb 2007 · letzter Beitrag vom 28. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 18:50
Guten Abend,

kann mir einer einen Ansatz geben, wie ich ermitteln kann, ob es sich um einen Laptop, Desktop PC oder Server handelt?

Wäre echt cool.

Gruß, Sven
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 18:57
Was macht denn für dich die Differenz zwischen einem Laptop, Desktop PC und Server aus. Ich kann durchaus auf meinem Laptop ein Win2003 OS installieren, und wenn ich zuviel Geld hab, so darf ich auch gern ein Dell PE 2950 als Arbeitsplatzrechner nutzen.

Irgendwelche Kriterien brauchst Du also!
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 19:12
Die Abhängigkeit liegt im lokalen Administrator. Ist aber auch egal.

In VBS kann man das mit Computer Chassis Typ ermitteln. Irgendwie muss das doch auch auf Delphi anwendbar sein ohne den Code von VBS nach Delphi zu wandeln.

Gruß, Sven
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 19:32
Zitat von daywalker299:
Die Abhängigkeit liegt im lokalen Administrator. Ist aber auch egal.
Und was hat das mit dem Rechnertyp zu tun?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 19:45
Wir haben in der Firma unterschiedliche lokale Administratoren für Laptops und Desktops. Der User an sich hat keine Adminrechte mehr.

Ich brauche die Ermittlung für eine Installation. Ich möchte den in Abhängigkeit des Chassis Typs den lokalen Administrator die folgende Funktion aufrufen lassen "CreateProcessAsLogon".

Ich könnte auch abfragen, ob der lokale Administrator existiert aber ich würde es gerne über den Chassis Typ oder wie auch immer ich ermitteln kann, ob Laptop oder Desktop, programmieren.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 19:46
Genügt nicht einfach das Prüfen auf einen Akku? Wäre für mich das Naheliegenste, oder? Jetzt weiß ich nur nicht, inwieweit eine USV als Akku erkannt wird *g*

Da:

Delphi-Quellcode:
function GetPowerStatus(var HasBattery: Boolean; var LoadStatusString: String;
      var LoadstatusPercent: Integer): DWORD;


function TForm1.GetPowerStatus(var HasBattery: Boolean; var LoadStatusString: String;
  var LoadstatusPercent: Integer): DWORD;
var
  SystemPowerStatus: TSystemPowerStatus;
  Text:string;
resourcestring
  rsLoadStatusUnknown = 'Unbekannter Status';
  rsLoadStatusNoBattery = 'Es existiert kein Akku';
  rsLoadStatusHigh = 'Hoher Ladezustand';
  rsLoadStatusLow = 'Niedriger Ladezustand';
  rsLoadStatusCritical = 'Kritischer Ladezustand';
  rsLoadStatusLoading = ' Akku wird geladen';
  rsLoadSatusUnknownLoading = 'Unbekannter Ladezustand';
begin
  SetLastError(0);
  if GetSystemPowerStatus(SystemPowerStatus) then
    with SystemPowerStatus do
    begin
      HasBattery := ACLineStatus = 0;
      // Ladezustand der Batterie
      if (BatteryFlag = 255) then
        LoadStatusString := rsLoadStatusUnknown
      else if (BatteryFlag and 128 = 128) then
        LoadStatusString := rsLoadStatusNoBattery
      else
      begin
        case (BatteryFlag and (1 or 2 or 4)) of
          1: Text := rsLoadStatusHigh;
          2: Text := rsLoadStatusLow;
          4: Text := rsLoadStatusCritical;
        else
          LoadStatusString := rsLoadSatusUnknownLoading
        end;
        if (BatteryFlag and 8 = 8) then
          LoadStatusString := Text + rsLoadStatusLoading
        else
          LoadStatusString:=text+' '+inttostr(LoadstatusPercent)+'% verbleibend';
      end;
      // Ladezustand in Prozent
      if (BatteryLifePercent <> 255) then
        LoadstatusPercent := BatteryLifePercent
      else
        LoadstatusPercent := -1;
  end;
  Result := GetLastError;
end;
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 19:49
Da wir über Alternativen reden, gehe ich mal davon aus, dass das mit dem Chassis Typ nicht geht. Oder?

Die Idee mit dem Akku ist auch nicht schlecht. Der Unterschied zwischen Dektop oder Laptop und Server würde ich über das Betriebssystem machen.

Also bleibt nur noch der Unterschied zwischen Desktop und Laptop übrig.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 20:02
@christian.noeding: Wenn der Laptop am Netz ist, wird er Akku nicht erkannt und würde als Desktop PC erkannt. Etwas unpraktisch.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Laptop oder Desktop Computer ermitteln??

  Alt 22. Feb 2007, 20:14
Hast dus getestet? Bei mir gibts da keine Probleme... es wird sogar entsprechend der entsprechend definierte String "Akku wird geladen..." angezeigt und die Prozentzahl lässt sich prima auslesen...

Na gut, es kann sein, dass es hier akkuspezifisch Probleme geben kann, jedoch funktioniert die gepostete Funktion mit Notebooks von MSI, Fujitsu-Siemens (Amilo-M) und Acer. Habe ich getestet.


Bis denn,
Christian


Edit:
HasBattery := ACLineStatus = 0 - OK, das stimmt - eben überlesen. Dann musst du eben das Statusbyte auslesen und entsprechend auswerten.
Christian Nöding
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Laptop oder Desktop Computer ermitteln??

  Alt 24. Feb 2007, 17:53
VB Script

Delphi-Quellcode:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colChassis = objWMIService.ExecQuery _
    ("Select * from Win32_SystemEnclosure")

For Each objChassis in colChassis
    For i = Lbound(objChassis.ChassisTypes) to Ubound(objChassis.ChassisTypes)
        Wscript.Echo objChassis.ChassisTypes(i)
    Next
Next
im netz gefunden
Marcel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:54 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