eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaKtóry program zastąpi mi HyperTerminal pod MS Vista?Re: Który program zastąpi mi HyperTerminal pod MS Vista?
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: