Как определить, я работаю на ноутбуке или нет?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.08.23 13:39
Оценка:
Здравствуйте!

Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?
Маньяк Робокряк колесит по городу
Re: Как определить, я работаю на ноутбуке или нет?
От: vsb Казахстан  
Дата: 02.08.23 13:45
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву?


Вряд ли есть универсальный рецепт. Можно сказать, что на большинстве ноутбуков и на меньшинстве компьютеров есть подключенная батарея, которую ОС видит.

Встроенная клавиатура вряд ли отличается от невстроенной, можно составить базу данных клавиатур, если у тебя есть возможность тестировать свою программу на всех моделях ноутбуков.

M>Ну, и как узнать модель устройства/название ноутбука?


В БИОСе есть product id. Не знаю, как в винапи его прочитать, https://www.baeldung.com/linux/get-bios-data тут есть про линукс информация, полагаю, существенных отличий не будет. Ну и дальше так же — через базу данных.
Re[2]: Как определить, я работаю на ноутбуке или нет?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.08.23 13:52
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Вряд ли есть универсальный рецепт. Можно сказать, что на большинстве ноутбуков и на меньшинстве компьютеров есть подключенная батарея, которую ОС видит.


Ну, в принципе, детектить по наличию батареи — как вариант

vsb>Встроенная клавиатура вряд ли отличается от невстроенной, можно составить базу данных клавиатур, если у тебя есть возможность тестировать свою программу на всех моделях ноутбуков.


Отличается
Автор: Marty
Дата: 02.08.23



M>>Ну, и как узнать модель устройства/название ноутбука?


vsb>В БИОСе есть product id. Не знаю, как в винапи его прочитать, https://www.baeldung.com/linux/get-bios-data тут есть про линукс информация, полагаю, существенных отличий не будет. Ну и дальше так же — через базу данных.



Ну а мне вот через винапи как раз и надо.
Маньяк Робокряк колесит по городу
Re: Как определить, я работаю на ноутбуке или нет?
От: ononim  
Дата: 02.08.23 17:22
Оценка: 6 (1)
M>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?

Win32_Battery class
Win32_SystemEnclosure class

(c) https://www.codeproject.com/Questions/386557/Desktop-or-laptop-machine

SYSTEM_POWER_STATUS, and check the value of ACLineStatus field.

ACLineStatus = 0 => The system is not using AC power > Laptop + battery
ACLineStatus = 1 => The system is using AC power => Laptop + AC
ACLineStatus = 255 => AC power status is unknown => Desktop

(c) https://stackoverflow.com/questions/4849447/detect-if-application-is-running-on-laptop
Как много веселых ребят, и все делают велосипед...
Re: Как определить, я работаю на ноутбуке или нет?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.08.23 18:14
Оценка:
Здравствуйте, Marty, Вы писали:

M>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?


В линухе есть утилита dmidecode, и она умеет печатать, помимо всего прочего, следущее:

Handle 0x0004, DMI type 3, 22 bytes
Chassis Information
        Manufacturer: Micro-Star International Co., Ltd.
        Type: Notebook
        Lock: Not Present
        Version: N/A
        Serial Number: 21PN041565
        Asset Tag: No Asset Tag
        Boot-up State: Safe
        Power Supply State: Safe
        Thermal State: Safe
        Security Status: None
        OEM Information: 0x00000000
        Height: Unspecified
        Number Of Power Cords: 1
        Contained Elements: 0
        SKU Number: Default string


По-моему, это очень близко к тому, что ты хочешь. Ключевое слово: "DMI".

По наличию батарейки, я не уверен. Не знаю, как в венде, в линухе встроенная батарейка ноутбука выглядит примерно так же, как подключенный к конпьютеру UPS.

Скорее уж, судить по модели процессора, если не придумаешь, как до DMI добраться. В ноутбуки обычно ноутбучные процессоры кладут (в неттопы, впрочем, тоже).
Re: Как определить, я работаю на ноутбуке или нет?
От: kov_serg Россия  
Дата: 02.08.23 20:10
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?


https://devblogs.microsoft.com/scripting/how-can-i-determine-if-a-computer-is-a-laptop-or-a-desktop-machine/
Re[2]: Как определить, я работаю на ноутбуке или нет?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.08.23 20:14
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ключевое слово: "DMI".


Это лишнее. Win32_SystemEnclosure достаточно по уши.
Re[2]: Как определить, я работаю на ноутбуке или нет?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.08.23 20:31
Оценка:
Здравствуйте, Pzz, Вы писали:

M>>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?


Pzz>В линухе есть утилита dmidecode, и она умеет печатать, помимо всего прочего, следущее:


Проблема в том, что мне нужно под винду. Форум вроде намекает на это
Маньяк Робокряк колесит по городу
Re[3]: Как определить, я работаю на ноутбуке или нет?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.08.23 20:53
Оценка:
Здравствуйте, Marty, Вы писали:

Pzz>>В линухе есть утилита dmidecode, и она умеет печатать, помимо всего прочего, следущее:


M>Проблема в том, что мне нужно под винду. Форум вроде намекает на это


Ну вот Женя Музыченко сказал слово Win32_SystemEnclosure...
Re: Как определить, я работаю на ноутбуке или нет?
От: Разраб  
Дата: 03.08.23 02:31
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?

Шпионить? вот
https://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
или нужно физическое присутствие? тогда через вебку только с фэйслетектед. хотя тоже можно обойти.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Как определить, я работаю на ноутбуке или нет?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.08.23 02:33
Оценка: +2
Здравствуйте, Разраб, Вы писали:

M>>Как определить, я работаю на ноутбуке или нет? Ну, или на нетбуке, или ещё на каком-то устройстве, которое содержит встроенную клаву? Ну, и как узнать модель устройства/название ноутбука?

Р>Шпионить? вот
Р>https://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
Р>или нужно физическое присутствие? тогда через вебку только с фэйслетектед. хотя тоже можно обойти.

Нет. Мне не нужны low level хуки. Пофлеймить пройдите в сад
Маньяк Робокряк колесит по городу
Re[4]: Как определить, я работаю на ноутбуке или нет?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.08.23 08:42
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну вот Женя Музыченко сказал слово Win32_SystemEnclosure...


Первым сказал ononim, я только повторил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.