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

Вниз

Как запустить приложение из программы и не зависить от него   Найти похожие ветки 

 
Zhen73 ©   (2010-09-03 18:50) [0]

Запускаю exe-файл из программы:

ShellExecute(0, nil, filename, nil, nil, SW_SHOW);

Exe-шник запускается, работает, все OK. Но когда в Exe-шник выскакивает диалоговое окно с "предупреждением", то я теряю доступ к своей программе, пока не закрою это диалоговое окно.

Как сделать так что-бы программа и Exe-шник не имели ничего общего?


 
DVM ©   (2010-09-03 19:25) [1]


> Как сделать так что-бы программа и Exe-шник не имели ничего
> общего?

Если окно чужой программы захочет выскочить на передний план, оно это сделает, и ты ему не помешаешь. И дело тут не в какой то мистической связи.


 
Германн ©   (2010-09-04 02:05) [2]


> Если окно чужой программы захочет выскочить на передний
> план

Вот интересно что это за "диалоговое окно с предупреждением" если это предупреждение само по себе не важно автору?


 
Anatoly Podgoretsky ©   (2010-09-04 09:47) [3]

> Германн  (04.09.2010 02:05:02)  [2]

И чем программа отличается от приложения.


 
Zhen73 ©   (2010-09-06 11:03) [4]

"Диалоговое окно с предупреждением" : class #32770 (Dialog)
При этом, доступ к другим программам не блокируется, только к основной программе, которая запустила exe-шник


 
Zhen73 ©   (2010-09-06 11:03) [5]

может поскажите, каким механизмом попробовать запустить exe-шник?


 
Leonid Troyanovsky ©   (2010-09-06 12:03) [6]


> Zhen73 ©   (06.09.10 11:03) [4]
> "Диалоговое окно с предупреждением" : class #32770 (Dialog)

Скопируй (^C) сюда этот диалог.
Только раскладку на рус. переключай.

--
Regards, LVT.


 
12 ©   (2010-09-06 12:19) [7]

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


 
DVM ©   (2010-09-06 12:43) [8]


> Скопируй (^C) сюда этот диалог.

У него там окно с исключением вероятно :)


 
Zhen73 ©   (2010-09-06 13:01) [9]

Вообщем, основная программа, запускает exe-шник и вводит необходимые данные в этот exe-шник через TEdit TButton. И когда данные не верные, то выскакивает этот Dialog (окно с исключением вероятно :))


 
DVM ©   (2010-09-06 13:08) [10]


> Zhen73 ©   (06.09.10 13:01) [9]


> И когда данные не верные, то выскакивает этот Dialog (окно
> с исключением вероятно :))

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


 
Игорь Шевченко ©   (2010-09-06 13:42) [11]


> И когда данные не верные, то выскакивает этот Dialog


больно слышать


 
Zhen73 ©   (2010-09-06 14:16) [12]

исключение выдает - вызываемая программа
то что данные не верны - это ничего страшного (это нормальная рабочая ситуация)

основной процесс можно спокойно закрыть, вызываемая программы будет работать дальше


 
Zhen73 ©   (2010-09-06 14:19) [13]

Запускаю exe-шник через CreateProcess

       CreateProcess(filename, nil, nil, nil, False,
       CREATE_DEFAULT_ERROR_MODE or NORMAL_PRIORITY_CLASS,
       nil, nil, SUInfo, ProcInfo);

все равно тоже самое.

Может подкажите необходимые параметры для CreateProcess что-бы родительская программа не зависила от запускаемого процесса


 
DVM ©   (2010-09-06 16:03) [14]


> исключение выдает - вызываемая программа

как ты данные в нее передаешь?


 
DVM ©   (2010-09-06 16:05) [15]


> Zhen73 ©   (06.09.10 14:19) [13]

Дело тут совсем в другом. Как ты не запускай - дело не в этом.

Как ты данные передаешь в вызываемую программу? С помощью сообщений?
Твоя основная программа небось ждет отклика от второстепенной, а она висит на окне с исключением.


 
Zhen73 ©   (2010-09-06 17:03) [16]

Данные передаю при помощи сообщений

       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 17:16) [17]


> Zhen73 ©   (06.09.10 17:03) [16]

SendMessageTimeout возьми или PostMessage


 
Leonid Troyanovsky ©   (2010-09-06 21:03) [18]


> DVM ©   (06.09.10 17:16) [17]

> SendMessageTimeout возьми или PostMessage

SendMessage & WM_SETTEXT.
PostMessage & BM_CLICK.

--
Regards, LVT.



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

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

Наверх





Память: 0.49 MB
Время: 0.004 c
2-1283683267
Hapastiks
2010-09-05 14:41
2010.11.28
заголовок сообщения


15-1280817234
Медвежонок Пятачок
2010-08-03 10:33
2010.11.28
Сомалийское пирацтво. Все очень просто.


2-1284058496
set
2010-09-09 22:54
2010.11.28
клякса


6-1229541935
Квэнди
2008-12-17 22:25
2010.11.28
Indy invalid code page


2-1283969891
Ux
2010-09-08 22:18
2010.11.28
файл vs stream





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский