Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

Обновление устройств Plug&Paly   Найти похожие ветки 

 
SYNthetic   (2002-11-21 17:45) [0]

Мастера, помогоите плиз, в FAQ надыбал такой исходник для обределения устройств в системе:

type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage);
message WM_DEVICECHANGE;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;

procedure TForm1.WMDeviceChange(var Message: TMessage);
var
s : string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL :
s := "A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
s := "Permission to remove a device is requested";
ShowMessage(s);
{True grants premission}
Message.Result := integer(true);
exit;
end;
DBT_DEVICEQUERYREMOVEFAILED :
s := "Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING :
s := "Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE :
s := "Device has been removed";
DBT_DEVICETYPESPECIFIC :
s := "Device-specific event";
DBT_CONFIGCHANGED :
s:= "Current configuration has changed"
else s := "Unknown Device Message";
end;
ShowMessage(s);
inherited;
end;


Подскажите только как пользоваться этой процедцрой?


 
pj   (2002-11-21 17:55) [1]

Вообщето толку от нее мало без
RegisterDeviceNotification
система забудет тебя информировать этим сообщением..


 
han_malign   (2002-11-21 17:56) [2]

не для для обределения устройств в системе - а для определения изменений в составе устройств.

а для определения устройств надо делать примерно так:
var
hDevInfoSet : HDEVINFO;
DevInfoData : SP_DEVINFO_DATA;
_ch: array [0..299] of char;
begin
Result:=0;
//Создание списка информации об устройствах
hDevInfoSet := SetupDiGetClassDevsA(Nil,Nil,0,DIGCF_PRESENT);
if((hDevInfoSet=0)or(hDevInfoSet=INVALID_HANDLE_VALUE))then begin
// flogln("di.log","Create DeviceInfoList failed 0x" + HexDWord(GetLastError));
exit;
end;

DevInfoData.cbSize := sizeof(DevInfoData);
while SetupDiEnumDeviceInfo(hDevInfoSet,Result,DevInfoData)do begin
inc(Result);
if(SetupDiGetDeviceRegistryPropertyA(
hDevInfoSet,
DevInfoData,
SPDRP_DEVICEDESC,
nil,
_ch,
255,
nil))
then begin
// flogln("di.log",cProps[i]+": "+_s);
aText:=aText+_ch+#0;
end
// else flogln("di.log","Get Device Reg Prop failed 0x" + HexDWord(GetLastError));
end;

- для того чтобы работало нужен портированный под дельфи SetupAPI(.h), есть на сайте Jedi


 
SYNthetic   (2002-11-22 13:54) [3]

Сори ошибся, для определения изменений в оборудовании, плиз раскажите как пользоваться приведённой мной выше функцией? Нужно просто чтобы прога Определяла внешний модем под XP\2000 если он был выключен при загрузке ОС



Страницы: 1 вся ветка

Текущий архив: 2003.01.13;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.007 c
3-36988
Сергей
2002-12-18 17:04
2003.01.13
SQL


1-37203
Спрашивающий
2002-12-30 10:11
2003.01.13
Мастера подскажите как програмно применить к листу Excel


4-37432
Novichek
2002-11-24 15:47
2003.01.13
Удалить файл


1-37077
Alexsandr (GEG)
2003-01-03 13:17
2003.01.13
StringGrid убрать выделение ячейки


14-37337
AL2002
2002-12-20 10:15
2003.01.13
Какая прога...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский