Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
1

Установка программы в фоновом режиме

05.07.2016, 11:49. Показов 2297. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, уважаемые форумчане!

Для того чтобы вывести сообщение о закрытии процесса программы, использую следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Tlhelp32.h> 
........................
STARTUPINFO cif;
 ZeroMemory(&cif,sizeof(STARTUPINFO));
 PROCESS_INFORMATION pi;
 
 if (CreateProcess(TEXT("c:\\windows\\notepad.exe"),NULL,
        NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi)==true)
  {
   WaitForSingleObject(pi.hProcess, INFINITE);
 
   ShowMessage("Дождались!!!!");
 
   CloseHandle(pi.hProcess);
   CloseHandle(pi.hThread);
  }
Подскажите как запустить установку сторонней программы, и после ее завершения вывести сообщение о готовности?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2016, 11:49
Ответы с готовыми решениями:

Работа программы в фоновом режиме.
Здравствуйте. Посоветуйте, как сделать лучше. Имеется код: HWND H; H = FindWindow(NULL,...

Создание программы работающей в "фоновом режиме"
Под фоновым режимом я понимаю программу БЕЗ видимых пользовательем окон, иконок в трее и т.п. От...

Как сделать приложение в фоновом режиме
Я хочу сделать достаточно объемную программу, но хочу сделать ее в фоновом режиме. То есть работать...

Ожидание устройства (чтобы программа ждала в фоновом режиме)
Привет! У меня вопрос, как можно сделать так что бы программа висела в памяти и ждала подключения...

19
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
05.07.2016, 12:26 2
Within_t, почему бы не так же как вы делаете? или тут что то молоком написано?
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.07.2016, 14:15  [ТС] 3
vxg, я не знаю, как запустить установку программы(
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
05.07.2016, 14:17 4
Within_t, очевидно так же как вы делаете руками - наверное какой-нибудь setup.exe
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.07.2016, 14:19  [ТС] 5
А можно по подробнее?)))
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
05.07.2016, 14:47 6
Цитата Сообщение от Within_t Посмотреть сообщение
А можно по подробнее?)))
Вопрос на вопрос: как Вы запускаете блокнот? Очевидно, что кодом, который Вы привели в начале этой темы. Точно таким же кодом запустите файл установщика.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.07.2016, 16:37  [ТС] 7
он не запускается
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
05.07.2016, 17:04 8
Обычно установщик должен запускаться с Админскими правами. Ты уверен что даешь установщику эти права простым вызовом CreateProcess?
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.07.2016, 17:57  [ТС] 9
Если использовать код из 1 поста, то по меньшей мере он бы выдавал ошибку о невозможности установки, а так моя УЗ обладает правами админа.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
05.07.2016, 18:02 10
Цитата Сообщение от Within_t Посмотреть сообщение
а так моя УЗ обладает правами админа.
Моя тоже, однако при попытке запуска установщика, UAC хочет, чтобы я подтвердил запуск приложения. Просто запускать приложение из-под учетки админа - недостаточно.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.07.2016, 19:42  [ТС] 11
uac и firewall отключены
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
05.07.2016, 19:45 12
Within_t, как именно он не запускается ? Что возвращает?
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
06.07.2016, 06:47  [ТС] 13
Ни чего не возвращает.

Добавлено через 2 часа 54 минуты
Нашел способ запуска программы:
C++
1
ShellExecute(Handle, L"Open", L"путь к программе"), 0, 0, SW_SHOWNORMAL);
Но как сделать, чтобы он не спрашивал что делать, а сразу установил???
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
06.07.2016, 06:52 14
Within_t, он не может ничего не возвращать) для инсталляции без вопросов инсталляторы которые это поддерживают способны принимать ключи в командной строке вроде /silent или вообще исполнять сценарий - вам нужно ознакомится с поведением своего инсталлятора. Если он этого не умеет тогда только кликер или репак вас спасет
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
06.07.2016, 07:15  [ТС] 15
т.е. Вы мне предлагаете:
1. Создать Bat файл с установкой ПО;
2. Программно найти процесс, осуществляющий его установку;
3. Вывести сообщение о его завершении.

???

Добавлено через 11 минут
Если это что-то даст, то программу, которую я устанавливаю имеет тип ".msi"
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
06.07.2016, 07:41 16
Within_t, я этого не предлагал. msi должен иметь ключи для тихой установки но на память я их не помню чуть позже посмотрю
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
06.07.2016, 08:12 17
У msiexec есть ключ /qi, а начиная с версии 3.0 - еще и /quiet для тихой установки.
https://msdn.microsoft.com/en-... s.85).aspx
2
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
06.07.2016, 08:57  [ТС] 18
А не подскажете еще как мне с сетевого диска в объект типа memo загрузить данные?
Пробовал так:
C++
1
memo1->lines->loadfromfile("\\Obshy_disk\infa.txt");
Выводит ошибку: cannot open file "C:\Obshy_disk\infa.txt"
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
06.07.2016, 08:58 19
Within_t, как минимум не хватает экранирующей обратной косой перед именем файла
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
06.07.2016, 09:00 20
Лучший ответ Сообщение было отмечено Within_t как решение

Решение

Цитата Сообщение от Within_t Посмотреть сообщение
А не подскажете еще как мне с сетевого диска в объект типа memo загрузить данные?
Символ слеша в строках должен экранироваться. Я не уверен в случае с сетевым адресом, но сдается мне, что путь надо писать так: "\\\\Obshy_disk\\infa.txt".
1
06.07.2016, 09:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2016, 09:00
Помогаю со студенческими работами здесь

Как запустить приложение в фоновом режиме?
Как запустить приложение в фоновом режиме? Слышал что-то про сервис, на Java нашел, на FireMonkey...

Периодическая автоматическая установка программ в фоновом режиме
Доброго времени суток! Сразу хочу сказать, что считаю себя весьма продвинутым пользователем, кем...

Работа программы в фоновом режиме
Как сделать чтобы при нажатие на кнопку закрытие программы (т.е. ) программа продолжала работать в...

Работа программы в фоновом режиме
Есть программа с progressbar, при нажатии на кнопку она преобразуется в мини окно. Но если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru