Показать сообщение отдельно
  #6  
Старый 23.01.2010, 20:28
Аватар для Danik007
Danik007 Danik007 вне форума
Новичок
 
Регистрация: 05.01.2010
Сообщения: 58
Репутация: 10
По умолчанию

Вы предлогаете сделать так:
Код:
program BackTime;

uses ShellApi,Windows,SysUtils;

var Today:TDateTime;
    bkTime, bkProgram: String;
    Interval, j: SmallInt;
begin
  Today:=Date; // фиксируем реальную дату
  if ParamCount<>3
  then
   begin // если параметры не заданы то печатаем подсказку
    WriteLn(output,'BackTime (c)DSKalugin@rambler.ru');
    WriteLn(output,'---------------------');
    WriteLn(output,'BackTime.exe T I P');
    WriteLn(output,'T - Date;');
    WriteLn(output,'I - Interval, [sec];');
    WriteLn(output,'P - Program');
    WriteLn(output,'---------------------');
    WriteLn(output,'Example:');
    WriteLn(output,'BackTime.exe 04.01.2000 15 "C:\Program Files\program.exe"');
   end
  else
   begin
    // 1й параметр - дата
    bkTime:=ParamStr(1);
    // 2й параметр - интервал в секундах
    Interval:=StrToInt(ParamStr(2));
    // 3й параметр - полный путь к программе
    bkProgram:=ParamStr(3);
    // установка необходимой даты
    WinExec('cmd /c date '+bkTime, SW_HIDE);
    // запуск программы
    ShellExecute(0, 'open', bkProgram, nil, nil, SW_SHOW);
    j:=0;
    while j<Interval do
     begin  // задержка в секундах
      sleep(1000);
      inc(j);
     end;
    // восстанавливаем реальную дату
    WinExec('cmd /c date '+DateToStr(Today), SW_HIDE);
   end
end.
Если да, то программа откажется компилироватся
Я не понимаю почему она не работает, FreeePascal поддерживает тип PChar от этом свидетельствует СТРАНИЧКА на их сайте.
Ответить с цитированием