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

Вниз

NetShareAdd и скрытые ресурсы   Найти похожие ветки 

 
ALi   (2002-03-25 13:22) [0]

Здравия желаю!
Сабж при попытку создать скрытый ресурс (напр. TEST$) ругается ошибкой Access Denied. Пользователь имеет права администратора. Ресурсы без $ создаются и удаляются нормально.
Кто знает где грабли?


 
Tosov   (2002-03-25 17:27) [1]

Покажи код создания сетевика. У меня с $ все работает нормально.


 
ALi   (2002-03-26 15:30) [2]

To Tosov
Вот код:

.....
Type
Share_INFO_2= record
shi2_netname: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";

function NetShareDel(
Server : PwideChar;
NetName : PwideChar;
Reserved : DWORD): Cardinal;stdcall; external "netapi32.dll" name "NetShareDel";

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:=PWideChar("TEST$");
UserInf.shi2_type:=0;
UserInf.shi2_remark:="";
UserInf.shi2_permissions:=1;
UserInf.shi2_max_uses:= 1;
UserInf.shi2_current_uses:=0;
UserInf.shi2_path:=PWideChar("C:\TEST");
UserInf.shi2_passwd:=nil;

GetMem(Buf ,sizeof(UserInf));

F:=NetSHAREAdd(nil,2,@UserInf,err);
ShowMessage(IntToStr(F));
ShowMessage(SysErrorMessage(GetLastError));
FreeMem(Buf);

end;


procedure TForm1.Button2Click(Sender: TObject);
begin
NetShareDel(nil,PWideChar("TEST$"),0);
ShowMessage(IntToStr(F));

end;


 
Tosov   (2002-03-26 17:15) [3]

Этот код на D6 работает, если не считать мелочей -
UserInf.shi2_path:="C:\TEST";
UserInf.shi2_netname:="TEST$";

PWideChar - убрал.

Если ты делаешь вывод о неработоспособности кода по ShowMessage(SysErrorMessage(GetLastError));
то надо проверять не GetLastError, а результат функции (F)


 
ALi   (2002-03-26 18:20) [4]

Похоже преобразование типов TCaption > PWideChar (у меня путь и имя берутся из TEdit) производится криво - получается белиберда типа ???$@^$, как его еще конвертить-то?
А код действительно рабочий.
и последним замечанием полностью согласен :-)


 
Tosov   (2002-03-27 00:51) [5]

>как его еще конвертить-то?
Примерно так:
var
Text:PChar; //String,array of Char,TCaption
wText : PWideChar;
Size:Cardinal;
begin
size := SizeOf (WideChar) * Length (text)+1;
GetMem (wText, Size);
wText := StringToWideChar (Text, wText, Length (Text) + 1);


и где-нибудь потом
FreeMem(wText);


 
ALi   (2002-03-27 07:15) [6]

Спасибо Андрей все заработало!



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

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

Наверх




Память: 0.45 MB
Время: 0.009 c
1-17909
stupid
2002-05-27 15:22
2002.06.06
Как записать и прочитать в INI файле позицию TrackBar1?


1-18009
Фантом
2002-05-24 13:06
2002.06.06
Запуск чужой программы в своем окне


1-17881
eviruswork
2002-05-24 18:41
2002.06.06
qtintf.dll


3-17770
VicV
2002-05-13 17:59
2002.06.06
фильтр в TTable по месяцам


3-17780
Loki
2002-05-14 17:23
2002.06.06
Удаленные записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский