Network Share Management Functions

會嘗試這部分的API,純粹是為了想要透過程式建立網芳共享資料夾而已。最後還是透過JNA去完成這部分功能。

這範例是將當前目錄建立共享名稱為TESTSHARE的程式:

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <lm.h>
#include <iostream>
 
#pragma comment(lib, "Netapi32.lib ")
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
	SHARE_INFO_2 p = {0};
 
	TCHAR szDir[MAX_PATH];
	GetCurrentDirectory(256,szDir);
 
	wcout << "->" << szDir << endl;
 
	p.shi2_netname = TEXT("TESTSHARE");    
	p.shi2_type = STYPE_DISKTREE; // disk drive
	p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd");
	p.shi2_permissions = 0;    
	p.shi2_max_uses = 4;
	p.shi2_current_uses = 0;    
	p.shi2_path = LPWSTR(szDir);
	p.shi2_passwd = NULL; // no password
 
	DWORD parm_err = 0;
	NET_API_STATUS res = NetShareAdd(NULL, 2, (LPBYTE)&p, &parm_err);
 
	if(res==0)
		printf("Share created.\n");
	else
		printf("Error: %u\tparmerr=%u\n", res, parm_err);
 
	system("pause");
 
	return 0;
}

執行時必須使用admin的權限。