Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Постоянные программы   Найти похожие ветки 

 
UserUserov   (2004-09-16 20:45) [0]

Я хочу что-бы прога запускалась, как только я запущу WIN,
затем она была свернута в правый нижний угол. Вобщем работала
постоянно. Может кто знает как?


 
_student   (2004-09-16 20:53) [1]

1. Прописать программу в автозапуска в реестре
2. При запуске свернуть
3. Созадать иконку в трее для проги
4. Скрыть прогу, чтобы не было на панели
5. Наслаждаться программой


 
DVM ©   (2004-09-16 20:54) [2]

Если бы я начал собирать все варианты вопросов "Как запузырить туда где часики" за несколько лет получилась бы неплохая подборка. :)))


 
Anatoly Podgoretsky ©   (2004-09-16 20:57) [3]

DVM ©   (16.09.04 20:54) [2]
Форум не выдержит


 
Агент Х-СОМ ©   (2004-09-16 22:01) [4]

Ага, то есть типичный резидент. Ну в реестр адрес:

HKEY_LOCAL_MACHINE(HKEY_CURRENT_USER)/Software/Microsoft/Windows/CurrentVersion/Run

При запуске  - прописать frmMain.hide, а для эффекта свертывания - ShowWindow(Handle,SW_MINIMIZE);

Иконке в трее посвящено множество статей - долго описывать

А вообще всему этому посвящаются многие статьи, это несложно, просто объемно, и вариантов немало


 
icebeerg ©   (2004-09-17 11:53) [5]

> UserUserov   (16.09.04 20:45)
Про автозапуск уже сказали достаточно.
Про иконку к часикам читай FAQ или юзай RXLib
Про отображение (не отображение) формs Application.ShowMainForm=False в файле проекта


 
kukuikar ©   (2004-09-17 12:07) [6]

unit main;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, Menus;

const
 WM_MYICONNOTIFY = WM_USER + 123;

type
 TForm1 = class(TForm)
   PopupMenu1: TPopupMenu;
   RestoreItem: TMenuItem;
   FileExitItem1: TMenuItem;
   HideItem: TMenuItem;
   N1: TMenuItem;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure RestoreItemClick(Sender: TObject);
   procedure HideItemClick(Sender: TObject);
   procedure FileExitItem1Click(Sender: TObject);
 private
   { Private declarations }
   ShownOnce: Boolean;
 public
   { Public declarations }
   procedure WMICON(var msg: TMessage); message WM_MYICONNOTIFY;
   procedure WMSYSCOMMAND(var msg: TMessage); message WM_SYSCOMMAND;
   procedure RestoreMainForm;
   procedure HideMainForm;
   procedure CreateTrayIcon(n: Integer);
   procedure DeleteTrayIcon(n: Integer);
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
uses ShellApi, shlobj, registry;

procedure TForm1.WMICON(var msg: TMessage);
var
 P: TPoint;
begin
 case msg.LParam of
   WM_RBUTTONUP://WM_LBUTTONUP
     begin
       GetCursorPos(p);
       SetForegroundWindow(Application.MainForm.Handle);
       PopupMenu1.Popup(P.X, P.Y);
     end;
   WM_LBUTTONDBLCLK: RestoreItemClick(Self); //Default
 end;
end;

procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
 inherited;
 if (Msg.wParam = SC_MINIMIZE) then
   HideItemClick(Self);
end;

procedure TForm1.HideMainForm;
begin
 Application.ShowMainForm := False;
 ShowWindow(Application.Handle, SW_HIDE);
 ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;

procedure TForm1.RestoreMainForm;
var
 i, j: Integer;
begin
 Application.ShowMainForm := True;
 ShowWindow(Application.Handle, SW_RESTORE);
 ShowWindow(Application.MainForm.Handle, SW_RESTORE);
 if not ShownOnce then
 begin
   for I := 0 to Application.MainForm.ComponentCount - 1 do
     if Application.MainForm.Components[I] is TWinControl then
       with Application.MainForm.Components[I] as TWinControl do
         if Visible then
         begin
           ShowWindow(Handle, SW_SHOWDEFAULT);
           for J := 0 to ComponentCount - 1 do
             if Components[J] is TWinControl then
               ShowWindow((Components[J] as TWinControl).Handle,
                 SW_SHOWDEFAULT);
         end;
   ShownOnce := True;
 end;
//DeleteTrayIcon(1);end;

procedure TForm1.CreateTrayIcon(n: Integer);
var
 nidata: TNotifyIconData;
begin
 with nidata do
 begin
   cbSize := SizeOf(TNotifyIconData);
   Wnd := Self.Handle;
   uID := 1;
   uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
   uCallBackMessage := WM_MYICONNOTIFY;
   hIcon := Application.Icon.Handle;
ImageList è ò.ä.
   StrPCopy(szTip, Application.Title);
   
 end;
 Shell_NotifyIcon(NIM_ADD, @nidata); end;

procedure TForm1.DeleteTrayIcon(n: Integer);
var
 nidata: TNotifyIconData;
begin
 with nidata do
 begin
   cbSize := SizeOf(TNotifyIconData);
   Wnd := Self.Handle;
   uID := 1;
 end;
 Shell_NotifyIcon(NIM_DELETE, @nidata);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ShownOnce := False;
 //CreateTrayIcon(1);
 HideItem.Enabled := False;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteTrayIcon(1);
end;

procedure TForm1.RestoreItemClick(Sender: TObject);
begin
 RestoreMainForm;
 //DeleteTrayIcon(1);
 RestoreItem.Enabled := False;
 HideItem.Enabled := True;
