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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 16:53   #1
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию Tray l Первый запуск.

Привет, крайне интересует как сделать следующее:

Есть программа, которая находится в авторане, и внесена в поле 'Tray', если пользователь просто включил компьютер то программа не показывает форму, а находится только в трее. А если нажали на ярлык на раб.столе то программа открывается с формой. Возможно кто то сталкивался.
stalker1995s вне форума Ответить с цитированием
Старый 24.03.2013, 17:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чет не понял в чем задача...
Тебе нужно чтоб программа при запуске не показывала свое ню, а если уже запущенна - показывала?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.03.2013, 17:18   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...чей ярлык нажали на рабочем столе, гладиолуса?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.03.2013, 17:29   #4
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

Смотрите, если программа запущена автораном, т.е при включении компа, то она не показывает Формы, если через ярлык именно этой программы, то показывает форму. Хорошо бы, узнать как не запускать одну и туже программа через якрылык, т.е копии ее.
stalker1995s вне форума Ответить с цитированием
Старый 24.03.2013, 17:46   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

http://yandex.ua/yandsearch?rdrnd=73...C%D1%8B&lr=960
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.03.2013, 17:58   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

ПО при запуске пытается создать Memory Mapped File с именем X, если это удается, то эта копия ПО является самой первой, а не копией уже запущенной копии. ПО записывает в MMF свой идентификатор окна(Handle).
Дальше ловит сообщения от копий ПО.

Если MMF создать не удастся, т.е. такой MMF кем-о создан в системе, то он открывается, читается содержимое(Идентификатор уже запущенной копии), и отправляется сообщение в это окно.

Первый экземпляр ловит сообщение, и в зависимости от указаний, делает что-то.

У меня это выползание окна к пользователю и закрытие запущенной копии.
Человек_Борща вне форума Ответить с цитированием
Старый 24.03.2013, 18:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
создать Memory Mapped File
По-моему атом проще сделать
http://delphiworld.narod.ru/_all_articles_.html
раздел Приложение своё - [68]
Цикл "Как не допустить запуск второй копии программы"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.03.2013, 18:38   #8
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

С копиями ясно, а что на счет ?
"Если программа запущена автораном, т.е при включении компа, то она не показывает Формы, если через ярлык именно этой программы, то показывает форму."
stalker1995s вне форума Ответить с цитированием
Старый 24.03.2013, 18:54   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...в авторане, в свойствах ярлыка вашей программы там, добавьте любой символ параметром командной строки (это можно сделать как вручную, так и при программном прописывании в авторане), а в своей программе читайте параметры командной строки.

Таким образом, программа, запускаемая через авторан, будет запускаться с идентификатором, а любой другой запуск будет без этого параметра - отсюда программа будет знать, что делать (показывать форму или нет).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Переставить местами первый минимальный и первый максимальный элементы массива Aaaaaa111 Помощь студентам 2 27.02.2012 11:56
Первый запуск derElektroBesen Visual C++ 3 30.07.2011 20:07
Обработка матриц.В каждой строке матрицы найти первый минимальный и первый максимальный элементы и поменя ride013 Помощь студентам 4 20.04.2011 13:14
первый запуск екзешника Lemo Помощь студентам 2 08.06.2010 22:26