Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите написать "Уведомлятель"


Страницы:   1 2 3 4

Костик ©   (2008-07-11 11:38:00) 

Помогите пожалуйста написать "Уведомлятель".... Я уже смотрел faq нашел некоторые моменты, но така как я новичок то те процедуры, которые там написаны я не очень в состоянии применть (немного не понятно). Хочу чтобы программа загружалась с виндой и сворачивалась к часам в панели задач и через каждое установленное время выдавала сообщение что типа "Эй чувак - да ты заработался как я посмотрю" )))  ну чтото типа того...
Заранее благодарю.


Костик   (2008-07-15 13:02:00) [1]

так что

procedure OnMinimizeProc(Sender: TObject);

вообще не нужна
и
можно сделать так:

procedure TForm1.FormCreate(Sender: TObject);
begin
{ Application.OnMinimize := OnMinimizeProc;}
PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);

ниче не пойму...
что написав утэто

   procedure WindowsMessage(var Msg:TMessage); message WM_SYSCOMMAND;

уже все перехвачено?


brother   (2008-07-15 12:55:00) [2]

> за собой следить надо

следи за собой, будь осторожен (с) Кино


Костик   (2008-07-15 12:34:00) [3]


> Правильный$Вася   (15.07.08 12:25) [60]
> напоминает школьника из моего дества, которые учились драться
> по видеоиграм типа мортал-комбата

за собой следить надо


brother   (2008-07-15 12:34:00) [4]

> учились драться по видеоиграм типа мортал-комбата

круто!)


Правильный$Вася   (2008-07-15 12:25:00) [5]

напоминает школьника из моего дества, которые учились драться по видеоиграм типа мортал-комбата


Костик   (2008-07-15 12:17:00) [6]

Вот дописал  [56] :

procedure TForm2.FormShow(Sender: TObject);
begin
 SetWindowPos(Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE OR SWP_NOSIZE OR SWP_SHOWWINDOW OR SWP_NOSENDCHANGING);
end;

Вроде ниче только не активное....
Еще дописал  [56] :

procedure TForm1.WindowsMessage(var Msg:TMessage);
begin
if (Msg.WParam = SC_MINIMIZE) or (Msg.WParam = SC_CLOSE) then
 begin
  ActionIcon(1, Application.Icon);    ShowWindow(Handle, SW_HIDE);         ShowWindow(Application.Handle, SW_HIDE);
 end
else
 inherited;
end;

но не пойму откуда посылать

PostMessage(Handle, WM_SYSCOMMAND, SC_CLOSE, 0);

вот

procedure TForm1.OnCloseProc(Sender: TObject);
begin
PostMessage(Handle, WM_SYSCOMMAND, SC_CLOSE, 0);
end;

если там [56]

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := OnMinimizeProc;

то к чему присвоить (переопределить) OnCloseProc ?


DVM   (2008-07-15 12:02:00) [7]


> Denis__ ©   (14.07.08 19:05) [47]

Хоть бы в одной функции проверил код возврата. И хэндлы закрывать надо.


brother   (2008-07-15 11:20:00) [8]

> а хочеться поверх всех окон чтобы была форма...

начинается ((((


Костик   (2008-07-15 11:12:00) [9]

Вот я пишу:

  SetForegroundWindow(Form2.Handle);
  Form2.ShowModal;
  ShowWindow(Form2.Handle, SW_HIDE);
  ShowWindow(Application.Handle, SW_HIDE);

а хочеться поверх всех окон чтобы была форма...
и еще вопрос если можно, в примере выше [43] я определил момент "свертывания" приложения а можно вместо "свертывания" определить так метод закрытия формы (когда на крестик нажимешь у главной формы как в uTorrent)


brother   (2008-07-15 10:53:00) [10]

не пиши ерунды...


Костик   (2008-07-15 10:49:00) [11]

Не знаю как у Вас, но у меня пока ни одна прога не поборола
ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN or EWX_POWEROFF, 0)
хе-хе...
Вот только проблемка - есть EWX_LOGOF типа "вылогиться" но он тушит все процессы, а я бы хотел чтобы было как "Пуск/Выход из системы/смена пользователя/" ООООО. а может так и сделать..? тоесть надо отправить Cntr+Esc, стрелка вверх, стрелка вправо, ввод, ввод.... Э не а если мышка в этот момент будет в этой области но чуть выше - не  не катит... что делать?
заодно, чтобы не показаться наглым)), подскажите как мне сделать всплывающее окошко как у isq? чтобы оно поверх всех окон всплывало..?
заранее очень благодарю.


brother   (2008-07-15 10:40:00) [12]

> выключеного приложения

новые понятия в программистике? ;)


Anatoly Podgoretsky   (2008-07-15 10:18:00) [13]

> Костик  (15.07.2008 10:06:50)  [50]

Из выключеного приложения :-)


brother   (2008-07-15 10:12:00) [14]

> "Контрольный"

ну если какое-либо приложение блокирует завершение, тогда послать всем килл олл


Костик   (2008-07-15 10:06:00) [15]


> 100% выключение гарантирует только отключение питания...
>  ;)

ну это понятно,  а по сути я бы проверил, если работает винда еще то выключил бы "Контрольный" раз )


brother   (2008-07-15 10:03:00) [16]

> А если какая то программа помешает выключению, как проверить?

100% выключение гарантирует только отключение питания... ;)


Костик   (2008-07-15 09:59:00) [17]


> Denis__ ©   (14.07.08 19:05) [47]
> TTimer.

Благодарю... А если какая то программа помешает выключению, как проверить?


Denis__   (2008-07-14 19:05:00) [18]

TTimer.

var
ph: THandle;
tp, prevst: TTokenPrivileges;
rl: DWORD;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
  TOKEN_QUERY, ph);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
tp.PrivilegeCount := 1;
tp.Privileges[0].Attributes := 2;
AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
end;


Костик   (2008-07-14 14:43:00) [19]

Скажите пожалуйста как записать в реестр чтобы программа запускалась в определенный момент времени или спустя некоторое время после запуска виндовс.
И еще если не трудно как из приложения можно выключить компьютер .. и как отправить его в ждущий режим...???
Заранее очень благодарю...


Костик   (2008-07-14 12:07:00) [20]


> Что сказать то хотел?

Да ниче... Всем спасибо )


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо