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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2013, 16:48   #11
_Den_1984
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 54
По умолчанию

кстати а может ли быть проблема связана с idSMTP то есть с именем компьютера на русском языке? просто не пойму если бы была проблема связанная с отправкой почты через Indy, точнее проблема с именем компьютера на русском, то она бы проявлялась всегда а не только после автозапуска.
По поводу сурцов. я просто не пойму - ничего сверхестественного в них нет

программа запускается когда юзер входит в систему, по правилам юзер должен создать отчет в течении первых 20 минут после входа вот программа смотрит наличие файла отчета выбирает из него нужные данные и отправляет старшему по почте отчет типа контроля работы юзера и контроль отчета

если вкратце
все данные пишу и читаю в реестре в ветке HKLU

стартует программа запускается таймер черз 30 минут выполняется событие onTimer в котором для проверки наличия файлов использую

Код:
if Fileexists(ExtractFilePath(ParamStr(0))+'sdate.txt') then условие...
Код:
if ShGetSpecialFolderPath(Application.Handle, Path, CSIDL_DESKTOPDIRECTORY, False) then  RabSt:=StrPas(Path);
для поиска лдиректории рабочего стола

файлы запускаю функцией
Код:
unction ExecAndWait(const FileName,
                     Params: ShortString;
                     const WinState: Word): boolean; export; 
var 
  StartInfo: TStartupInfo; 
  ProcInfo: TProcessInformation; 
  CmdLine: ShortString; 
begin
Application.ProcessMessages;
   CmdLine := '"' + Filename + '" ' + Params;
  FillChar(StartInfo, SizeOf(StartInfo), #0);
  with StartInfo do
  begin
    cb := SizeOf(StartInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WinState;
  end;
  Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false,
                          CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
                          PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo);
  if Result then
  begin
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;
end;
когда упаковывайется файл отправляю его на почту с помощью idSMTP

еще используются функции

Код:
function GetFileNamefromLink(LinkFileName: string): string;
var
  MyObject: IUnknown;
  MySLink: IShellLink;
  MyPFile: IPersistFile;
  FileInfo: TWin32FINDDATA;
  WidePath: array[0..MAX_PATH] of WideChar;
  Buff: array[0..MAX_PATH] of Char;
begin
  Result := '';
  if (fileexists(Linkfilename) = false) then
    exit;
  MyObject := CreateComObject(CLSID_ShellLink);
  MyPFile := MyObject as IPersistFile;
  MySLink := MyObject as IShellLink;
  StringToWideChar(LinkFileName, WidePath, SizeOf(WidePath));
  MyPFile.Load(WidePath, STGM_READ);
  MySLink.GetPath(Buff, Max_PATH, FileInfo, SLGP_UNCPRIORITY);
  Result := buff;
end;
проверка времени вот такая (может она отрабатывает не так)
Код:
function TForm1.TimChek:boolean;
var
tektime:integer;
r:string;
begin
Application.ProcessMessages;
if ft<=10 then ft:=ft+1;
Result:=false;
r:=TimeToStr(SysUtils.Time);
 tektime:=StrToInt(copy(r,1,Pos(':',r)-1));
 if (tektime>=9) and (tektime<22) then begin
 if (FL=false) and (ft<8) then Result:=true;
 end;
 Application.ProcessMessages;
  if (tektime<9) or (tektime>=22) then begin
  Result:=false;
  FL:=false;
  ft:=0;
  end;
 end;
еще использую ADOConnection и ADOQuery и больше ничего криминального и необычного стандартные процедуры делфы
и блин вот руками запускаю все раьботает на ура - а если перезагрузиться- программа запускается висит в процессах но не отрабатывает.
Сегодня делаю прогу с логами буду следить что да как. но може у кого есть мысли. я привел места в которых может быть трабла (по миему мнению) потому что все остальное это стандартные операторы делфи if..then while..do присвоение значений переменных и их считывание и т.п.
_Den_1984 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снёс Win7 Не Могу Востановить, Восстановление win7 после установки backtrack 5r3 Skifyfit Windows 3 25.12.2012 13:02
Win7 x64 и Win7 x86, возможно ли? Пепел Феникса Операционные системы общие вопросы 9 11.12.2011 14:09
Программирование это не мое? misher Свободное общение 25 31.08.2010 19:19
Я знаю способы как определить, что мое приложение запущено... vixiv Общие вопросы Delphi 4 07.03.2010 16:32
Мое приложение жрет оперативку cowboy Общие вопросы Delphi 15 21.08.2009 15:20