간만에 일찍 퇴근하고, 기타도 좀 뚱겨보고 책도 좀 들여다보고 티비를 보고 정신없이 웃기도 하다가 갑자기 옛날 네이버 블로그가 생각났다.  젠장... 이거 빨랑 없애버려야지... 좀 나중에 볼만한건 남겨놔야지... 하고 퍼온 것 중 첫번째...


#include <lm.h>

 

#pragma comment (lib,"netapi32.lib")

 

LPSTR GetWorkGroupName(void)

{

    static CHAR sGroup[256];

    

    memset(sGroup, 0x00, 256);

    

    if ( GetVersion() < 0x80000000)                

    {    // WinNT series

        const    DWORD    dwLevel = 102;

        LPSTR    pszServerName = NULL;

        BOOL    fIsDLLLoaded = FALSE;

 

        {

            WKSTA_INFO_102    *pBuf = NULL;

            NET_API_STATUS        nStatus;

 

            nStatus = NetWkstaGetInfo( pszServerName, dwLevel, (LPBYTE*)&pBuf );

 

            if (nStatus == NERR_Success)

            {

                //유니코드를 스트링으로 변환

                WideCharToMultiByte(CP_ACP, 0, (const unsigned short *)pBuf->wki102_langroup,

                            -1, (char *)sGroup, sizeof(sGroup), 0, 0);

            }

 

            if (pBuf != NULL) NetApiBufferFree(pBuf);

        }

    }

    else

    {

        // 9X에서는 레지스트리에서 검색을 해야함..

        LONG result;

        HKEY hKey;      

        DWORD dwType = REG_SZ;  

        DWORD dwSize = 128;

 

        result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\VxD\\VNETSUP",

                            0, KEY_READ, &hKey);

        if (result == ERROR_SUCCESS)

        {

            result = RegQueryValueEx(hKey, "Workgroup", 0, &dwType, (LPBYTE)sGroup, &dwSize);

        }

 

        hKey = NULL;

        RegCloseKey(hKey);

 

 //       int nLen = min(*pdwSize,_tcslen(szTempGroupName));

   //     _tcsncpy( szGroupName, szTempGroupName, nLen  );

     //   szGroupName[nLen] = 0;

       // *pdwSize = nLen;

    }

    return sGroup;

}

Posted by 강군님

댓글을 달아 주세요