![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите написать "Уведомлятель"
Костик © (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]
> Что сказать то хотел?
Да ниче... Всем спасибо )