Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой программой запущена моя программа? 
:(
    Опции темы
tishaishii
Дата 27.3.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Как программно узнать какой программой запущена моя программа?
PM MAIL ICQ Skype   Вверх
marykone
Дата 27.3.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2722
Регистрация: 2.5.2006
Где: Краснодар

Репутация: 10
Всего: 67



зачем плодить тему 

вот твоя же проблемма

ты же получил ответ если ты получил не удовлетворительный ответ то переформулируй вопрос спроси другими словами

или объясни для чего ты хочешь узнать  Какой программой запущена моя программа 


--------------------
получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы).

PM   Вверх
redona
Дата 27.3.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


фоса: - МЯСА...
****


Профиль
Группа: Участник Клуба
Сообщений: 2252
Регистрация: 15.11.2005
Где: Украина, Харьков

Репутация: 19
Всего: 99



Цитата(tishaishii @  27.3.2007,  10:51 Найти цитируемый пост)
Как программно узнать какой программой запущена моя программа?

перечитал 10 раз, понял только, что я нихрена не понял, если вас не затруднит попробуйте более подробно объяснить...


--------------------
В храме надпись:
"От святого огня не прикуривают"

переходи на сторону зла, - у нас есть печеньки!

 - Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Стив Макконнелл
PM MAIL WWW   Вверх
marykone
Дата 27.3.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2722
Регистрация: 2.5.2006
Где: Краснодар

Репутация: 10
Всего: 67



Цитата

перечитал 10 раз, понял только, что я нихрена не понял


 smile так не ты один 



redona, он и тут спрашивал идентично


--------------------
получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы).

PM   Вверх
skyboy
Дата 27.3.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



проясню вопрос: как выяснить, какой процесс создал текущий процесс при помощи CreateProcess?
tishaishii, такое значение вопроса?
PM MAIL   Вверх
bartram
Дата 27.3.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 12
Всего: 29



http://sysinternals.com
Утилита Process Explorer показывает такое


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
tishaishii
Дата 27.3.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



По-моему, если прочесть вопрос один раз, то логично и понятно. Вот я пишу программу, она запускается каким-то образом, хочется узнать каким и из-под какой программы. Если снова не понятно, хочу, чтобы мою программу могла бы запустить только одна определённая мною программа.

Условия (это условия): Программа А, Программа Б. А запускает Б.
Внимание, вопрос (это вопрос): Как внутри Б узнать, что её запустила А?

Активыкс какой-то или WinAPI, узнать надо информацию про программу.

Это сообщение отредактировал(а) tishaishii - 27.3.2007, 19:51
PM MAIL ICQ Skype   Вверх
bartram
Дата 27.3.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 12
Всего: 29



Цитата(tishaishii @  27.3.2007,  19:45 Найти цитируемый пост)
Условия (это условия): Программа А, Программа Б. А запускает Б.
Внимание, вопрос (это вопрос): Как внутри Б узнать, что её запустила А?
Активыкс какой-то или WinAPI, узнать надо информацию про программу.

Я так понял тебе надо узнать имя процесса родителя, это показывает программа ссылку на которую я тебе уже давал.
Программ А при запуске создает процесс, который в последующем запускает программу Б функцией CreateProcess, при этом Процесс А будет являться родителем процесса Б. Ты помоему путаешь понятия программа и процесс.



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
tishaishii
Дата 27.3.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Ладно, в курсе я что такое процесс, но, думаю, слово "программа" всем понятно и без того. Я не настолько педантичен, чтобы выражаться с помощью семантики математической логики, чтобы рассказать простые вещи. Существует на белом свете жанр, называется "разговорный", а жанр расчитан он на то, что подготовленная аудитория может расшифровать сокращения и допущения.
Думаю, постил в правильный раздел.

Добавлено через 4 минуты и 56 секунд
Посмотрел я эту программу, мне не нужная такая наворочанная штуковина, мне надо всего-то узнать какой прогой была запущена моя. Не хочется включать в дистирубутив моей проги и эту тоже, тем более она ещё окошки выдаёт.
Моя цель - моя прога будет достраивать прогу, которая её запускает для того, чтобы нельзя было работать с прогой А без правильно настроенной проги Б, т.к. всё это продаётся.
PM MAIL ICQ Skype   Вверх
Akina
Дата 27.3.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 42
Всего: 454



Цитата(tishaishii @  27.3.2007,  20:45 Найти цитируемый пост)
Условия (это условия): Программа А, Программа Б. А запускает Б.
Внимание, вопрос (это вопрос): Как внутри Б узнать, что её запустила А?

В общем случае никак.
Но если есть гарантия, что запустивший твою программу процесс еще не выгружен и (никакой процесс) не вмешивался в поле OwnerPID при создании процесса - то ответ дан в http://forum.vingrad.ru/topic-142701.html и http://forum.vingrad.ru/topic-143235.html.

Он, кстати, для указанных ограничений полон и, если не оптимален, то близок к этому.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 27.3.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



можно произвести некоторый обмен данными между запустившей и запущенной программами
например: запущенная программа генерирует случайное число, передаёт его запускающей
запускающая подписывает его чем-то вроде цифровой подписи и передаёт результат назад
запущенная программа проверяет


--------------------
qqq
PM WWW   Вверх
mihanik
Дата 28.3.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Вот решение:  
http://forum.vingrad.ru/index.php?showtopi...t&p=1078384

Это сообщение отредактировал(а) mihanik - 28.3.2007, 08:25


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Akina
Дата 28.3.2007, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 42
Всего: 454



Однако повторюсь - во-первых, запускающий (да и любой другой - были бы права) процесс может изменить ParentID запускаемого. В т.ч. поставить там ноль. Во-вторых, на момент опроса запускающий процесс может уже быть выгружен.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
mihanik
Дата 28.3.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Цитата(Akina @  28.3.2007,  09:04 Найти цитируемый пост)
Однако повторюсь - во-первых, запускающий (да и любой другой - были бы права) процесс может изменить ParentID запускаемого. В т.ч. поставить там ноль. Во-вторых, на момент опроса запускающий процесс может уже быть выгружен. 


Не спорю: может.

Но!!!

Попытка - не пытка.
Мы даём идею и указываем на подводные камни.
А уж tishaishii пусть развивает идею сам.




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
unicuum
  Дата 31.3.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: 2
Всего: 8



Можно узнать путь командной строки:

Код

Dim arguments As [String]() = Environment.GetCommandLineArgs()
Dim arg As String
For Each arg In arguments
    Console.WriteLine(arg.ToString)
Next arg


Первый аргумент та программа с помощью, которой была запущена другая.



--------------------
user posted image
обычный день на винграде
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.1051 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.