就喜欢楼主这样提问的,不过我这里没有98也没delphi
干瞪你的代码也瞪不出花来,久违UP一个
干瞪你的代码也瞪不出花来,久违UP一个
解决方案 »
- 关于导出XML文件 UTF-8编码格式的问题 在线等
- 程序图标—不能更改 节后散分100
- 在DELPHI中先调用excel,再关闭excel,内存中excel无法释放??
- 快来帮我兄弟们,不然以后看不到我来了!ado--file(100分的诱惑)
- 公式编辑器
- 结束程序
- 找Delphi vcl 控件 那高人请帮忙一下
- strtoint不好用,我想它如果是real就转为real,如果是integer才转为integer
- 与类型有关的问题
- TTreeview里如何转换打开文件和关闭文件图标?
- 为什么每次给ClientDataSet1.commandtext赋值总是出现错误?在线等!!
- 这个问题如何实现啊??
NetShareAdd(PChar(''), 50, buf, 0);在 Win32 的帮助中,没有 50 这个参数,只有 2 或 502。
另外,Win32 的帮助中没有 SHARE_INFO_50 这个结构,应该是 SHARE_INFO_502 或 SHARE_INFO_2typedef struct _SHARE_INFO_502 {
LPTSTR shi502_netname;
DWORD shi502_type;
LPTSTR shi502_re;
DWORD shi502_permissions;
DWORD shi502_max_uses;
DWORD shi502_current_uses;
LPTSTR shi502_path;
LPTSTR shi502_passwd;
DWORD shi502_reserved;
PSECURITY_DESCRIPTOR shi502_security_descriptor;
} SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502;
typedef struct _SHARE_INFO_2 {
LPTSTR shi2_netname;
DWORD shi2_type;
LPTSTR shi2_re;
DWORD shi2_permissions;
DWORD shi2_max_uses;
DWORD shi2_current_uses;
LPTSTR shi2_path;
LPTSTR shi2_passwd;
} SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;
你说的是在nt下的情况。靠,高手都哪去了。这个问题不是很难吧。
老大,先看下帖子行吗,修改注册表的方法我不要。。
把sharetype:=0应该就可以了
老兄,在发帖子之前你先试一下行不行,你给的方法根本就不好使! To:diruser(年年有大运!)
请问:你是如何获得那个返回的错误代码的,请详细一点。谢谢!
我做了一些修改:
sharetype: Byte; //shortint;
flags: Word; //smallint;
可是还是不行,你试试看返回什么错误代码?谢谢!
LM20_NNLEN = 12;
SHPWLEN = 8;SHI50F_RDONLY = 1;
SHI50F_FULL = 2;
SHI50F_DEPENDSON = (SHI50F_RDONLY or SHI50F_FULL);
SHI50F_ACCESSMASK = (SHI50F_RDONLY or SHI50F_FULL);
SHI50F_PERSIST = 256;
SHI50F_SYSTEM = 512;STYPE_DISKTREE = 0;
ACCESS_NONE = 0;
ACCESS_READ = $01;
ACCESS_WRITE = $02;
ACCESS_CREATE = $04;
ACCESS_EXEC = $08;
ACCESS_DELETE = $10;
ACCESS_ATRIB = $20;
ACCESS_PERM = $40;
ACCESS_GROUP = $8000;
ACCESS_ALL = (ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or
ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM);type
share_info_2= record
shi2_netname : PWideChar;
shi2_type : DWORD;
shi2_re : PWideChar;
shi2_permissions : DWORD;
shi2_max_uses : DWORD;
shi2_current_uses : DWORD;
shi2_path : PWideChar;
shi2_passwd : PWideChar;
end;share_info_50 = packed record
shi50_netname : array [0..LM20_NNLEN] of Char;
shi50_type : Byte;
shi50_flags : Short;
shi50_re : PChar;
shi50_path : PChar;
shi50_rw_password: array [0..SHPWLEN] of Char;
shi50_ro_password: array [0..SHPWLEN] of Char;
end;var
hDll : THandle;NetShareAddWin9x : function(pszServer : PChar;
sLevel : Short;
pbBuffer : Pointer;
cbBuffer : Short):DWORD;stdcall;NetShareDelWin9x : Function(pszServer : PChar;
pszNetName : PChar;
usReserved : Short):DWORD;stdcall;si50 : share_info_50;
si2 : share_info_2;
tamano : Short;
res, err : DWORD;EsNT: Boolean;Begin
If SetShared then begin
hDll := LoadLibrary('SvrApi.dll');
if hDll > 32 then
begin
// NetShareAdd
NetShareAddWin9x := GetProcAddress(hDll, 'NetShareAdd');
tamano := sizeof(si50);
FillChar(si50, tamano, 0);
StrCopy(si50.shi50_netname, 'SH_ACCESS');
si50.shi50_type := STYPE_DISKTREE;
si50.shi50_flags := SHI50F_Full; //SHI50F_RDONLY;
si50.shi50_path := 'C:\';
StrCopy( si50.shi50_rw_password, 'siemensw');
StrCopy( si50.shi50_ro_password, 'siemens');
res := NetShareAddWin9x(nil, 50, @si50, tamano);
Showmessage('NetShare added to C:\Test .');
FreeLibrary(hDll);
end;
end
else begin
hDll := LoadLibrary('SvrApi.dll');
if hDll > 32 then
begin
// NetShareDelNetShareDelWin9x := GetProcAddress(hDll, 'NetShareDel');
res := NetShareDelWin9x(nil, PChar('SH_ACCESS'), 0);
Showmessage('NetShare deleted. Check C:\test .');
FreeLibrary(hDll);
end;
end;
End;