dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Получить список компьютеров локальной сети.

Останнє повідомлення 18-10-2007, 6:03 від pomidor4ik. 2 відповіді.
Сортувати: Попереднє Наступне
  •  17-10-2007, 13:19 4464

    Получить список компьютеров локальной сети.

    Есть задача написать программу:получить сабж.
    Мечтаю это сделать на C#, но ничего нужного не нагуглил.Единственное что нашел это WMI - кот. не дал результатов.
    Написал на С сырой код - но с быстродействием какие-то проблемы.Помогите разобраться почему так медленно, а если кто знает скажите как сделать на Шарпе,заранее спасибо!
    ВОт собственно код:
    #pragma comment(lib,"Mpr")
    #include "stdafx.h"
    #include
    #include
    #include
    BOOL listOfUser(LPNETRESOURCE first)
    {
        DWORD result,resultEnum;
        HANDLE hFirst;
        DWORD bufferSize = 16384;
        DWORD count = -1;
        LPNETRESOURCE second;
        second = (LPNETRESOURCE)(GlobalAlloc(GPTR,bufferSize));
        if ( second == NULL )
            return FALSE;
        if ( NO_ERROR != (result = WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,first,&hFirst)))
            return FALSE;
        else
        {
       
            do
            {
                ZeroMemory(second,bufferSize);
                resultEnum = WNetEnumResource(hFirst,&count,second,&bufferSize);
                if ( resultEnum != NO_ERROR)
                    return FALSE;
                else
                {
                for ( DWORD i = 0; i < count; i++ )
                {
                        if ( (secondIdea.dwUsage & RESOURCEUSAGE_CONTAINER) == RESOURCEUSAGE_CONTAINER )
                            if(!listOfUser(&secondIdea))
                            {
                                MessageBox(0,secondIdea.lpRemoteName,L"",MB_OK);
                            }
                    }
                }
                       
            }
            while(result != ERROR_NO_MORE_ITEMS);
        }
        GlobalFree((HGLOBAL)second);
        result = WNetCloseEnum(hFirst);
        return TRUE;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
        LPNETRESOURCE lpRun;
        DWORD buff = 16384;
        lpRun = (LPNETRESOURCE)GlobalAlloc(GPTR, buff);
        ZeroMemory(lpRun,buff);
        listOfUser(lpRun);
        return 0;
    }

  •  17-10-2007, 23:52 4465 у відповідь на 4464

    Re: Получить список компьютеров локальной сети.

    Гугл і мсдн потужні речі :)
    http://msdn2.microsoft.com/en-us/library/aa385341.aspx
    http://www.codeproject.com/csharp/csenumnetworkresources.asp
    http://rredcat.blogspot.com/
  •  18-10-2007, 6:03 4469 у відповідь на 4465

    Re: Получить список компьютеров локальной сети.

    спасибо, посмотрим.
    Но тему пока не буду закрывать.
Переглядати як новосний Блог RSS в XML