Проверка наличия дискеты во флоппи
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Помогите написать программу, которая при обращении к флоппи (юзер начал считывать с дискеты инфу) копирует все данные без ведому пользователя в отдельную папку.
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
Пока не в курсе как на счет чтения дискеты, на на счет изменения содержимого дискетки могу точно сказать:
и в модуле формы:
Код: Выделить всё
unit ThreadHDDUpdateU;
interface
uses
Classes, Windows, Forms;
type
TThreadHDDUpdate = class(TThread)
protected
procedure UpdateList;
procedure Execute; override;
end;
var
DirName:string;
implementation
uses Unit1;
procedure TThreadHDDUpdate.Execute;
var
fn:THandle;
begin
fn:=FindFirstChangeNotification('a:\',True, FILE_NOTIFY_CHANGE_SECURITY or FILE_NOTIFY_CHANGE_FILE_NAME);
repeat
if WaitForSingleObject(fn,1000)=WAIT_OBJECT_0 then Synchronize(UpdateList);
until Application.Terminated or Terminated or not FindNextChangeNotification(fn);
FindCloseChangeNotification(fn);
end;
procedure TThreadHDDUpdate.UpdateList;
begin
Form1.UpdateFileList;
end;
end.
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
FileList: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
procedure UpdateFileList;
end;
var
Form1: TForm1;
implementation
uses ThreadHDDUpdateU;
{$R *.dfm}
var
ThreadHDDUpdate:TThreadHDDUpdate;
procedure TForm1.UpdateFileList;
var
SearchRec:TSearchRec;
cb:TComboBox;
j:integer;
fn:string;
begin
cb:=TComboBox(FindComponent('FileList'));
fn:=cb.Text;
cb.Clear;
cb.Text:=fn;
If FindFirst('a:\*', faAnyFile, SearchRec)=0 then
repeat
fn:=SearchRec.Name;
If cb.Items.IndexOf(fn)=-1 then cb.Items.Add(fn);
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ThreadHDDUpdate:=TThreadHDDUpdate.Create(False);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ThreadHDDUpdate.Free;
end;
end.