Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 18:07   #1
Nice42ru
Форумчанин
 
Регистрация: 25.10.2009
Сообщений: 131
По умолчанию Проверка при запуске

Как сделать следующее:
При запуске программа проверяет в папке файлы тоесть там programma.exe run.dll если запустили exe а в папке нету run.dll то программа выводит ошибку и закрывается, как это осуществить?


зы ВСЕХ С НАСТУПАЮЩИМ!
Nice42ru вне форума Ответить с цитированием
Старый 30.12.2009, 18:29   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
If not fileexist('your.dll') then halt;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 30.12.2009, 19:16   #3
Nice42ru
Форумчанин
 
Регистрация: 25.10.2009
Сообщений: 131
По умолчанию

а можно ли сюда добавить примитивную проверку на размер файла????

Последний раз редактировалось Nice42ru; 30.12.2009 в 19:33.
Nice42ru вне форума Ответить с цитированием
Старый 31.12.2009, 01:40   #4
aleks8091
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 14
По умолчанию

Код:
If not fileexist('your.dll') then halt;
Спасибо!
Вот интересно, можно как нить защитить программу от копирования? Либо при копировании чтобы она получала следующий индивидуальный номер <> номеру your.dll

Последний раз редактировалось aleks8091; 31.12.2009 в 01:45.
aleks8091 вне форума Ответить с цитированием
Старый 31.12.2009, 01:56   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
можно как нить защитить программу от копирования?
какнить да можно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.12.2009, 01:57   #6
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Отдельный файл ? Ну, наверно, если только работая напрямую с секторами диска.
Чем-нибудь типа If not fileexist('your.dll') then halt; точно не обойтись
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 31.12.2009, 02:46   #7
aleks8091
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 14
По умолчанию

Цитата:
Как сделать следующее:
При запуске программа проверяет в папке файлы тоесть там programma.exe run.dll если запустили exe а в папке нету run.dll то программа выводит ошибку и закрывается, как это осуществить?
можно еще 'your.dll' кинуть на сервак, и при каждом включеннии программы Коннектится к нему)) не удобно ток..
aleks8091 вне форума Ответить с цитированием
Старый 01.01.2010, 23:33   #8
Nice42ru
Форумчанин
 
Регистрация: 25.10.2009
Сообщений: 131
По умолчанию

Так можно сделать проверку на размер или нет?
Nice42ru вне форума Ответить с цитированием
Старый 01.01.2010, 23:43   #9
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Так можно сделать проверку на размер или нет?
Можно.
Во простой способ:
Код:
Procedure TForm1.FormCreate(Sender: TObject);
Var
M: TMemoryStream;
Begin
M:=TMemoryStream.Create;
M.LoadFromFile('Proga.exe');
If M.Size <> 12345 Then
Begin
M.Free;
ShowMessage('Ошибка!');
Halt;
End;
M.Free;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 02.01.2010, 00:15   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Terran, категорически не согласен с предложенным Вами способом ;(
конкретно - зачем делать LoadFromFile ?! ;(

для Pascal:
Код:
var
  f: file of Byte;
  size : Longint;
begin
  Assign(f, 'Proga.exe');
  Reset(f);
  size := FileSize(f);
  Close(f);
  Writeln('File size in bytes: ',size);
либо, используя тот же метод, для Delphi:
Код:
var
  f: file of Byte;
  size : Longint;
begin
  FileMode := 0;
  AssignFile(f, Application.ExeName );
  Reset(f);
  size := FileSize(f);
  CloseFile(f);
  ShowMessage('File size in bytes: '+IntToStr(size));
end;
либо можно использовать FindFirst (для TurboPascal тоже подойдёт этот способ):
Код:
var
  sr : TSearchRec;
  size : Longint;
begin
  size := 0;
  if FindFirst(Application.ExeName, faAnyFile, sr) = 0
    then  size := sr.Size;
  FindClose(sr);
  ShowMessage('File size in bytes: '+IntToStr(size));
end;
либо через TFileStream:
Код:
var
  fs : TFileStream;
  size : Longint;
begin
  size := 0;
  fs := TFileStream.Create(Application.ExeName, fmShareDenyNone);
  size := fs.Size;
  FreeAndNil(fs);
  ShowMessage('File size in bytes: '+IntToStr(size));
end;
разумеется, во всех примерах вместо Application.ExeName можно написать имя любого файла, например, 'proga.exe'

Последний раз редактировалось Serge_Bliznykov; 02.01.2010 в 00:21.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При запуске спрятать форму Polotenchik Общие вопросы Delphi 11 07.08.2009 02:14
Проверка имени компьютера при запуске программы ViTYAi2007 Помощь студентам 3 24.02.2009 12:23
Ошибка при запуске Delphi YuliaOstrovskaya Софт 1 08.10.2008 12:18
Ошибка при запуске Windows XP Умелец Свободное общение 7 16.05.2007 12:27