首页
社区
课程
招聘
[求助]如何识别程序是在笔记本电脑还是台式机电脑上运行
发表于: 2008-5-16 08:01 10311

[求助]如何识别程序是在笔记本电脑还是台式机电脑上运行

2008-5-16 08:01
10311

如何识别程序是在笔记本电脑还是台式机电脑上运行,请大牛指点迷津。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
2
如果有电池设备就是?不知道
2008-5-16 14:34
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢dummy您的指点,如何识别电池设备呢?
2008-5-16 14:44
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
4
无线网卡123456
2008-5-16 14:50
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
5
GetSystemPowerStatus
2008-5-16 14:59
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢Bughoho的回复指点,如果台式机使用无线网卡是否就不能以此判断了。

————————————————————————————————————————

谢谢dummy您再次指点,我已搞定,希望对此有需求的朋友有用。
具体方法是:
1 通过调用GetSystemPowerStatus函数获得SYSTEM_POWER_STATUS结构中的BatteryFlag的值,如果BatteryFlag为128时没有电池,是台式机,其他为笔记本。

2 如果笔记本不用电池而直接用电源怎样判断?
2008-5-16 17:29
0
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
7
为什么要判断是笔记本 还是台式呢  比较好奇= =
搜了点网上 :
1,用GetKeyboardType函数判断键盘是否是83键的,用GetCurrentHwProfile   
  判断电脑是否可以入坞(Dock)
2,假如是安装后的话,可以看注册表的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{72631E54-78A4-11D0-BCF7-00AA00B7B32A

这个下面有没有000,001的值,有就是笔记本。

3,您可以判断CPU类型,如果是mobile的话,一般就是笔记?

网上找到的
4,转一关于判断是台式电脑或笔记本的程序 地址 http://blog.csdn.net/fghshy/archive/2007/11/10/1877519.aspx

还有5,
using System;
using System.Collections.Generic;
using System.Text;
using System.Management;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
            foreach (ManagementObject obj in systemEnclosures.GetInstances())
            {
                foreach (int i in (Int16[])(obj["ChassisTypes"]))
                {
                    switch (i)
                    {
                        case 3:
                            Console.WriteLine("这是台式机!");
                            break;
                        case 8:
                        case 9:
                            Console.WriteLine("这是笔记本!");
                            break;
                    }
                }
            }
            Console.ReadLine();

        }
    }
}
2008-5-16 17:45
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢bzhkl,您提供这么翔实的资料,谢谢。
2008-5-16 21:25
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
经测试,如果笔记本没有安装电池,就不能用GetSystemPowerStatus函数来识别了
2008-5-26 21:01
0
雪    币: 183
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很有趣...
2008-5-27 18:12
0
雪    币: 424
活跃值: (1879)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
呵呵,有意思,判断CPU应该比较通用一些
2008-5-27 18:20
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
12
判断cpu比较好
2008-5-27 20:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
确实很有趣。
学习
2008-5-27 20:54
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
是的,用判断cpu比较好(我的一个用户的笔记本就是没有安装电池)

经两台笔记本电脑测试:

    1 i 的值为10时是笔记本电脑。
    2 bzhkl大牛的程序修改如下:
      switch (i)
         {
                        case 3:
                            Console.WriteLine("这是台式机!");
                            break;
                        case 8:
                        case 9:
                        case 10:
                            Console.WriteLine("这是笔记本!");
                            break;
            }

      3 希望对此有需求的朋友有用。
2008-5-28 05:45
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不知高手们对“如何读取U盘的信息如何VID、PID和物理序列号”是否感兴趣,请指点迷津
2008-5-28 07:55
0
游客
登录 | 注册 方可回帖
返回
//