|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.03.2010, 07:44 | #1 |
Регистрация: 25.02.2010
Сообщений: 4
|
[Проблемка] Не могу понять некоторые моменты в borland c++
Добрый день.
Хотел бы узнать у вас следующие: 1. Как реализовать создание кнопок и событий для них в цикле. 2. Как запустить *.exe файл через свою программу Извините если это слишком элементарно я просто совсем недавно начал изучать с++. Заранее спасибо. |
20.03.2010, 08:59 | #2 | ||
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Цитата:
p.s. winAPI прямого отношения к c++, как и к любому другому ЯП, не имеет. Для него есть свой раздел.
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
||
20.03.2010, 10:56 | #3 |
Регистрация: 18.03.2010
Сообщений: 9
|
Как запустить приложение и подождать пока оно отработает 4
-------------------------------------------------------------------------------- как запустить из Вашей программы еще какую-нибудь программу и дождаться ее закрытия. Для удобства сразу оговорюсь: Ваша программа - это программа, код которой здесь приведен. Другая программа - программа, которая была запущена из Вашей. Для запуска другой программы мы будем использовать функцию CreateProcess, поскольку она возвращает handle созданного процесса. Для ожидания завершения процесса (программы) нужно вызвать Wai В этом примере функция ExecuteAndWait запускает другую программу (имя запускаемого файла - FileName). Если HideApplication установлен в true, то Ваша программа исчезает на время выполнения другой программы. В противном случае Ваша программа остается на экране и каждые 0.1 сек. будут выполняться все задачи, которые накопились в очереди (Application.ProcessMessages). А если пользователь решит закрыть Вашу программу - закроется и другая программа. Процедура SetEnabled function ExecuteAndWait(FileName: string; HideApplication: boolean): boolean; var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; exitc: cardinal; begin FillChar(StartupInfo, sizeof(StartupInfo), 0); with StartupInfo do begin cb := Sizeof(StartupInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_SHOW; end; if not CreateProcess(nil, PChar(FileName), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then result := false else begin if HideApplication then begin Application.Minimize; ShowWindow(Application.Handle, SW_HIDE); WaitforSingleObject(ProcessInfo.hPr ocess, INFINITE); end else while WaitforSingleObject(ProcessInfo.hPr ocess, 100) = WAIT_TIMEOUT do begin Application.ProcessMessages; if Application.Terminated then TerminateProcess(ProcessInfo.hProce ss, 0); end; GetExitCodeProcess(ProcessInfo.hPro cess, exitc); result := (exitc = 0); if HideApplication then begin ShowWindow(Application.Handle, SW_SHOW); Application.Restore; Application.BringToFront; end; end; end; procedure TForm1.Button1Click(Sender: TObject); procedure SetEnabled(en: boolean); var i: integer; begin for i := 0 to Form1.ComponentCount - 1 do if Form1.Components[i] is TControl then (Form1.Components[i] as TControl).Enabled := en; end; begin SetEnabled(false); if not ExecuteAndWait(Edit1.Text, CheckBox1.Checked) then ShowMessage('Возникли какие-то проблемы'); SetEnabled(true); end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу со своего компьютера попасть на некоторые сайты | Phoenix77 | Свободное общение | 15 | 08.10.2010 19:40 |
не могу запустить ехешник ,Borland 5 и Borland 6 | error_13 | Общие вопросы C/C++ | 0 | 31.01.2010 14:04 |
не могу понять | Dawystrik | SQL, базы данных | 0 | 06.09.2009 19:20 |
Не могу понять | Superlotles | Помощь студентам | 8 | 31.08.2009 20:39 |
не могу понять... | Dutchman | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 14.12.2006 07:14 |