본문 바로가기
IT/C++

[MFC] Shared Folder 찾아서 제거하기

by Spring Up!! 2017. 1. 16.
반응형
#include <LMShare.h>
#include <Lmapibuf.h>
#pragma comment(lib, "Netapi32.lib")

PSHARE_INFO_502 BufPtr;
NET_API_STATUS res;
LPTSTR lpszServer = NULL;
DWORD er = 0, tr = 0, resume = 0;
DWORD total = 0;

do
{
    res = NetShareEnum(lpszServer, 502, (LPBYTE *)&BufPtr, MAX_PREFERRED_LENGTH, &er, &tr, &resume);
    if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA)
    {
        total += er;
        PSHARE_INFO_502 p = BufPtr;

        DWORD i = 0;
        for (i = 1; i <= er; i++)
        {
            if (STYPE_IPC != (p->shi502_type & 0x000000FF))
            {
                TCHAR ParamBuf[128] = {0,};
                TCHAR *pFormat = _T("share \"%s\" /delete");
                wsprintf(ParamBuf, pFormat, p->shi502_netname);

                SHELLEXECUTEINFO rSEI = {0};
                rSEI.cbSize = sizeof(rSEI);
                rSEI.lpVerb = _T("open");
                rSEI.lpFile = _T("net");
                rSEI.lpParameters = ParamBuf;
                rSEI.nShow = SW_HIDE;
                rSEI.fMask = SEE_MASK_NOCLOSEPROCESS;

                if (TRUE == ShellExecuteEx(&rSEI))
                {
                    //성공
                }

                DWORD nStatus = WaitForSingleObject(rSEI.hProcess, INFINITE);
                if (WAIT_OBJECT_0 != nStatus)
                {
                }
            }
            p++;
        }

        NetApiBufferFree(BufPtr);
    }
} while (res == ERROR_MORE_DATA);
         


반응형

'IT > C++' 카테고리의 다른 글

객체에서 std::shared_ptr 얻기  (0) 2023.08.07
ASPICE 에 대해서.  (0) 2023.03.30
lambda expression  (0) 2020.09.26
[MFC] 특정 사용자 권한으로 공유폴더 만들기  (0) 2017.02.10
[MFC] 사용자 계정 생성  (0) 2017.02.08
[MFC] Radio Button 투명 배경  (0) 2016.11.01
[MFC] 시작프로그램에 등록하기  (0) 2016.10.27
[MFC] 심플한 로그 함수  (0) 2016.10.18
[MFC] CProgressCtrl Marquee 속성 설정  (0) 2016.10.14
[MFC] 재부팅 기능  (0) 2016.10.13

댓글