end;

procedure TForm1.HideItemClick(Sender: TObject);
begin
 HideMainForm;
 CreateTrayIcon(1);
 HideItem.Enabled := False;
 RestoreItem.Enabled := True;
end;

procedure TForm1.FileExitItem1Click(Sender: TObject);
begin
 Close;
end;

end.


 
kukuikar ©   (2004-09-17 12:08) [7]

object Form1: TForm1
 Left = 192
 Top = 107
 Width = 696
 Height = 480
 Caption = "Form1"
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 OnDestroy = FormDestroy
 PixelsPerInch = 96
 TextHeight = 13
 object PopupMenu1: TPopupMenu
   Left = 176
   Top = 120
   object RestoreItem: TMenuItem
     Caption = ""
     OnClick = RestoreItemClick
   end
   object HideItem: TMenuItem
     Caption = ""
     OnClick = HideItemClick
   end
   object N1: TMenuItem
     Caption = "-"
   end
   object FileExitItem1: TMenuItem
     Caption = ""
     OnClick = FileExitItem1Click
   end
 end
end


 
kukuikar ©   (2004-09-17 12:08) [8]

program TrayForm;

uses
 Forms,
 main in "main.pas" {Form1};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


 
kukuikar ©   (2004-09-17 12:09) [9]

еще вопросы?


 
GuAV ©   (2004-09-17 12:34) [10]


> Ага, то есть типичный резидент.

Какие нафиг резиденты, это же win32, а резиденты были в ДОСе ?


 
JK   (2004-09-17 13:04) [11]

Кстати, классное название темы.


 
kukuikar ©   (2004-09-17 13:05) [12]


> Какие нафиг резиденты, это же win32, а резиденты были в
> ДОСе ?

а мы ваших резидентах на прерываниях перевешаем:)


 
icebeerg ©   (2004-09-17 15:33) [13]

Ну kukuikar ты сподобился, и делать нечего было чтоли? Это же по факам собирается в 5 минут... А вообще молодец. (что-то я ваще разленился)


 
kukuikar ©   (2004-09-17 16:27) [14]


> Ну kukuikar ты сподобился, и делать нечего было чтоли? Это
> же по факам собирается в 5 минут... А вообще молодец. (что-то
> я ваще разленился)

а с моего винта это собирается за минуту.
по моему это проще сделать чем написать:
юзай TNotifyIconData. все равно он не поймет с первого раза, а мы тут будем брызгать слюной и говорить о том что все очень устали и им некогда помогать чайникам...
Правильно?


 
kukuikar ©   (2004-09-17 16:28) [15]


> icebeerg ©   (17.09.04 15:33) [13]
> Ну kukuikar ты сподобился, и делать нечего было чтоли? Это
> же по факам собирается в 5 минут... А вообще молодец. (что-то
> я ваще разленился)


а с моего винта это собирается за минуту.
по моему это проще сделать чем написать:
юзай TNotifyIconData. все равно он не поймет с первого раза, а мы тут будем брызгать слюной и говорить о том что все очень устали и им некогда помогать чайникам...
Правильно?


 
kukuikar ©   (2004-09-17 16:30) [16]


> icebeerg ©   (17.09.04 15:33) [13]
> Ну kukuikar ты сподобился, и делать нечего было чтоли? Это
> же по факам собирается в 5 минут... А вообще молодец. (что-то
> я ваще разленился)


а с моего винта это собирается за минуту.
по моему это проще сделать чем написать:
юзай TNotifyIconData. все равно он не поймет с первого раза, а мы тут будем брызгать слюной и говорить о том что все очень устали и им некогда помогать чайникам...
Правильно?


 
Алхимик ©   (2004-09-17 20:06) [17]


> [14] kukuikar ©   (17.09.04 16:27)

Правильно.

> [15] kukuikar ©   (17.09.04 16:28)

Правильно.

> [16] kukuikar ©   (17.09.04 16:30)

Правильно.


 
olookin ©   (2004-09-17 20:08) [18]

--------------------------------------------------------------------------------
[17] Алхимик ©   (17.09.04 20:06)

Правильно!


 
GuAV ©   (2004-09-17 21:21) [19]

for I:=0 to 19 do
 MyPoys:=MyPost+Format("[%d] - Правильно."+sLineBreak, [I]);


 
UserUserov   (2004-09-17 21:46) [20]

!!!!!!Я не чайник!!!!!!!


 
Алхимик ©   (2004-09-18 12:21) [21]


> [20] UserUserov   (17.09.04 21:46)
> !!!!!!Я не чайник!!!!!!!

Правильно.


 
kukuikar ©   (2004-09-20 09:12) [22]


> GuAV ©   (17.09.04 21:21) [19]
> for I:=0 to 19 do
>  MyPoys:=MyPost+Format("[%d] - Правильно."+sLineBreak, [I]);

прикольно!


 
KSergey ©   (2004-09-20 09:45) [23]

> [20] UserUserov   (17.09.04 21:46)
> !!!!!!Я не чайник!!!!!!!

Типа обиделся?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.039 c
4-1093055871
DelphiN!
2004-08-21 06:37
2004.10.03
Как получить время, не связанное с временем Windows?


14-1095418609
banderas
2004-09-17 14:56
2004.10.03
Базы Касперского 5.0


3-1094203637
Ира
2004-09-03 13:27
2004.10.03
Вставка данных в таблицу


1-1095441687
hgd
2004-09-17 21:21
2004.10.03
Подскажите как проще перехватить нажатие клавиши


6-1091039930
dms_main
2004-07-28 22:38
2004.10.03
html encoding





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский