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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 13:02   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Восклицание Автозагрузка или принудительный запуск

Вот встаёт такая проблема в приложении.
Мне нужно узнать, как было запущено приложение: или оно было запущено из автозагрузки, или оно было запущено пользователем во время работы(и выдать соответствующее сообщение).
Вопрос прост: как это сделать?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 13:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему ты задачу ставишь неверно. Скажи для чего это нужно, ибо насколько мне известно ОС не контроллирует методы запуска приложения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.01.2011, 13:08   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Ладно, оставим пока вопрос "а нафига?" в стороне.

1) Узнаём, какой путь у нашего бинарника
2) Сканируем регистри ( Microsft\Windows\Run\ там два пути как минимум )
3) Сканируем C:\Documents and Settings\%username%\Start Menu\Programs\Startup (не забываем и про All Users)
4) Cканируем что-то ещё..
5) А ещё юзер мог запустить нас через сервис..
6) А мог через батник, который вызывается в Startup.. Будем анализировать все батники?

А нафига?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.01.2011, 13:12   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Скажи для чего это нужно, ибо насколько мне известно ОС не контроллирует методы запуска приложения.
Цитата:
А нафига?
Ну, просто я делаю приложение, в котором при создании формы загружается БД из файла, и если результатов нет, то Application.Terminate. Однако, этот принцип должен работать только при автозагрузке - при принудительном запуске программа должна открываться даже при нулевых результатах.
P.S. Юзер мог запустить приложение либо принудительно, либо авторан. Задача такая.
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 13:23   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тады так. Опиши для программы обработку параметра скажем -termonempty. Если при запуске такой параметр есть то зарывай если БД пуста. Если при запуске такого параметра нет то не закрывай.
В Авторан пропиши запуск проги с этим параметром, а юзер пусть запускает в обычном режиме, ему незачем знать про этот параметр. Таким образом ты сможешь указать ситуации когда тебе нужно закрывать программу не только в автозапуске но и вообще при нобходимости, а юзер пусть обычный ярлык кликает.
Ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.01.2011, 14:59   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Ферштейн?
Не-а.
А можно примерчик кода?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 15:04   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
А можно примерчик кода?
Да как два пальца:
Код:
If Paramstr(1) = '-gang' Then AutorunUs!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.01.2011, 15:08   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Alex Cones, а как запускать приложение с каким то параметром при автозагрузке?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 15:10   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Ярлык в автозапуске - ПКМ - в "объект" вписываем параметры.
Если в реестре - то в строку адреса дописываем параметры.
Не забудьте пробел между *.exe и параметрами.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.01.2011, 15:14   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Ярлык в автозапуске - ПКМ - в "объект" вписываем параметры.
Насколько я понимаю, такое в msconfig не пройдёт. Сам пробовал.
Цитата:
Если в реестре - то в строку адреса дописываем параметры.
А где именно?
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозагрузка, каталог "Автозагрузка" создается повторно (Win7 x32) MyIE Общие вопросы Delphi 10 29.03.2012 07:49
C++ Builder 6.0. Запуск exe или ln файла Vikelf Помощь студентам 7 29.05.2011 19:22
Запуск exe через интернет - реальность или миф? Drek Свободное общение 12 06.08.2010 19:41
Возникает ошибка 10053 и происходит принудительный разрыв соединения Маёвец Работа с сетью в Delphi 0 28.01.2010 14:36