iT邦幫忙

1

如何判斷該電腦是桌機還是筆電?

  • 分享至 

  • xImage

各位好,請問有辦法可以判斷我目前的電腦是桌機還是筆電嗎?

PS:用CMD方式查詢的方式

wmic systemenclosure get ChassisTypes
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
9
通靈亡
iT邦高手 1 級 ‧ 2020-04-29 17:00:30
最佳解答

Windows 可以用wmic 查看電腦資訊
https://www.windows-commandline.com/get-computer-model/

或 WMI SDK
https://devblogs.microsoft.com/scripting/how-can-i-determine-if-a-computer-is-a-laptop-or-a-desktop-machine/

將下面程式碼存成xxx.vbs,用CMD直接開啟

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery _
    ("Select * from Win32_SystemEnclosure")
For Each objChassis in colChassis
    For  Each strChassisType in objChassis.ChassisTypes
        Select Case strChassisType
            Case 1
                Wscript.Echo "Other"
            Case 2
                Wscript.Echo "Unknown"
            Case 3
                Wscript.Echo "Desktop"
            Case 4
                Wscript.Echo "Low Profile Desktop"
            Case 5
                Wscript.Echo "Pizza Box"
            Case 6
                Wscript.Echo "Mini Tower"
            Case 7
                Wscript.Echo "Tower"
            Case 8
                Wscript.Echo "Portable"
            Case 9
                Wscript.Echo "Laptop"
            Case 10
                Wscript.Echo "Notebook"
            Case 11
                Wscript.Echo "Handheld"
            Case 12
                Wscript.Echo "Docking Station"
            Case 13
                Wscript.Echo "All-in-One"
            Case 14
                Wscript.Echo "Sub-Notebook"
            Case 15
                Wscript.Echo "Space Saving"
            Case 16
                Wscript.Echo "Lunch Box"
            Case 17
                Wscript.Echo "Main System Chassis"
            Case 18
                Wscript.Echo "Expansion Chassis"
            Case 19
                Wscript.Echo "Sub-Chassis"
            Case 20
                Wscript.Echo "Bus Expansion Chassis"
            Case 21
                Wscript.Echo "Peripheral Chassis"
            Case 22
                Wscript.Echo "Storage Chassis"
            Case 23
                Wscript.Echo "Rack Mount Chassis"
            Case 24
                Wscript.Echo "Sealed-Case PC"
            Case Else
                Wscript.Echo "Unknown"
            End Select
    Next
Next

https://ithelp.ithome.com.tw/upload/images/20200429/20120331dSZGV9o7Hc.png

Linux 可以用 dmidecode | grep -A3 '^System Information' 查看電腦資訊
https://unix.stackexchange.com/questions/75750/how-can-i-find-the-hardware-model-in-linux

或者檢查 /sys/class/power_supply/ 是否存在
https://stackoverflow.com/questions/22180253/how-can-i-check-if-the-platform-is-laptop-or-desktop-on-ubuntu

石頭 iT邦研究生 4 級 ‧ 2020-04-29 18:27:07 檢舉

感謝~~ 用這方法我都可以判斷

2
chsinzk
iT邦研究生 1 級 ‧ 2020-04-29 16:38:25

可以嘗試用CMD查詢電池狀況

如果是桌面就沒電池

如果是NB就有電池

https://walker-a.com/archives/5371

石頭 iT邦研究生 4 級 ‧ 2020-04-29 18:26:25 檢舉

我發現我沒有他那個參數可以下 不過這方法確實也可以判斷 謝謝~

3
蟹老闆
iT邦大師 1 級 ‧ 2020-04-29 16:52:27

參考

石頭 iT邦研究生 4 級 ‧ 2020-04-29 18:13:22 檢舉

這個在XP似乎不能用 哈哈 我現在還在用XP的NB .../images/emoticon/emoticon17.gif

1
msnman
iT邦研究生 1 級 ‧ 2020-04-29 16:54:24

可以在cmd視窗下
執行msinfo32這個指令
win10以上可以從訊息視窗上有一項平台角色判斷是桌機還是筆電。
另外從CPU型號也可以判斷。

石頭 iT邦研究生 4 級 ‧ 2020-04-29 18:25:04 檢舉

謝謝~

我要發表回答

立即登入回答