Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2008, 12:36   #1
Var17
Пользователь
 
Регистрация: 13.12.2007
Сообщений: 41
По умолчанию проблемка с зпуском exe

Прога должна запускать сначала один exe файл и в форме которую открывает этот файл вводить логин с паролем, затем сразу же запускть второй ехе файл и тоже в форме вводить логин и пароль.
Проблема в том что при запуске с помощью winexec :
winexec(PChar('1.exe'), SW_Show);
{инструкции}
winexec(PChar('2.exe'), SW_Show);
{инструкции}
первая прого подвисает и второй файл не запускается.
При запуске Shellexecute:
ShellExecute(Form2.Handle, nil, '1.exe', nil, nil, SW_Show);
{инструкции}
ShellExecute(Form2.Handle, nil, '2.exe', nil, nil, SW_Show);
{инструкции}
не могу добится чтоб фокус ввода переходил на запускаемые приложения.
И еще хотел бы узнать принципиальные различия между winexec и shellexecute.
Спасибо
Var17 вне форума Ответить с цитированием
Старый 27.03.2008, 12:52   #2
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Легче всего использовать WinExec. Однако Microsoft не рекомендует его использование,
а предлагает пользоваться CreateProcess.
Но для выполнения тех или иных задач он вполне подходит.
Почему же нежелателен вызов WinExec дело все в том, что фактически он содержит обращение
к еще одному устаревшему системному вызову LoadModule, который обращается к CreateProcess
со значениями аргументов по умолчанию. При обращении к WinExec необходимо задать полный путь
к программе или имя EXE файла, расположенного в пути поиска, а также способ
отображения программы (константы SW_HIDE, SW_SHOW)
Еще один простой вызов это - ShellExecute. Этот вызов во многом напоминает WinExec,
однако он поддерживает обработку типов файлов, зарегистрированных в Windows.
Например, если вы с помощью ShellExecute вы попробуете запустить файл с расширением .BMP,
то буде запущена программа Paint или любая другая, которая использует для просмотра графических файлов.
В качестве аргументов ShellExecute принимает дескриптор окна (если есть необходимость в сообщениях об ошибках),
строку, такую как open (открыть), print (напечатать) и explore (исследовать), можно в качестве этой строки передать NULL,
тогда файл указанный вами будет открыт (open). Так же ShellExecute необходимо сообщить имя файла и любые параметры
командной строки (чаще всего NULL), и оставшиеся два аргумента это текущий каталог и константа функции
Трофимов Александр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка с выводом Gladiator Общие вопросы Delphi 2 28.05.2008 19:51
Проблемка с поиском Glyuk24 Помощь студентам 6 24.11.2007 22:31
Проблемка с TClientSocket Yoger Работа с сетью в Delphi 3 20.09.2007 10:40