-
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
- To koniec Starlinka dla Ukrainy. Karol Nawrocki zdecydował
- [OT] Wycinanie pianki kostkowej / szesciennej
- Alarm do lodówki
- Poczta Polska na Discord-zie
- Aku do UPS
- czy ludzie przestali słuchać muzyki?
- zabawa czatem :)
- Modernizacja instalacji elektrycznej w wielkiej płycie
- Co to za dziwne "białe namioty" co stawiają je w różnych dziwnych miejscach?!?
- RF-Harvester
- jest taki kryzys panie
- Francuska elektrownia atomowa zamknięta. Powodem "nieprzewidywalny" rój meduz
- Lutowanie linek szczotek węglowych w silniku odkurzacza
- Lutowalność połączeń
- mini 400 atari
Najnowsze wątki
- 2025-08-27 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-08-27 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-08-27 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-08-27 Warszawa => Java Full Stack Developer (Angular2+) <=
- 2025-08-27 Kraków => Kotlin Developer <=
- 2025-08-27 Kraków => Programista Kotlin <=
- 2025-08-27 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-08-27 Czego Wysoki Sąd nauczył czyli jakiego zwrotu powinien użyć dziennikarz Pereira ZAMIAST "ustawia hejt"?
- 2025-08-26 Hej, Shreku!
- 2025-08-26 To koniec Starlinka dla Ukrainy. Karol Nawrocki zdecydował
- 2025-08-26 Tak działa Polska Rzeczpospolita Leśna. Państwo w państwie, leśne pałace i biurowce
- 2025-08-26 Tak działa Polska Rzeczpospolita Leśna. Państwo w państwie, leśne pałace i biurowce
- 2025-08-26 Warszawa => Presales Engineer IT <=
- 2025-08-26 Warszawa => Junior Rekruter <=
- 2025-08-25 Łódź => Kotlin Developer <=