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

Вниз

может кто подскажет как решить проблему   Найти похожие ветки 

 
Exile   (2006-06-20 11:48) [0]

Привет всем, вот пишу програмку смысл которой в следующем: работает в фоновом режиме, и постоянно проверяет подключены ли флешки к компу, если подключены проверяет их содержимое на наличие определенных файлов, если файлы найдены то блокирует комп и вежливо просит ввести код доступа к этой флеше, вот часть кода, внем есть косяки вроде таких как:
1. не знаю как работать с флешками, а именно как определить подключена флешка или нет.
2. в коде используется убивание процесса "Explorer" что в принципе не правильно, но в голову больша не че не приходить как еще можно отрубить   "зверю" доступ пока не введет код, есть мысль еще переватывать прерывания клавы чтобы не могли воспользоваться горячими клавишами, а окно проги сделать по верх всех окон, но если честно сказать пока что дальше "мысли" не уходил :).
3. сам  "Explorer" убиватеся не с помощь Delphi а с помощью VBS так как не знаю как это можно сделать в Delphi, хотя код в инете нашел но понянял его (не хотелось использовать то чего не знаешь).
4. если вы дочитали до сюда то плиз посмотрите листинг, может подскажите как решить перечисленные проблеммы особенно 1-ю, ну и если можно как небудь оптимизировать код буду очень благодарен.

тока критикуйте не онень сильно, всетаки я только учусь и многого не знаю..
p.s. Explorer взят только для пимера, дальше буду думать как по другому эт сделать.

implementation

{$R *.dfm}
var
i,n:integer;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
button1.SetFocus;
end;

procedure TForm1.FormActivate(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
begin
button2.enabled:=false;
Memo1.enabled:=false;
if FileExists("c:\porol.txt") then begin
MessageDlg("Будте внимательны при вводе кода доступа, код можно вводить не более 3 раз иначе данные самолеквидируются!!!",mtinformation,[mbOk],0);
end
else
begin
fName:=("c:\porol.txt");
AssignFile(f, fName);
Rewrite(f); // открыть для перезаписи
// запись в файл
writeln(f,"HOME");
CloseFile(f); // закрыть файл
MessageDlg("База поролей восстановлена",mtinformation,[mbOk],0);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
f:TextFile; // файл
fName:String[80]; // имя файла
i:integer;
begin
fName:=("c:\porol.txt");
AssignFile(f, fName);
Rewrite(f); // открыть для перезаписи
// запись в файл
for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля
writeln(f, Memo1.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg("Код доступа изменен",mtInformation,[mbOk],0);
memo1.text:="";
end;

procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // файл
fName:String[80]; // имя файла
k,p:string;
begin
p:=Edit1.text;
fName:=("c:\porol.txt");
AssignFile(f,fName);
{$I-}
Reset(f);
{$I+}
if IOResult=0 then begin
read(f,k);
if k<>p then
begin
Label5.Caption:="Пороль не верный";
edit1.Text:="";
edit1.SetFocus;
CloseFile(f);
button2.enabled:=false;
Memo1.enabled:=false;
i:=i+1;
n:=3-(i);
label4.Caption:="У вас осталось "+inttostr(n)+" попытки";
if i=3 then begin
ShowMessage("ВЫ НЕ ОБЛАДАЕТЕ ПРАВОМ ДОСТУПА");
ShowMessage("ДАННЫЕ ЛИКВИДИРОВАНЫ");
label4.Caption:="ДАНЫЕ ЛИКВИДИРОВАНЫ";
end;
end
else begin
ShowMessage("Пороль верный");
edit1.Text:="";
button2.enabled:=True;
Memo1.enabled:=True;
CloseFile(f);
WinExec ("C:\WINDOWS\explorer.exe", SW_SHOW);
Form1.Close;
end;
end
else
ShowMessage("Ошибка доступа к файлу");
end;
end.


 
Virgo_Style ©   (2006-06-20 12:32) [1]

всех не перевешаете (с)

Explorer, iExplorer, Opera, FireFox, xplorer, Far, Windows Commander, Total Commander, Norton Commander (а что, у меня есть)... И далее со всеми остановками.

Копировать флешку невозможно? Точно? А КПК и ноутбуки не забыли отбрать при входе?

По п.1 - см. WM_DEVICECHANGE.

Мое непоколебимое imho - проще файлы зашифровать.
По п.4 - не буду. Отформатируй его (листинг)


 
Virgo_Style ©   (2006-06-20 12:45) [2]

или не зашифровать, а открыть монопольно


 
Exile   (2006-06-20 13:14) [3]

:) мда, правильно кто то здесь сказал, единственое и самое главное лучшее что здесь умеют это критиковать, че че а это сдесь умеют

>Virgo_Style ©   (20.06.06 12:32) [1]
> По п.1 - см. WM_DEVICECHANGE.

спасибо


 
Игорь Шевченко ©   (2006-06-20 13:19) [4]


> "База поролей восстановлена"


Мы их пороли, пороли...



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

Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
2-1151080131
resuS
2006-06-23 20:28
2006.07.09
Сортировка по алфавиту


1-1148648699
001
2006-05-26 17:04
2006.07.09
Стрелка в Excel


2-1151055956
И. Павел
2006-06-23 13:45
2006.07.09
Вертикальный текст


15-1149843485
RA
2006-06-09 12:58
2006.07.09
новая иконка.


3-1147104200
Nicky
2006-05-08 20:03
2006.07.09
как посчитать сумму через запрос





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