Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
15-1254169806
Юрий
2009-09-29 00:30
2009.11.29
С днем рождения ! 29 сентября 2009 вторник


15-1254141163
jack128_
2009-09-28 16:32
2009.11.29
Эксперт для работы с SVN ??


3-1230229595
v1keeee
2008-12-25 21:26
2009.11.29
как сохранить картинку в файл


2-1255494569
fantasy
2009-10-14 08:29
2009.11.29
Шифрование строки.


8-1173516347
hypnotize
2007-03-10 11:45
2009.11.29
Вывести графику на Canvas с Anti-Aliasing ом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский