Главная страница
    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
1-1149054716
Dr. Andrew
2006-05-31 09:51
2006.07.09
Как тобразить в подсказке Hint символы U+007C?


2-1151031743
Pagoo-man
2006-06-23 07:02
2006.07.09
SQL запросы


1-1148621999
nopox
2006-05-26 09:39
2006.07.09
Доброго времени суток, Господа! проблема с IXMLDocument


3-1147342800
Igor666
2006-05-11 14:20
2006.07.09
Помогите плз с транзакциями!!!


8-1138479991
GLText
2006-01-28 23:26
2006.07.09
Текст в OpenGL





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