如实判断是台式机还是笔记本电脑(300)

  • 主题发起人 fangzhou_com
  • 开始时间
F

fangzhou_com

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用DELPHI程序判断是台式机还是笔记本电脑呢?请大家帮帮忙
 
取CPU型号,大致可以判断。
 
有VBS代码和C#代码。我不知道如何转成DELPHI或者C++的了
 
if 我的电脑='笔记本' then
 
好象有的台式机用的是笔记本的CPU和主板,那怎么判断????
 
不妨从电源管理下手.
 
SELECT * FROM Win32_SystemEnclosure大家能帮看看怎么用这个来实现吗?
 
区别主要在CPU上,查看CPU型号是最好的办法。
 
INTEL的CPU型号首字母是根据电压区分的,一般M是笔计本,其它是台式机。
 
Date: 14 Jan 2004 06:18:41 -0700Hello, The code below would be a possible translation of that script. I am using TWmiQuery component from WmiSet component collection: http://www.online-admin.com/twmiquery.html uses WmiConnection, WmiDatyaSet; .... var vConnection: TWmiConnection; vQuery: TWmiQuery; vResult: OleVariant; vLow, vHigh, i: integer; begin vConnection := TWmiConnection.Create(nil); vConnection.Connected := true; vQuery := TWmiQuery.Create(nil); vQuery.Connection := vConnection; vQuery.WQL.Text := 'SELECT * FROM Win32_SystemEnclosure'; vQuery.Active := true; // laptop in a docking station will have // more than one system enclosure. Iterate through all of them while not vQuery.EOF do begin vResult := vQuery.FieldByName('ChassisTypes').AsVariant; vLow := VarArrayLowBound(vResult, 1); vHigh := VarArrayHighBound(vResult, 1); for i := vLow to vHigh do if vResult = 10 then ShowMessage('Notebook'); vQuery.Next; end; end;效果图: http://www.delphibbs.com/keylife/iblog_show.asp?xid=31013
 
判断是否有电池,有电池就是笔记本,O(∩_∩)O~
 
最简单的办法,写个设置选项,让用户去选反正设置一次就OK的,也麻烦不到哪去不是所有问题都要用技术去解决的,太累了。
 
SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); 以上为判断笔记本电脑当前使用电源类型的API函数,你可以从上面入手。 下面是转帖的代码引用单元: Windows, ActiveX, Classes, ShlObj; ________________________________________________________ function GetAPMLineStatus: TAPMLineStatus; var SystemPowerstatus: TSystemPowerStatus; begin Result := alsUnknown; if not GetSystemPowerStatus(SystemPowerStatus) then RaiseLastWin32Error else begin case SystemPowerStatus.ACLineStatus of 0: Result := alsOffline; 1: Result := alsOnline; 255: Result := alsUnknown; end; end; end; //------------------------------------------------------------------------------ function GetAPMBatteryFlag: TAPMBatteryFlag; var SystemPowerstatus: TSystemPowerStatus; begin Result := abfUnknown; if not GetSystemPowerStatus(SystemPowerStatus) then RaiseLastWin32Error else begin case SystemPowerStatus.BatteryFlag of 1: Result := abfHigh; 2: Result := abfLow; 4: Result := abfCritical; 8: Result := abfCharging; 128: Result := abfNoBattery; 255: Result := abfUnknown; end; end; end; //------------------------------------------------------------------------------ function GetAPMBatteryLifePercent: Integer; var SystemPowerstatus: TSystemPowerStatus; begin Result := 0; if not GetSystemPowerStatus(SystemPowerStatus) then RaiseLastWin32Error else Result := SystemPowerStatus.BatteryLifePercent; end; //------------------------------------------------------------------------------ function GetAPMBatteryLifeTime: Integer; var SystemPowerstatus: TSystemPowerStatus; begin Result := 0; if not GetSystemPowerStatus(SystemPowerStatus) then RaiseLastWin32Error else Result := SystemPowerStatus.BatteryLifeTime; end; //------------------------------------------------------------------------------ function GetAPMBatteryFullLifeTime: Integer; var SystemPowerstatus: TSystemPowerStatus; begin Result := 0; if not GetSystemPowerStatus(SystemPowerStatus) then RaiseLastWin32Error else Result := SystemPowerStatus.BatteryFullLifeTime; end;
 
来自:xianjun, 时间:2009-2-19 12:58:55, ID:3944671最简单的办法,写个设置选项,让用户去选反正设置一次就OK的,也麻烦不到哪去不是所有问题都要用技术去解决的,太累了。 [:D][:D]
 
判断电源也是错的 因为现在拿调电源用的本本也多。我的意见是:判断有没有触摸鼠标的。 或者判断有没有modem的 基本上的台式电脑没有modem
 
多人接受答案了。
 
顶部