Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.11.2008, 22:26
Alexo Alexo вне форума
Начинающий
 
Регистрация: 24.01.2007
Сообщения: 191
Репутация: 15
По умолчанию CreateProcess в Windows Vista

Код:
  FillChar(ProcessInformation, SizeOf(TProcessInformation), #0);
  FillChar(StartUpInfo, SizeOf(TStartUpInfo), #0);

  StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartUpInfo.wShowWindow := SW_HIDE;
  StartUpInfo.cb := SizeOf(TStartUpInfo);

  if not CreateProcess(nil, s, nil, nil, false, 0, nil, nil,  StartupInfo, ProcessInformation) then
    Exit;

Данный код, прекрасно себя чувствует в Windows XP и вызывает Access Vailation в Windows Vista
__________________
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя.
Ответить с цитированием
  #2  
Старый 14.11.2008, 23:28
Alexo Alexo вне форума
Начинающий
 
Регистрация: 24.01.2007
Сообщения: 191
Репутация: 15
По умолчанию

Проблема оказалась в Delphi 2009
__________________
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя.
Ответить с цитированием
  #3  
Старый 16.12.2008, 14:50
Validation Validation вне форума
Прохожий
 
Регистрация: 16.12.2008
Сообщения: 1
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alexo
Проблема оказалась в Delphi 2009
Alexo, добрый день! Столкнулся с проблемой обработки CreateProcess на Win 64-bit. Код написан на Д2009 и скомпилен на Win32. Скажите, как решить сею незадачу? И помог ли приведенный выше код? Вот кусок моего кода:
Код:
function ExecAndWait(const FileName, Params: ShortString; const WinState: Word): boolean; export; 
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: ShortString;
begin
   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);
    { Free the Handles }
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter