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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2007, 14:29   #1
semkovv
Новичок
Джуниор
 
Регистрация: 14.02.2007
Сообщений: 2
По умолчанию Помогите со спрятанными окнами программ

Здравствуйте.
У меня есть приложение (допустим Proga.exe), из него запускаются другие программы, например:

Код:
var
StartupInfo: TStartupInfo;
ProcessInformation: TProcessInformation;
....................
GetStartupInfo(StartupInfo);
with StartupInfo do
begin
wShowWindow:= SW_HIDE;
end;
...................
Win32Check(CreateProcess(nil,pchar('C:\WINDOWS\system32\cmd.exe /c c:\1.msi'),
nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInformation));
WaitForSingleObjectEx(ProcessInformation.hThread,178560000,true);
При запуске самого файла программы (то есть Proga.exe), окно программы cmd.exe скрывается - появляется только окно прораммы 1.msi. А вот если запускать с ярлыка программы Proga.exe - все скрытые окна отображаются при выполнении.
Как можно эту проблему решить, что бы окна оставались невидимыми.
semkovv вне форума Ответить с цитированием
Старый 14.02.2007, 18:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Предлагаю открыть свойства любого ярлыка на рабочем столе и обратить внимание на параметр "Окно" на закладке "Ярлык".
Хотя меня несколько удивил способ запуска - почему не использовать просто асоциативный запуск, без указания cmd.exe?
Ведь, если вам нужно запустить файл 1.msi вручную, вы просто делаете двойной щелчок по нему, а не составляете командную строку? Система сама знает, что ей делать с файлом, имеющим расширение MSI, разве не так?

Последний раз редактировалось mihali4; 14.02.2007 в 18:30.
mihali4 вне форума Ответить с цитированием
Старый 15.02.2007, 12:43   #3
semkovv
Новичок
Джуниор
 
Регистрация: 14.02.2007
Сообщений: 2
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Предлагаю открыть свойства любого ярлыка на рабочем столе и обратить внимание на параметр "Окно" на закладке "Ярлык".
Хотя меня несколько удивил способ запуска - почему не использовать просто асоциативный запуск, без указания cmd.exe?
Ведь, если вам нужно запустить файл 1.msi вручную, вы просто делаете двойной щелчок по нему, а не составляете командную строку? Система сама знает, что ей делать с файлом, имеющим расширение MSI, разве не так?
Не-не вы меня не правильно поняли. Не я должен манипулировать мышкой или чем нибудь еще для запуска программы (1.msi). Это программа(1.msi) должна запускаться из другой проги (Proga.exe).

Вроде сам разобрался как запускать внешние программы без использования CMD.EXE.:

Код:
// фрагмент кода запускает калькулятор и
// выдает сообщение, когда он закрываетсяuses
ShellApi;
...var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;
begin
  ExecuteFile := 'c:\1.msi';
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);
  with SEInfo do
    beginfMask := SEE_MASK_NOCLOSEPROCESS;
  Wnd := Application.Handle;
  lpFile := PChar(ExecuteFile);
  {ParamString can contain theapplication parameters.}
  // lpParameters := PChar(ParamString);
  {StartInString specifies thename of the working
  directory.If ommited, the current
  directory is used.}
  // lpDirectory := PChar(StartInString);
  nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then
begin
  repeatApplication.ProcessMessages;
  GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
ShowMessage('MSI  terminated');
end
else
  ShowMessage('Error starting MSI!');
end;
semkovv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребята помогите с парой программ! Omarion72-1990 Паскаль, Turbo Pascal, PascalABC.NET 5 04.06.2008 22:17
помогите с составлением программ tuborg777 Microsoft Office Excel 2 03.06.2008 20:45
Помогите (написть пару элементарных программ на С++) ВаньОК Общие вопросы C/C++ 6 10.02.2008 18:50
работа с окнами Briz Общие вопросы Delphi 5 07.10.2007 22:20
Загрузка программ из др. программ в АСМе Shacal Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 05.02.2007 08:53