On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
администратор




Пост N: 6392
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.04.17 12:01. Заголовок: device detected


Как узнать, прога запущена на ноуте или стационарном компе ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 13 [только новые]





Пост N: 27
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 28.04.17 12:17. Заголовок: Может проверить нали..


Может проверить наличие Bluetooth или Wifi ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 103
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 28.04.17 12:38. Заголовок: Avf пишет: Может пр..


Avf пишет:

 цитата:
Может проверить наличие Bluetooth или Wifi ?




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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 499
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 28.04.17 17:33. Заголовок: Может это поможет f..


Может это поможет

function FW_IsTouchScreen(); return ( GetSysMetrics( SM_DIGITIZER ) > 0 )

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 281
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 28.04.17 17:47. Заголовок: rvu пишет: В некото..


rvu пишет:

 цитата:
В некоторых случаях (редко) в комп могут быть вставлены соответствующие девайсы.


Сейчас уже редко CD ROM , а вайфай как и сетевая карта .....
fil пишет:

 цитата:
function FW_IsTouchScreen()


Это вряд ли , точнее- нет:). Скорее для планшета или телефона, а вот тачьПад может и помог бы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1449
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.04.17 20:21. Заголовок: Dima пишет: Как узн..


Dima пишет:

 цитата:
Как узнать, прога запущена на ноуте или стационарном компе ?



Как правило в ноутбуке есть батарейка

Узнать можно с помощью WinAPI CallNtPowerInformation(SystemBatteryState, ... )

«
 
#pragma BEGINDUMP

#include <windows.h>
#include "powrprof.h"
#include "ntdef.h"
#include "hbapi.h"

HB_FUNC( BATTERYPRESENT )
{
NTSTATUS status;
SYSTEM_BATTERY_STATE state;

status = CallNtPowerInformation( SystemBatteryState, NULL, 0, &state, sizeof( SYSTEM_BATTERY_STATE ) );

if( NT_SUCCESS( status ) )
hb_retl( state.BatteryPresent ? HB_TRUE : HB_FALSE );
else
hb_retl( HB_FALSE );
}
#pragma ENDDUMP
»

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 6393
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.04.17 23:09. Заголовок: Петр Спасибо за иде..


Петр
Спасибо за идею !
Пример собрать не удалось (MINGW) , при сборке вывалило
undefined reference to `CallNtPowerInformation@20'

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6394
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.04.17 23:12. Заголовок: Упс , погуглил... Пр..


Упс , погуглил...
Прицепил -lPowrProf , собралось , работает

PS
Под BCC55 , это похоже и не собрать

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 282
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 29.04.17 08:52. Заголовок: Dima пишет: собрало..


Dima пишет:

 цитата:
собралось , работает


Интересно, а когда батарея вынута работает?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1100
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.04.17 09:04. Заголовок: Dima пишет: Под BCC..


Dima пишет:

 цитата:
Под BCC55 , это похоже и не собрать


Да и не надо
Есть универсальный способ получения информации от винды, это wmi.
Про батарейки к примеру будет Win32_Battery class
Конкретно про тип корпуса это Win32_SystemEnclosure
Как говориться все в одном, от железа до учеток пользователей в домене, все живет в этом вимиай

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1450
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 29.04.17 13:22. Заголовок: Dima пишет: Под BCC..


Dima пишет:

 цитата:
Под BCC55 , это похоже и не собрать



Почему же, но выглядеть будет не так изящно

 
#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

#ifndef NT_SUCCESS
#define NTSTATUS LONG
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)

typedef struct {
BOOLEAN AcOnLine;
BOOLEAN BatteryPresent;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Spare1[4];
DWORD MaxCapacity;
DWORD RemainingCapacity;
DWORD Rate;
DWORD EstimatedTime;
DWORD DefaultAlert1;
DWORD DefaultAlert2;
} SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE;
#endif

typedef NTSTATUS WINAPI ( * CallNtPowerInformationPtr)( int, void *, ULONG, void *, ULONG );

HB_FUNC( BATTERYPRESENT )
{
HMODULE hDll = LoadLibraryEx( "powrprof.dll", NULL, 0 );

hb_retl( HB_FALSE );

if( hDll )
{
CallNtPowerInformationPtr fn_CallNtPowerInformation;

fn_CallNtPowerInformation = ( CallNtPowerInformationPtr ) GetProcAddress( hDll, "CallNtPowerInformation" );

if( fn_CallNtPowerInformation )
{
NTSTATUS status;
SYSTEM_BATTERY_STATE state;
int SystemBatteryState = 5;

status = fn_CallNtPowerInformation( SystemBatteryState, NULL, 0, &state, sizeof( SYSTEM_BATTERY_STATE ) );

if( NT_SUCCESS( status ) )
hb_retl( state.BatteryPresent ? HB_TRUE : HB_FALSE );
}
}
}

#pragma ENDDUMP


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6395
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.04.17 16:07. Заголовок: ММК пишет: Интересн..


ММК пишет:

 цитата:
Интересно, а когда батарея вынута работает?


Пока не было возможности пробнуть.

Haz пишет:

 цитата:
Есть универсальный способ получения информации от винды, это wmi.


Точно , даже не подумал о нем сразу.



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1101
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.04.17 17:30. Заголовок: Dima пишет: даже не..


Dima пишет:

 цитата:
даже не подумал о нем сразу.


С ним вообще мало кто работает, а инструмент позволяет многое.
Пример в MG есть, единственное что нужно для понимания так это чтото похожее на wmi Explorer
чтоб тыкаться не в слепую.
PS. Когда-то делал на нем инвентаризацию железа в сети, и установленного софта на рабочих местах
- работало однако
PPS. Причём то что предложил Петр как альтернативу - отличное решение, выгодно отличающееся по скорости
исполнения т.к. Wmi несколько тормозит.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6396
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.04.17 17:50. Заголовок: Haz пишет: Когда-т..


Haz пишет:

 цитата:
Когда-то делал на нем инвентаризацию железа в сети, и установленного софта на рабочих местах


Да я помню , ты писал.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 96
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет