會嘗試這部分的API,純粹是為了想要透過程式建立網芳共享資料夾而已。最後還是透過JNA去完成這部分功能。
NetShareAdd
這範例是將當前目錄建立共享名稱為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的權限。
留言
張貼留言