-
Data: 2009-10-08 20:57:15
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: Adam Dybkowski <a...@4...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Zbych pisze:
>> Ja w swoich programach stosuję sposób listowania urządzeń używany np. w
>> systemowym Menedżerze urządzeń i działa to poprawnie począwszy od
>> systemu Windows 95 OSR2 aż po 64-bitowy Windows 7. Używam do tego
>> funkcji: SetupDiGetClassDevs, SetupDiEnumDeviceInfo,
>> SetupDiGetDeviceRegistryProperty, SetupDiDestroyDeviceInfoList.
>
> Możesz wkleić przykładowy kod listujący porty?
Pierwszy z brzegu przykład (nie z ISP Programmera):
void enum_ports_nt(void)
{
GUID lptcom = {0x4d36e978, 0xe325, 0x11ce,
{0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18}};
HDEVINFO h;
BOOLEAN res;
char dev_name[256];
SP_DEVINFO_DATA devinfo_data;
DWORD i;
h = SetupDiGetClassDevs(&lptcom, NULL, 0, DIGCF_PRESENT | DIGCF_PROFILE);
if (h == INVALID_HANDLE_VALUE) {
err("SetupDiGetClassDevs");
return;
}
i = 0;
do {
devinfo_data.cbSize = sizeof(SP_DEVINFO_DATA);
res = SetupDiEnumDeviceInfo(h, i, &devinfo_data);
if (res) {
if (SetupDiGetDeviceRegistryProperty(h, &devinfo_data,
SPDRP_FRIENDLYNAME,
NULL, dev_name, sizeof(dev_name), NULL))
printf("%s\n", dev_name);
//print_io_information(&devinfo_data.DevInst, 0);
i++;
}
} while (res);
SetupDiDestroyDeviceInfoList(h);
}
void err(const char *fun)
{
LPVOID buf;
DWORD errcode = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &buf, 0, NULL);
printf("Blad %d w funkcji %s(): %s\n", errcode, fun, buf);
LocalFree(buf);
}
Pocięło linie na kawałki ale da się zrozumieć po skopiowaniu do edytora.
Sorry reszta grupy za nieprzydatnego dla większości elektroników posta.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
Najnowsze wątki
- 2024-11-29 Dławik CM
- 2024-11-29 [OT] Lewe oprogramowanie
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO