Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ну хоть кто нибудь толком может объяснить про WNet 
:(
    Опции темы
Astler
Дата 24.5.2005, 14:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне нужно получить список расшаренных папок НЕ ВО ВСЕЙ СЕТИ, а по адресу \\comp


КАК?


Вот этот код, выводящий список всех ресурсов в сети

Код

// Enum_Resources.cpp : Defines the entry point for the console application. 
// 

#include "stdafx.h" 

#include <windows.h> 

BOOL WINAPI EnumerateFunc( LPNETRESOURCE lpnr) 
{ 
 DWORD dwResult, dwResultEnum; 
 HANDLE hEnum; 
 DWORD cbBuffer = 16384;      // 16K is a good size 
 DWORD cEntries = -1;         // enumerate all possible entries 
 LPNETRESOURCE lpnrLocal;     // pointer to enumerated structures 
 DWORD i; 

 // 
 // Call the WNetOpenEnum function to begin the enumeration. 
 // 
 dwResult = WNetOpenEnum(RESOURCE_GLOBALNET, // all network resources 
                          RESOURCETYPE_ANY,   // all resources 
                          0,        // enumerate all resources 
                          lpnr,     // NULL first time the function is called 
                          &hEnum);  // handle to the resource 

 if(dwResult != NO_ERROR) 
  {  
   // 
   // Process errors with an application-defined error handler. 
   // 
//    NetErrorHandler(hwnd, dwResult, (LPSTR)"WNetOpenEnum"); 
    return FALSE; 
  } 

  // 
  // Call the GlobalAlloc function to allocate resources. 
  // 
  lpnrLocal = (LPNETRESOURCE) GlobalAlloc(GPTR, cbBuffer); 
  if(lpnrLocal == NULL) 
   return FALSE; 
  
  do 
  {  
    // 
    // Initialize the buffer. 
    // 
    ZeroMemory(lpnrLocal, cbBuffer); 
    // 
    // Call the WNetEnumResource function to continue 
    //  the enumeration. 
    // 
    dwResultEnum = WNetEnumResource(hEnum,      // resource handle 
                                    &cEntries,  // defined locally as -1 
                                    lpnrLocal,  // LPNETRESOURCE 
                                    &cbBuffer); // buffer size 
    // 
    // If the call succeeds, loop through the structures. 
    // 
    if (dwResultEnum == NO_ERROR) 
    { 
      for(i = 0; i < cEntries; i++) 
      { 
        // Call an application-defined function to 
        //  display the contents of the NETRESOURCE structures. 
        // 
        printf( "%s %s\n",  lpnrLocal[i].lpLocalName, lpnrLocal[i].lpRemoteName ); 

        // If the NETRESOURCE structure represents a container resource, 
        //  call the EnumerateFunc function recursively. 

        if(RESOURCEUSAGE_CONTAINER == (lpnrLocal[i].dwUsage 
                                       & RESOURCEUSAGE_CONTAINER)) 
          if(!EnumerateFunc(&lpnrLocal[i])) 
           printf( "\nEnumerateFunc returned FALSE.\n" ); 
      } 
    } 
    // Process errors. 
    // 
    else if (dwResultEnum != ERROR_NO_MORE_ITEMS) 
    { 
//      NetErrorHandler(hwnd, dwResultEnum, (LPSTR)"WNetEnumResource"); 
      break; 
    } 
  } 
  // 
  // End do. 
  // 
  while(dwResultEnum != ERROR_NO_MORE_ITEMS); 
  // 
  // Call the GlobalFree function to free the memory. 
  // 
  GlobalFree((HGLOBAL)lpnrLocal); 
  // 
  // Call WNetCloseEnum to end the enumeration. 
  // 
  dwResult = WNetCloseEnum(hEnum); 
  
  if(dwResult != NO_ERROR) 
  { 
    // 
    // Process errors. 
    // 
//    NetErrorHandler(hwnd, dwResult, (LPSTR)"WNetCloseEnum"); 
    return FALSE; 
  } 

  return TRUE; 
} 



int main() 
{ 
 NETRESOURCE nr; 

 nr.dwScope = RESOURCE_GLOBALNET; 
 nr.dwType = RESOURCETYPE_DISK;  
 nr.dwUsage = RESOURCEUSAGE_CONTAINER; 
 nr.lpLocalName = TEXT(""); 
 nr.lpRemoteName = TEXT(""); 
 nr.lpComment = TEXT(""); 
 nr.lpProvider = TEXT(""); 

 EnumerateFunc (&nr); 

 return 0; 
} 




мне приводить не надо, сыт уж по горло...

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.