Форум: "Основная";
Текущий архив: 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.044 c