Russian Qt Forum
Ноябрь 24, 2024, 08:56
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
QProcess и возможность запуска приложения только из него
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QProcess и возможность запуска приложения только из него (Прочитано 12353 раз)
arty_57
Гость
QProcess и возможность запуска приложения только из него
«
:
Февраль 07, 2012, 19:26 »
Подскажите пожалуйста как реализовать возможность запуска приложения (написанного мною на Qt) ТОЛЬКО из другого приложения (опять же написанного мною на Qt). То есть чтобы при попытке запуска напрямую приложения 2, появлялось сообщение "Запустите сначала приложение 1", и приложение 2 не запускалось.
Я так понимаю смотреть надо в сторону QProcess. Просто запускать приложение через него уже научился.
Заранее спасибо!
Записан
mutineer
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #1 :
Февраль 07, 2012, 20:37 »
Ну можешь попробовать передавать второму приложению некий секретный параметр комстроки
Записан
Aluman
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #2 :
Февраль 07, 2012, 20:41 »
Если необходимо кроссплатформенное решение, для этого можно использовать QSharedMemory (
http://doc.qt.nokia.com/4.8-snapshot/qsharedmemory.html
). Т.е. в первом приложении, при запуске, создавать участок общей памяти с определенным содержимым, а во втором приложении проверять существование этого участка и его содержимое.
Записан
andrew.k
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #3 :
Февраль 07, 2012, 23:25 »
Цитата: mutineer от Февраль 07, 2012, 20:37
Ну можешь попробовать передавать второму приложению некий секретный параметр комстроки
Я тоже так делал, т.к. в моей ситуации это катило.
Но если программа запускается не в изолированном окружении, "секретный" параметр легко посмотреть.
Если нужно исключить случайный запуск, то это решение покатит, а если умышленный, то нет.
Вторая программа должна при старте обращаться к первой за разрешением на запуск и, не получив его, завершаться.
Можно использовать, например, сокет либо QSharedMemory как советовал Aluman.
Записан
mutineer
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #4 :
Февраль 08, 2012, 00:12 »
Ну да, все ж от задачи и степени защиты зависит
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: QProcess и возможность запуска приложения только из него
«
Ответ #5 :
Февраль 08, 2012, 11:01 »
Самый простой вариант - это проверять наличие определенной переменной среды в запускаемом процессе, которая выставляется в запускальщике.
Записан
Qt 5.11/4.8.7 (X11/Win)
andrew.k
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #6 :
Февраль 08, 2012, 11:51 »
Цитата: GreatSnake от Февраль 08, 2012, 11:01
Самый простой вариант - это проверять наличие определенной переменной среды в запускаемом процессе, которая выставляется в запускальщике.
Ну так это ж то же самое, что и с секретным параметром.
Узнать легко.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: QProcess и возможность запуска приложения только из него
«
Ответ #7 :
Февраль 08, 2012, 11:52 »
Цитата: andrew.k от Февраль 08, 2012, 11:51
Цитата: GreatSnake от Февраль 08, 2012, 11:01
Самый простой вариант - это проверять наличие определенной переменной среды в запускаемом процессе, которая выставляется в запускальщике.
Ну так это ж то же самое, что и с секретным параметром.
Узнать легко.
Все таки это сложнее, чем с параметром запуска.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
andrew.k
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #8 :
Февраль 08, 2012, 13:48 »
Цитата: Пантер от Февраль 08, 2012, 11:52
Цитата: andrew.k от Февраль 08, 2012, 11:51
Цитата: GreatSnake от Февраль 08, 2012, 11:01
Самый простой вариант - это проверять наличие определенной переменной среды в запускаемом процессе, которая выставляется в запускальщике.
Ну так это ж то же самое, что и с секретным параметром.
Узнать легко.
Все таки это сложнее, чем с параметром запуска.
А! Флудер!
"Новая Лада Калина. На 15% лучше... чем ничего."
На сколько процентов сложнее? )
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: QProcess и возможность запуска приложения только из него
«
Ответ #9 :
Февраль 08, 2012, 13:50 »
andrew.k, параметры запуска можно посмотреть в диспетчере задач, а для просмотра переменных сред процесса, нужно отдельное ПО.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
andrew.k
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #10 :
Февраль 08, 2012, 13:56 »
Цитата: Пантер от Февраль 08, 2012, 13:50
andrew.k, параметры запуска можно посмотреть в диспетчере задач, а для просмотра переменных сред процесса, нужно отдельное ПО.
Диспетчер задач стандартный не показывает параметры запуска. По крайней мере в ХР.
есть setenv. Он устанавливает переменную окружения. для всех (?)
А как задавать переменную среды для конкретного процесса? И как ее считать из другого, если она определена только в первом?
Записан
mutineer
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #11 :
Февраль 08, 2012, 14:01 »
Цитата: andrew.k от Февраль 08, 2012, 13:56
А как задавать переменную среды для конкретного процесса? И как ее считать из другого, если она определена только в первом?
Если говорить про линкусы, то переменная окружения ставится для текущей консольной сессии. Процесс, запускаемый через QProcess, запускается в той же сессии и эту переменную тоже видит. Другие приложения (запущенный из других консолей) эту переменную не увидят
Записан
andrew.k
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #12 :
Февраль 08, 2012, 14:06 »
Цитата: mutineer от Февраль 08, 2012, 14:01
Цитата: andrew.k от Февраль 08, 2012, 13:56
А как задавать переменную среды для конкретного процесса? И как ее считать из другого, если она определена только в первом?
Если говорить про линкусы, то переменная окружения ставится для текущей консольной сессии. Процесс, запускаемый через QProcess, запускается в той же сессии и эту переменную тоже видит. Другие приложения (запущенный из других консолей) эту переменную не увидят
Ну так значит в той же консоли, я могу ее легко посмотреть.
При необходимости установить и запустить упрямое приложение.
Записан
mutineer
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #13 :
Февраль 08, 2012, 14:09 »
Цитата: andrew.k от Февраль 08, 2012, 14:06
Цитата: mutineer от Февраль 08, 2012, 14:01
Цитата: andrew.k от Февраль 08, 2012, 13:56
А как задавать переменную среды для конкретного процесса? И как ее считать из другого, если она определена только в первом?
Если говорить про линкусы, то переменная окружения ставится для текущей консольной сессии. Процесс, запускаемый через QProcess, запускается в той же сессии и эту переменную тоже видит. Другие приложения (запущенный из других консолей) эту переменную не увидят
Ну так значит в той же консоли, я могу ее легко посмотреть.
При необходимости установить и запустить упрямое приложение.
Это если приложение было запущено из консоли явно)) Если же оно запущено кликом по значку или ярлыку или пункту меню, то попасть в консоль приложения уже нельзя
Записан
mutineer
Гость
Re: QProcess и возможность запуска приложения только из него
«
Ответ #14 :
Февраль 08, 2012, 14:10 »
Этот спор может быть бесконечным, имхо лучше дождаться пока ТС решит какая степень защиты ему нужна
Записан
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...