-
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
- Jak odróżnić myjki wibrujące od ultradźwiękowych.
- Ledy na wyłączniku czasowym błyskają
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- RCD wybija
- Re: Kompensacja mocy biernej przy 230VAC
- Łożysko ślizgowe - jaki olej
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- Współczesny falomierz
- Zasilacz 7V na szynę DIN
- Waga z legalizacją
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
Najnowsze wątki
- 2025-04-05 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-04-05 Warszawa => Strategic Account Manager <=
- 2025-04-05 co w Anglii dziś w Polsce za 30 lat
- 2025-04-05 Wrocław => SOC Tech Lead <=
- 2025-04-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-04-05 Wyrok dożywocia dla Polki
- 2025-04-04 Prezydium Sejmu Tuskiego orzekło: Poseł KO mecenas Roman Giertych NIE jest mordercą (w żadnym sensie tego słowa?)
- 2025-04-04 Reset komóry
- 2025-04-04 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-04-04 Zielonka => Key Account Manager IT <=
- 2025-04-04 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2025-04-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-04-04 Białystok => NMS System Administrator <=
- 2025-04-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-04-04 Warszawa => Generative AI Engineer <=