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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2009, 22:32   #1
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию Несколько вопросов по автозагрузке и трее в Delphi

Всем доброго времени суток. Нужна ваша помощь в нескольких вопросах:
1) Нужно сделать так, чтоб программа загружалась вместе с Windows, но была свёрнута в трей (используя компонент CoolTrayIcon)
2) Нужно сделать так, чтоб программа загружалась вместе с Windows и весела в процессах в свёрнутом виде, при нажатии на exeшник разварачивалась.
Буду очень признателен за любую помощь!!!
TaYgA вне форума Ответить с цитированием
Старый 30.11.2009, 23:41   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну вроде как 1 и 2 вопросы одно и тоже... чтоб авто-загружалась пропишите свою программу в реестр (ключи автозагрузки думаю сами знаете), ну а чтоб свернута - не показывайте ее при создании showmainform:= false
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.12.2009, 09:14   #3
ОлеХ
Пользователь
 
Аватар для ОлеХ
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию

Если дельфа не будет скрывать как написал raxp(потому что у меня она не скрывает так глюкавая ведать ) , вот так должно получиться:

procedure TForm1.FormShow(Sender: TObject);
begin
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Han dle, SW_HIDE);
end;
ОлеХ вне форума Ответить с цитированием
Старый 01.12.2009, 18:24   #4
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Ничего не выходит В процедуре FromCreate пишу:
Код:
      Reg:=TRegistry.Create;
      Reg.RootKey:=hkey_current_user;
      Reg.OpenKey('software\microsoft\windows\currentversion\run',true);
      Reg.WriteString('Project.exe',Application.ExeName);
      Reg.CloseKey;
      Reg.Free;
Программа компелируется, но после перезагрузки автоматически не запускается....
TaYgA вне форума Ответить с цитированием
Старый 01.12.2009, 18:30   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

у вас по ходу ветка не та!
нужна HKEY_LOCAL_MACHINE
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 01.12.2009 в 18:38.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 01.12.2009, 18:44   #6
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

ОДИНОЧЕСТВО В СЕТИ, в очередной раз вам спасибо

Всё ещё ломаю голову над автозагрузкой. Я никогда не работал с реастром поэтому арентируюсь плохо, объясните пожалуйсто:
1) Когда мы пишем в процедуру FormCreate автозагрузку при каждом запуске программы она перезаписывается или нет? (в моём проекте используется настройка программы и мне требуется, чтоб каждый раз автозагрузка перезаписывалась)
2) Для удаления автозагрузки писал код:
Код:
      Reg.RootKey:=hkey_current_user;
      Reg.OpenKey('software\microsoft\windows\currentversion\run',true);
      Reg.deletevalue('Project');
      Reg.CloseKey;
      Reg.Free;
Автозагрузка не удалялась, пришлось заходить в реастр и удалять от туда. Что в коде неправильно?
3) При автозагрузке программа сворачивается в трей с помощью команды:
Код:
showmainform:= false
Если это прописывать в процедуре FormCreate и при запуске exeшника программа тоже сворачивается в трей. Нужно, чтоб только при автозагрузке...
4) Как сделать, чтоб при запуске exeшника, если программа уже запущена, она просто разварачивалась или становилась поверх всех окон?

Последний раз редактировалось Stilet; 02.12.2009 в 10:22.
TaYgA вне форума Ответить с цитированием
Старый 01.12.2009, 20:33   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
ОДИНОЧЕСТВО В СЕТИ
у вас по ходу ветка не та!
нужна HKEY_LOCAL_MACHINE
ну почему-же не та... там вариантов масса...
Цитата:
TaYgA
1) Когда мы пишем в процедуру FormCreate автозагрузку при каждом запуске программы она перезаписывается или нет? (в моём проекте используется настройка программы и мне требуется, чтоб каждый раз автозагрузка перезаписывалась)
в formcreate будет перезаписываться... ниже код для создания и удаления:
Код:
//автозагрузка-
procedure arun(key,filename:string; p:boolean);
var hr:tregistry;
begin
 hr:=TRegistry.create;
 hr.RootKey:= $80000001;//HKEY_CURRENT_USER;
 hr.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',true);
 if p then hr.WriteString(key,PChar(filename))
  else begin hr.DeleteKey(key);hr.DeleteValue(key);end;
 hr.CloseKey;hr.Free;
end;
придерживайтесь правила: 1 вопрос - 1 тема
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.12.2009, 21:57   #8
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Несовсем ясно как этот код работает... При компеляции Delphi ругается на key и на p. Куда вписывать путь к файлу?
Код:
if p then hr.WriteString(key,PChar(filename))
  else begin hr.DeleteKey(key);hr.DeleteValue(key);end;
На сколько я понял происходит проверка... Если записи в реастре нет, то создать, в противном случае удалить запись.... Это так?

Последний раз редактировалось TaYgA; 01.12.2009 в 22:02.
TaYgA вне форума Ответить с цитированием
Старый 01.12.2009, 22:18   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

чего ей ругаться...
Код:
procedure arun(key,filename:string; p:boolean);
key - имя ключа, любое, например 'ла-да-ла'
filename - абсолютный путь к вашему exe, из paramstr(0) например
p= true - создать, false - удалить
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.12.2009, 23:17   #10
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

raxp, спасибо, понял в чём была ошибка
TaYgA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов. Miron86 Компоненты Delphi 3 09.09.2009 18:25
несколько вопросов fitc Общие вопросы Delphi 28 14.07.2009 21:20
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28
Несколько Вопросов Дорст Общие вопросы Delphi 3 12.11.2007 09:18
Несколько вопросов по Delphi 2005 Nez Общие вопросы Delphi 53 21.02.2007 05:49