Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Скрыть программу в TaskBar+изменить имя в процесах |
Автор: chiffa 9.11.2007, 20:57 | ||
Добрый день. у меня возникли такие 2 вопросика: 1. Как не показывать открытую программу в панели задач (TaskBar), сейчас я делую это так:
и все работает нормально. Но когда помещяю опеределенный код в TForm1.Timer1Timer (код застравляет форму перемещятся по экрану изменяя ее парамерты) в TaskBar опять повляется окошко формы... 2. Если у меня файл запустился с именем, к примеру 1.ехе я могу как то в списке отображаемых процесов поменять его отображаемое имя, к примеру на 2.ехе зарание вс ем спасибо ![]() |
Автор: THandle 9.11.2007, 21:02 | ||
|
Автор: chiffa 9.11.2007, 21:49 |
без изменений... |
Автор: chiffa 10.11.2007, 20:53 |
никто не знает?... |
Автор: chiffa 10.11.2007, 22:34 | ||
эээээ, всмысле? |
Автор: Akella 10.11.2007, 22:37 |
что будет делать твоя программа? |
Автор: smartov 10.11.2007, 22:38 |
chiffa, в смысле том, что скрыть имя своего процесса нужно троянам или вирусам. Ты что пишешь первое или второе? |
Автор: chiffa 10.11.2007, 22:52 |
тихо-тихо, че вы так то набросились на меня... я просто подумал что будет красиво, когда стартовый файл к примеру иммет имя start.exe а в процесах висит непосредственно название программы/проекта. Кстати скрыть из тулбара так и не получается... |
Автор: smartov 10.11.2007, 22:53 |
chiffa, красиво то красиво, но это считается уже "грязным" методом. А почему с тулбара не получается? Ведь в самом начале то срабатывает? Ты вроде сказал, что срабатывает. Значит сам метод сокрытия работает. Посмотри код, что у тебя выполняется по таймеру. Или покажи его тут. Поглядим что не так. Добавлено @ 22:54 p.s. а ты уверен что трабла именно в таймере? p.p.s у тебя ось WinXP? |
Автор: chiffa 10.11.2007, 23:03 | ||
ось ХР вот код:
относительно грязного метода.... впринципе согласин, но пользователя можно уведомлять или спрашивать перед тем как изменить имя процеса.... |
Автор: smartov 11.11.2007, 00:16 | ||||||
Ну да. Придеставь сейчас придут к нам Зимбабвийцы, скажем, и скажут - вы нам дайте ядреную бомбу, а мы если что - мы будем только уведомлять что она у нас есть. Правда-правда. -- О коде. Кошмар, сколько мусорного кода... Я расставил комментарии. Ты пораздумай над ними. Потому что лично я так понял, что ты не совсем себе представляешь как работает таймер.
Дельфи у меня под рукой нет, но если бы я писал подобный прикол. То у меня было бы 1) на показ формы ( Form1Show() ) я бы повесил ShowWindow(Application.Handle, SW_HIDE); Form1.Top := 0; Form1.Left := 0; 2) Для простоты (прога мелкая), провозгласил бы две глобальные переменные incX : integer и incY : integer, по умолчанию равные incX := 1; incY := 1; 2) Повесил бы таймер с периодом срабатывания 50 милисекунд. На событие таймера ( Timer1Timer() ) сделал бы подобную процедуру (учти, код пишу просто с головы, без проверки)
Добавлено @ 00:19 p.s. Я в общем лишь рекомендации могу дать. Последний раз практика дельфи у меня была год назад дней пять. А до этого полтора года назад. Но тем не менее основы, конечно, всегда остаются в памяти. |
Автор: chiffa 11.11.2007, 00:24 |
пасиба! буду разбираться! а насчет имени процеса, причем тут бомба... считай что мне просто для общего развития... |
Автор: ama_kid 11.11.2007, 00:24 | ||||||||||||||
Далее, по ошибкам:
Не понял смысла этих действий вообще... Выкинул...
Может я конечно что-то не догнал, но в итоге, после некоторых манипуляций, код, который делает тоже самое, что и данный тобой, и не показывает форму на панели задач - выглядит так:
Добавлено через 26 секунд smartov, обогнал ![]() |
Автор: chiffa 11.11.2007, 00:31 |
ama_kid, спасибо! код выглядит компактнее и работает, но в панели задачь видна все равно... |
Автор: smartov 11.11.2007, 00:35 |
chiffa, ну извини, было б Дельфи - честно проверил бы и дописал. В понедельник глядишь дельфисты проснутся. Сделай up темы во второй половине дня - глядишь помогут |
Автор: chiffa 11.11.2007, 00:39 |
понял. пасиба большое за помощь ![]() |
Автор: Akella 11.11.2007, 01:35 | ||
даже не системы, а сисьадмина |
Автор: Akella 11.11.2007, 02:57 |
попробуй использовать свойство Application.ShowMainformOnTaskbar := False; Вставь его в файл проекта (меню Project -> View Source) Добавлено через 21 секунду но это свойство появилось в поздних версиях дельфи |
Автор: chiffa 11.11.2007, 14:39 |
нуууу, у меня Делфи 2007, но на Application.ShowMainformOnTaskbar ругается, есть похожее: Application.ShowMainForm |
Автор: THandle 11.11.2007, 17:36 | ||
Работает на ура. |
Автор: THandle 11.11.2007, 17:58 |
Вот на всякий случай http://thandle.narod.ru/1.zip |
Автор: ALI46 3.7.2010, 22:29 |
из под Windows 7 В Delphi 7 это прокатило, в вот как сделать чтобы в RAD Studio 2010 работало? |