Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
| AlexPS |
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Дарова чуваки.
-------------------- @13][ P.$.
www.alex-ps.com |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Цитата(DRKB) Это модуль для Share любого диска или папки как на локальном, так и на удаленном компьютере (если, конечно у Вас права администратора и на компе разрешено удаленное администрирование) Код unit Share; //(c)2002 <Repairman> repairman@uzel.ru interface type TPassw = string[8]; TNetName = string[12]; function SetShareOnDisk(HostName: string; //имя компьютера LocalPath: string; //папка которую надо открыть для доступа NetName: TNetName; //имя расшаренной папки в сети Remark: string; //комментарий, видимый в сети Access: word; //доступ RO_Passw: TPassw; //пароль на чтение RW_Passw: TPassw //пароль на полный доступ ): boolean; function RemoveShareFromDisk(HostName: string; //имя компьютера NetName: string; //сетевое имя папки которую надо закрыть LocalPath: string //локальный путь папки ): boolean; var ShareResult: word; //------------------------------------------------------------------------------------------- implementation uses SysUtils, Windows, ShlObj; function NetShareAdd(ServerName: PChar; //указатель на имя компьютера, например '\\Server'#0, если свой, то можно nil Level: Word; //уровень структуры Share_info, здесь 50 PShareInfo: PChar; //указатель на структуру Share_Info ParmErr: DWord) //указатель на ??? : dword; stdcall; external 'svrapi.dll'; //svrapi для Win9X, NetApi32 для NT function NetShareDel(ServerName: PChar; NetName: PChar; Reserved: DWord): dword; stdcall; external 'svrapi.dll'; type _share_info_50 = record //структура Share уровня 50 NetName: array[1..13] of char; //Как будет называться диск в сети SType: byte; //тип =0 (STYPE_DISKTREE) - шарить диски Flags: word; //флаги $0191,$0192,$0193....(доступ из сети) Remark: PChar; //указатель на комментарий, видимый из сети Path: PChar; //указатель на имя ресурса, например 'c:\'#0 RW_Password: array[1..9] of char; //пароль для полного доступа, если не нужен =#0 RO_Password: array[1..9] of char; //пароль для доступа на чтение, если не нужен =#0 end; //---------------------------- function SetShareOnDisk(HostName, LocalPath: string; NetName: TNetName; Remark: string; Access: word; RO_Passw, RW_Passw: TPassw): boolean; var ShareInfo: _Share_Info_50; begin Result := false; StrPCopy(@ShareInfo.NetName, NetName); ShareInfo.SType := 0; ShareInfo.Flags := Access; ShareInfo.Remark := PChar(Remark); ShareInfo.Path := PChar(LocalPath); StrPCopy(@ShareInfo.RO_Password, RO_Passw); StrPCopy(@ShareInfo.RW_Password, RW_Passw); ShareResult := NetShareAdd(PChar(HostName), 50, @ShareInfo, $0000002A); //вызываем Share if ShareResult <> 0 then Exit; //расшарить неудалось SHChangeNotify(SHCNE_NETSHARE, SHCNF_PATH, PChar(LocalPath), nil); //сказать шеллу об изменениях Result := true; end; //---------------------------- function RemoveShareFromDisk(HostName, NetName, LocalPath: string): boolean; begin Result := false; ShareResult := NetShareDel(PChar(HostName), PChar(NetName), 0); //удалить шару if ShareResult <> 0 then Exit; SHChangeNotify(SHCNE_NETUNSHARE, SHCNF_PATH, PChar(LocalPath), nil); //сказать шеллу об изменениях Result := true; end; //---------------------------- end. P.S. Больше не буду копировать сюда то, что есть в DRKB. Качайте и смотрите... |
AlexPS Расшарить диск из проги 22.02.2005 1:26
AlexPS Пасиба большое. Тока чет я не понял че такое DRKB? 23.02.2005 0:35
volvo DRKB - Delphi Russian Knowledge Base... Оффлайн FA… 23.02.2005 1:17
trminator Под NT-системами (NT4 / 2000 / XP) можно вызывать … 23.02.2005 21:09![]() ![]() |
|
Текстовая версия | 8.11.2025 15:25 |