Автор | Сообщение |
|
| |
Пост N: 6392
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.17 12:01. Заголовок: device detected
Как узнать, прога запущена на ноуте или стационарном компе ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 27
Зарегистрирован: 19.10.05
|
|
Отправлено: 28.04.17 12:17. Заголовок: Может проверить нали..
Может проверить наличие Bluetooth или Wifi ?
|
|
|
|
| |
Пост N: 103
Зарегистрирован: 05.11.05
|
|
Отправлено: 28.04.17 12:38. Заголовок: Avf пишет: Может пр..
Avf пишет: цитата: | Может проверить наличие Bluetooth или Wifi ? |
| В некоторых случаях (редко) в комп могут быть вставлены соответствующие девайсы.
|
|
|
|
| |
Пост N: 499
Зарегистрирован: 17.06.10
|
|
Отправлено: 28.04.17 17:33. Заголовок: Может это поможет f..
Может это поможет function FW_IsTouchScreen(); return ( GetSysMetrics( SM_DIGITIZER ) > 0 )
|
|
|
|
| постоянный участник
|
Пост N: 281
Зарегистрирован: 29.05.10
|
|
Отправлено: 28.04.17 17:47. Заголовок: rvu пишет: В некото..
rvu пишет: цитата: | В некоторых случаях (редко) в комп могут быть вставлены соответствующие девайсы. |
| Сейчас уже редко CD ROM , а вайфай как и сетевая карта ..... fil пишет: цитата: | function FW_IsTouchScreen() |
| Это вряд ли , точнее- нет:). Скорее для планшета или телефона, а вот тачьПад может и помог бы.
|
|
|
|
| постоянный участник
|
Пост 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 »
|
|
|
|
| |
Пост N: 6393
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.17 23:09. Заголовок: Петр Спасибо за иде..
Петр Спасибо за идею ! Пример собрать не удалось (MINGW) , при сборке вывалило undefined reference to `CallNtPowerInformation@20'
|
|
|
|
| |
Пост N: 6394
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.17 23:12. Заголовок: Упс , погуглил... Пр..
Упс , погуглил... Прицепил -lPowrProf , собралось , работает PS Под BCC55 , это похоже и не собрать
|
|
|
|
| постоянный участник
|
Пост N: 282
Зарегистрирован: 29.05.10
|
|
Отправлено: 29.04.17 08:52. Заголовок: Dima пишет: собрало..
Dima пишет: Интересно, а когда батарея вынута работает?
|
|
|
|
| |
Пост N: 1100
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.04.17 09:04. Заголовок: Dima пишет: Под BCC..
Dima пишет: цитата: | Под BCC55 , это похоже и не собрать |
| Да и не надо Есть универсальный способ получения информации от винды, это wmi. Про батарейки к примеру будет Win32_Battery class Конкретно про тип корпуса это Win32_SystemEnclosure Как говориться все в одном, от железа до учеток пользователей в домене, все живет в этом вимиай
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| |
Пост N: 6395
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.04.17 16:07. Заголовок: ММК пишет: Интересн..
ММК пишет: цитата: | Интересно, а когда батарея вынута работает? |
| Пока не было возможности пробнуть. Haz пишет: цитата: | Есть универсальный способ получения информации от винды, это wmi. |
| Точно , даже не подумал о нем сразу.
|
|
|
|
|
| |
Пост N: 1101
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.04.17 17:30. Заголовок: Dima пишет: даже не..
Dima пишет: цитата: | даже не подумал о нем сразу. |
| С ним вообще мало кто работает, а инструмент позволяет многое. Пример в MG есть, единственное что нужно для понимания так это чтото похожее на wmi Explorer чтоб тыкаться не в слепую. PS. Когда-то делал на нем инвентаризацию железа в сети, и установленного софта на рабочих местах - работало однако PPS. Причём то что предложил Петр как альтернативу - отличное решение, выгодно отличающееся по скорости исполнения т.к. Wmi несколько тормозит.
|
|
|
|
| |
Пост N: 6396
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.04.17 17:50. Заголовок: Haz пишет: Когда-т..
Haz пишет: цитата: | Когда-то делал на нем инвентаризацию железа в сети, и установленного софта на рабочих местах |
| Да я помню , ты писал.
|
|
|
|