Форум: "Сети";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизNetApi32 Найти похожие ветки
← →
Style (2003-05-20 08:30) [0]Люди кто работал с сабжем. Как из него вытащить
NetShareAdd;
Пробывал так:
Написал global процедуру и описал подобную структуру как в Help
type
TShareInfo = record
NetName: pchar;
.....
.....
Path: pchar;
end;
PShareInfo = ^TShareInfo;
var
procedure NetShareAdd(ServerName: pchar; Level: dword; buf: PShare_Info;
param_err: pdword); stdcall; external; "netapi32.dll";
При юзании lpExit возвращает $08 .. Шаринг естественно не создается :(
Может структуру не правильно описал? в Cи шной хелпе buf -
указатель на структуру типа LPBYTE.. Чета я совсем не понял почему указатель на байт?
Помогите очень надо!
← →
Digitman (2003-05-20 08:56) [1]function NetShareAdd(ServerName: p widechar; Level: dword; buf: PShare_Info;
param_err: pdword): NET_API_STATUS; stdcall; external "netapi32.dll";
← →
Style (2003-05-20 09:36) [2]2 Digitman>> А описание PShare_Info не можешь дать??
Просто ServerName я все равно посылаю nil!
мне нужен localhost!
← →
Style (2003-05-20 09:38) [3]Да и что такое NET_API_STATUS? Где его взять?
← →
Style (2003-05-20 09:41) [4]Еще не понятно следующее
в структуре
typedef struct _SHARE_INFO_2
DWORD shi2_max_uses;
в хелпе написано
(unlimited if the value specified in shi2_max_uses
is -1).
DWORD = longword //signed не может быть -1
← →
Digitman (2003-05-20 09:55) [5]NET_API_STATUS - это DWORD
стандартный хэлп от Борланда на эту тему читал ?
при level = 2:
typedef struct _SHARE_INFO_2 {
LPTSTR shi2_netname;
DWORD shi2_type;
LPTSTR shi2_remark;
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;
при level = 502:
typedef struct _SHARE_INFO_502 {
LPTSTR shi502_netname;
DWORD shi502_type;
LPTSTR shi502_remark;
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
← →
Digitman (2003-05-20 09:58) [6]
> DWORD = longword //signed не может быть -1
зато DWORD"у ничто не мешает быть равным $FFFFFFFF )
это, по твоему, не -1 ?
← →
Style (2003-05-20 10:21) [7]2 Digitman
ну не -1 но MaxUser точно :)
Только все равно не работает :(
type
NET_API_STATUS = dword;
TShare_Info = record
shi2_netname: pchar;
shi2_type: dword;
shi2_remark: pchar;
shi2_permissions: dword;
shi2_max_uses: dword;
shi2_current_uses: dword;
shi2_path: pchar;
shi2_passwd: pchar;
end;
PShare_Info = ^TShare_Info;
var
function NetShareAdd(ServerName: pwidechar; Level: dword; buf: PShare_Info;
param_err: pdword): NET_API_STATUS; stdcall; external "netapi32.dll";
procedure TForm1.Button1Click(Sender: TObject);
var
info: TShare_Info;
r: Net_Api_Status;
er: dword;
begin
info.shi2_netname := "php";
info.shi2_type := 0;
info.shi2_remark := "test share";
info.shi2_permissions := 0;
info.shi2_max_uses := $FFFFFFFF;
info.shi2_current_uses := 0;
info.shi2_path := "c:\php";
info.shi2_passwd := "";
r := NetShareAdd(nil,2,@info,@er);
Caption := "result = " + IntToStr(r) + " error = " + IntToStr(er);
end;
← →
Style (2003-05-20 10:28) [8]Все понял
shi2_netname:PWideChar; // ОБЯЗАТЕЛЬНО PWideChar иначе работать не будет...
shi2_path:PWideChar;
← →
Digitman (2003-05-20 10:37) [9]
> ОБЯЗАТЕЛЬНО PWideChar
разумеется !)
← →
Style (2003-05-20 10:39) [10]Ну в любом случае спасибо :)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c