Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.29;
Скачать: CL | DM;

Вниз

WaitForSingleObject   Найти похожие ветки 

 
zldo   (2008-04-16 03:03) [0]

Задача - открыть файл в ассоциированной в системе программе и дождатся завершения этой программы. Решаю таким образом:


function TImgEditor.OpenPictureThread(Sender: PThread): Integer;
var
 SI: TShellExecuteInfo;
begin
 FillChar(SI, SizeOf(SI), 0);
 with SI do
 begin
   cbSize := SizeOf(SI);
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Form.Handle;
   lpFile := Sender.Data;
   nShow := SW_SHOW;
 end;
 if ShellExecuteEx(@SI) then WaitForSingleObject(SI.hProcess, INFINITE);
 DeleteFile(Sender.Data);
 FreeMem(Sender.Data);
end;


в принципе все работает верно, толко в приложении происходит затык после выполениния WaitForSingleObject по идеи "замирать" должен только поток в котором был вызов этой функции или я что-то путаю?

поток создает следующий код:

procedure TImgEditor.OpenPicture;
var
 FileName: string;
 s: pointer;
begin
 with NewThread^ do
 begin
   AutoFree := true;
   OnExecute := OpenPictureThread;
   case Id3Tag.Pictures[ImageIndex].PictureFormat of
     pfJpeg: FileName := TempNameValid(".jpg");
     pfPNG:  FileName := TempNameValid(".png");
     else    FileName := TempNameValid(".jpg");
   end;
   if FileName <> "" then
   begin
     SaveImage(FileName);
     GetMem(s, length(FileName) + 10);
     StrCopy(s, PChar(FileName));
     Data := s;
     Resume;
     MsgOK("dfsada"); // проверка есть ли жизнь после смерти
   end;
 end;
end;


 
zldo   (2008-04-17 20:47) [1]

Если кому интересно, то прикол был в строке Wnd := Form.Handle;
Этого делать не стоило :)



Страницы: 1 вся ветка

Текущий архив: 2009.11.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1254244818
tesseract
2009-09-29 21:20
2009.11.29
литература по posix


8-1199292139
aaaone
2008-01-02 19:42
2009.11.29
полупрозрачные окна. проблема прорисовки контролов.


4-1223712939
@!!ex
2008-10-11 12:15
2009.11.29
Получение данных с ИК порта.


15-1254136426
картман
2009-09-28 15:13
2009.11.29
Паттерн наблюдатель


3-1230112330
tomkat
2008-12-24 12:52
2009.11.29
Отчет FRP в записать таблицу ?