![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запустить приложение из программы и не зависить от него [D6, WinXP]
Zhen73 © (2010-09-03 18:50:00)Запускаю exe-файл из программы:
ShellExecute(0, nil, filename, nil, nil, SW_SHOW);
Exe-шник запускается, работает, все OK. Но когда в Exe-шник выскакивает диалоговое окно с "предупреждением", то я теряю доступ к своей программе, пока не закрою это диалоговое окно.
Как сделать так что-бы программа и Exe-шник не имели ничего общего?
Leonid Troyanovsky (2010-09-06 21:03:00) [1]
> DVM © (06.09.10 17:16) [17]
> SendMessageTimeout возьми или PostMessage
SendMessage & WM_SETTEXT.
PostMessage & BM_CLICK.
--
Regards, LVT.
DVM (2010-09-06 17:16:00) [2]
> Zhen73 © (06.09.10 17:03) [16]
SendMessageTimeout возьми или PostMessage
Zhen73 (2010-09-06 17:03:00) [3]Данные передаю при помощи сообщений
h1 := FindWindow('TCodeForm', nil);
h2 := FindWindowEx(h1, 0,'TPanel', '');
h3 := FindWindowEx(h2, 0,'TEdit', '');
h4 := FindWindowEx(h2, 0,nil, PChar('Nummer OK [ENTER]'));
h5 := FindWindowEx(h2, 0,nil, PChar('Abbruch [ESC]'));
SendMessage(h3, WM_SETTEXT, 0, Integer(PChar(IntToStr(i))));
SendMessage(h4, WM_LButtonDown, 1, 1);
SendMessage(h4, WM_LButtonUP, 1, 1);
Да, проблема в том, что когда вываливается сообщение от ошибке ввода, моя основная программа, перестает работать и ждет когда это окно закроют
DVM (2010-09-06 16:05:00) [4]
> Zhen73 © (06.09.10 14:19) [13]
Дело тут совсем в другом. Как ты не запускай - дело не в этом.
Как ты данные передаешь в вызываемую программу? С помощью сообщений?
Твоя основная программа небось ждет отклика от второстепенной, а она висит на окне с исключением.
DVM (2010-09-06 16:03:00) [5]
> исключение выдает - вызываемая программа
как ты данные в нее передаешь?
Zhen73 (2010-09-06 14:19:00) [6]Запускаю exe-шник через CreateProcess
CreateProcess(filename, nil, nil, nil, False,
CREATE_DEFAULT_ERROR_MODE or NORMAL_PRIORITY_CLASS,
nil, nil, SUInfo, ProcInfo);
все равно тоже самое.
Может подкажите необходимые параметры для CreateProcess что-бы родительская программа не зависила от запускаемого процесса
Zhen73 (2010-09-06 14:16:00) [7]исключение выдает - вызываемая программа
то что данные не верны - это ничего страшного (это нормальная рабочая ситуация)
основной процесс можно спокойно закрыть, вызываемая программы будет работать дальше
Игорь Шевченко (2010-09-06 13:42:00) [8]
> И когда данные не верные, то выскакивает этот Dialog
больно слышать
DVM (2010-09-06 13:08:00) [9]
> Zhen73 © (06.09.10 13:01) [9]
> И когда данные не верные, то выскакивает этот Dialog (окно
> с исключением вероятно :))
Теперь осталось разобраться, какая из двух программ выдает исключение.
Если убить процесс "основной программы" - это окно с исключением остается на экране?
Zhen73 (2010-09-06 13:01:00) [10]Вообщем, основная программа, запускает exe-шник и вводит необходимые данные в этот exe-шник через TEdit TButton. И когда данные не верные, то выскакивает этот Dialog (окно с исключением вероятно :))
DVM (2010-09-06 12:43:00) [11]
> Скопируй (^C) сюда этот диалог.
У него там окно с исключением вероятно :)
12 (2010-09-06 12:19:00) [12]http://www.google.ru/webhp?rls=ig#rls=ig&hl=ru&source=hp&q=createprocess+delphi&aq=2&aqi=g10&aql=&oq=%D0%A1%D0%BA%D1%83%D1%84%D0%B5%D1%83%D0%97%D0%BA%D1%89%D1%81%D1%83&gs_rfai=&fp=14b27f5f90d8e372
Leonid Troyanovsky (2010-09-06 12:03:00) [13]
> Zhen73 © (06.09.10 11:03) [4]
> "Диалоговое окно с предупреждением" : class #32770 (Dialog)
Скопируй (^C) сюда этот диалог.
Только раскладку на рус. переключай.
--
Regards, LVT.
Zhen73 (2010-09-06 11:03:00) [14]может поскажите, каким механизмом попробовать запустить exe-шник?
Zhen73 (2010-09-06 11:03:00) [15]"Диалоговое окно с предупреждением" : class #32770 (Dialog)
При этом, доступ к другим программам не блокируется, только к основной программе, которая запустила exe-шник
Anatoly Podgoretsky (2010-09-04 09:47:00) [16]> Германн (04.09.2010 02:05:02) [2]
И чем программа отличается от приложения.
Германн (2010-09-04 02:05:00) [17]
> Если окно чужой программы захочет выскочить на передний
> план
Вот интересно что это за "диалоговое окно с предупреждением" если это предупреждение само по себе не важно автору?
DVM (2010-09-03 19:25:00) [18]
> Как сделать так что-бы программа и Exe-шник не имели ничего
> общего?
Если окно чужой программы захочет выскочить на передний план, оно это сделает, и ты ему не помешаешь. И дело тут не в какой то мистической связи.