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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2013, 10:25   #21
yoshimidzo
Пользователь
 
Регистрация: 05.01.2013
Сообщений: 12
По умолчанию

Цитата:
Сообщение от BingoBongo Посмотреть сообщение
ооо. теперь еще выпадает BORdbk70.dll

после перезагрузки то же самое вылезло

переустановка не помогла

вне среды работает стабильно (перезапуск уже откомпилированного файла)

Последний раз редактировалось yoshimidzo; 08.12.2013 в 12:28.
yoshimidzo вне форума Ответить с цитированием
Старый 10.01.2014, 01:35   #22
Nightmareterrible
 
Регистрация: 18.07.2010
Сообщений: 5
По умолчанию

Тоже страдал от этой проблемы. ShellExecute на файлах PDF. Решено при помощи танцев с бубнами
Код:
procedure exec1(Filename: string);

  function RunMyApp(my_app: string; my_wait: bool): bool;
  // http://www.sql.ru/forum/273134/zapusk-programmy-ispolzuya-createprocess
  // и
  // http://otvety.google.ru/otvety/thread?tid=711adc007d13d112
  var
    StartInfo: TStartUpInfo;
    ProcInfo: TProcessInformation;
    createOK: Boolean;

  begin
    FillChar(StartInfo, SizeOf(TStartUpInfo), #0);
    FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
    StartInfo.cb := SizeOf(TStartUpInfo);
    StartInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartInfo.wShowWindow := SW_SHOWNORMAL;

    UniqueString(my_app); // this make the magic.
    createOK := CreateProcess(Nil, pchar(my_app), Nil, Nil, false,
      CREATE_NEW_PROCESS_GROUP + HIGH_PRIORITY_CLASS, NIL, NIL, StartInfo, ProcInfo);
    Result := createOK;
    try
      CloseHandle(ProcInfo.hThread);
    except
      ;
    end;
    if my_wait = true then
      WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    try
      CloseHandle(ProcInfo.hProcess);
    except
      ;
    end;
  end;

var
  fh: THandle;
  buf: string;
  nulPos: Integer;
begin
  SetLength(buf, 255);
  FillChar(buf[1], 255, #0);
  fh := FindExecutable(PWideChar(Filename), nil, @buf[1]);
  if fh > 32 then
  begin
    nulPos := Pos(#0, buf);
    if nulPos > 0 then
      buf := copy(buf, 1, nulPos - 1);
    RunMyApp('"' + buf + '" ' + '"' + Filename + '"', false);
  end
  else
    ntSmetaForm.InfoMessage(SysErrorMessage(GetlastError));
end;

Использование:
Exec1('c:\123.PDF');
Nightmareterrible вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расширение *.gfx O_o ????? zzzzzz Общие вопросы по Java, Java SE, Kotlin 11 06.06.2018 14:21
"External exception EEFFACE." - Что это? И как лечить? DenProx Общие вопросы Delphi 0 19.03.2011 11:19
QT seaBattle o_O Guzal Помощь студентам 10 07.03.2011 22:25
WTF gregsoft Общие вопросы C/C++ 2 13.09.2010 19:25
Дали детям две задачки на олимпиаде по информатике O_O Каля-маля Помощь студентам 8 10.11.2008 17:29