Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.23;
Скачать: CL | DM;

Вниз

общий доступ на папку   Найти похожие ветки 

 
Алексеюшка   (2003-11-18 10:06) [0]

Подскажите пожалуйста, как программно поставить на каталог "Общий доступ". Проблема такая: в директории есть какое-то кол-во папок около 40-ка, необходимо для каждой установить в свойствах доступа "Общий доступ". Помогите, очень надо...


 
Игорь Шевченко ©   (2003-11-18 10:15) [1]

NetShareAdd


 
Алексеюшка   (2003-11-18 10:18) [2]

Извините,а нельзя ли по подробнее... Я в Делфи новичок.


 
Anatoly Podgoretsky ©   (2003-11-18 10:32) [3]

Так может не стоит пока заниматься сложными вещами, до накопления опыта?


 
Алексеюшка   (2003-11-18 10:41) [4]

Да мне просто по работе нужно. Всякий раз когда падает сервер приходится устанасливать вручную доступ на 40+- папок, слегка утомляет. Вот я и подумал что смогу получить сдесь ответ, в идеале бы кусочек кода. Буду очень признателен если кто нибудь даст хотя бы ссылки где про это можно почитать..


 
Игорь Шевченко ©   (2003-11-18 12:07) [5]


> Буду очень признателен если кто нибудь даст хотя бы ссылки
> где про это можно почитать..


Win32.hlp


 
Anatoly Podgoretsky ©   (2003-11-18 12:15) [6]

Не оттуда пляшешь, почему падает сервер, такого не должно быть никогда!


 
pasha_golub ©   (2003-11-18 12:17) [7]

Удалено модератором
Примечание: Offtopic


 
Anatoly Podgoretsky ©   (2003-11-18 12:27) [8]

Сделать нормальную влажность, или не понятно, что за сервер такоей, если данные на нем не важны.
Бороться надо с причинами,а не со следствиями.


 
Алексеюшка   (2003-11-18 12:35) [9]

Нашел тут код, но почемуто не работает нажимаешь на кнопку, никаких ошибок не происходит и доступ тоже не ставится. Посмотрите что не так. У меня Win2000
Вообще какой уровень доступа применять 502,1,2?
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;

procedure Button1Click(Sender: TObject);

end;

Share_INFO_2= record
shi2_netname:PWideChar; // ОБЯЗАТЕЛЬНО PWideChar иначе работать не будет...
shi2_type:DWORD;
shi2_remark:LPTSTR;
shi2_permissions:DWORD;
shi2_max_uses:DWORD;
shi2_current_uses:DWORD;
shi2_path:PWideChar;
shi2_passwd:LPTSTR;
end;
PShare_INFO_2 = ^Share_INFO_2;
LPShare_INFO_2 = ^Share_INFO_2;

SHARE_INFO_502 =record
shi502_netname: PCHAR;
shi502_type: DWORD;
shi502_remark: PCHAR;
shi502_permissions: DWORD;
shi502_max_uses: DWORD;
shi502_current_uses: DWORD;
shi502_path: PCHAR;
shi502_passwd: PCHAR;
shi502_reserved: DWORD;
shi502_security_descriptor: PSECURITY_DESCRIPTOR;
end;
PSHARE_INFO_502= ^SHARE_INFO_502;
LPSHARE_INFO_502=^SHARE_INFO_502;

const

STYPE_DISKTREE = $0001;
ACCESS_READ = $0001;

var
Form1: TForm1;
F:Cardinal;
function NetShareAdd(
Server : PwideChar;
level : cardinal;
Buf : Pointer;
var Parm_Err : DWORD):Cardinal;stdcall; external "netapi32.dll" name "NetShareAdd";

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
buf:Pointer;
UserInf:Share_INFO_2;
UserInf502:Share_INFO_502;
err:dWord;
begin

err:=0;
f:=0;
UserInf.shi2_netname:="test";
UserInf.shi2_type:=0;
UserInf.shi2_remark:="test";
UserInf.shi2_permissions:=1;
UserInf.shi2_max_uses:= 1;
UserInf.shi2_current_uses:=0;
UserInf.shi2_path:="C:\test";
UserInf.shi2_passwd:=nil;

GetMem(Buf ,sizeof(UserInf));

F:=NetSHAREAdd(nil,2,@UserInf,err);
FreeMem(Buf);

end;
end.


 
FireHack ©   (2003-11-18 14:34) [10]

Если ты новичок в дельфи, но сидишь за сервером, не проще ли скрипт написать
см
net help share


 
Алексеюшка   (2003-11-18 15:19) [11]

Я не то чтобы совсем новичок, в институте Delphi изучал, паскаль неплохо знаю (на базовом уровне). Т.е в самом языке я ориентируюсь, но никогда не работал с API в делфе. Вообщем с доступом я разобрался - заработало. Только теперь другая проблема:
если переменной "UserInf.shi2_path" (см.выше) присваивать значение напрямую, т.е UserInf.shi2_path:="C:\test\m" например то работает,а если писать
UserInf.shi2_path:=PwideChar(mas[i]),где mas-строковый массив,то получается кроказябра вроде ????m.
Вообщем как нормально присвоить переменной типа PWideChar строковое значение. Извините если глупый вопрос...


 
Игорь Шевченко ©   (2003-11-18 15:24) [12]

StringToWideChar



Страницы: 1 вся ветка

Текущий архив: 2004.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
6-72849
Almax
2003-11-21 01:04
2004.01.23
Структура IP-пакета.


6-72858
Novenkij
2003-11-19 20:20
2004.01.23
ServerSocket


14-72915
Marser
2004-01-02 02:28
2004.01.23
Никак не могу привыкнуть


6-72863
Shutov
2003-11-10 21:12
2004.01.23
Страничку через HTTP, но не всю.


7-72957
СержК
2003-11-06 11:51
2004.01.23
Как узнать пользователя