Aplicaçao funcionando em Blackground e com ícone no systray
Necessito dos colegas informaçoes de como desenvolver uma aplicacao para funcionar em blackground assim que ligar o micro, com um atalho no , e que ficasse somente com o seu ícone no systray, e a aplicação invisivel. No Systray somente clicando com o mouse direito para ter acesso ao menu p/abrir a aplicaçao.
Sei que é possível tentei algumas fórmulas, porém o que consegui até aqui foi deixá-la minimizada na barra de tarefas... mas assim não quero.
Aguardo noticias. Obrigado a todos.
Sei que é possível tentei algumas fórmulas, porém o que consegui até aqui foi deixá-la minimizada na barra de tarefas... mas assim não quero.
Aguardo noticias. Obrigado a todos.
Helio Nascimento
Curtidas 0
Respostas
Chocoabj2003
10/12/2004
8) Use o componente RxTrayIcon, dos componentes da RXLIB. Basta colocar o componente no form e escolher um ícone que vai aparecer ao lado do relógio. Para iniciar ao ligar a máquina, vc coloca no iniciar do Windows. Vc pode colocar somente o form de login para iniciar e depois criar os outros dinamicamente, após logar no sistema.
Ademilson Beirão
Ademilson Beirão
GOSTEI 0
Paulo_amorim
10/12/2004
Olá
Pesquise no fórum por sys tray, winsystray, e coisas do gênero.
Não eh necessário usar o RxLib se vc não quiser, já que existem códigos que criam para você. Eu tenho um que peguei aqui no fórum
Sobre a aplicação não aparecer, coloque antes da criação dos Forms na Unit de Projeto:
Até+
Pesquise no fórum por sys tray, winsystray, e coisas do gênero.
Não eh necessário usar o RxLib se vc não quiser, já que existem códigos que criam para você. Eu tenho um que peguei aqui no fórum
Sobre a aplicação não aparecer, coloque antes da criação dos Forms na Unit de Projeto:
Application.ShowMainForm := False;
Até+
GOSTEI 0
Paulo_amorim
10/12/2004
Olá
[quote:8756e46e38=´Helio Nascimento´]Obrigado por vc me responder.
Entendi suas explicações.
Se eu colocar nos forms que nao sao para aparecer, a aplicação fica ´escondida´, mas funcionando certo? como o ícono ao lado do relógio certo? E como faria para que o form da aplicação aparecesse quando clicasse com o botão direito do mouse em cima deste ícone e com um menu tipo ´Abrir ´ ´Cancelar´ ´Fechar´, caso este formulario que ja esta com instruçoes para nao aparecer, e como faria para que ele aparecer e depois retornar a mesma condição de antes....[/quote:8756e46e38]
Não é necessário colocar nos Forms, coloque na aplicação que ela já rodará sem aparecer na barra de tarefas.
Para que ele apareça no Systray, deve-se usar um componente ou algo do gênero.
Para aparecer um menu quando você clicar com o botão direito, utilize o componente PopUpMenu.
Até+
[quote:8756e46e38=´Helio Nascimento´]Obrigado por vc me responder.
Entendi suas explicações.
Se eu colocar nos forms que nao sao para aparecer, a aplicação fica ´escondida´, mas funcionando certo? como o ícono ao lado do relógio certo? E como faria para que o form da aplicação aparecesse quando clicasse com o botão direito do mouse em cima deste ícone e com um menu tipo ´Abrir ´ ´Cancelar´ ´Fechar´, caso este formulario que ja esta com instruçoes para nao aparecer, e como faria para que ele aparecer e depois retornar a mesma condição de antes....[/quote:8756e46e38]
Não é necessário colocar nos Forms, coloque na aplicação que ela já rodará sem aparecer na barra de tarefas.
Para que ele apareça no Systray, deve-se usar um componente ou algo do gênero.
Para aparecer um menu quando você clicar com o botão direito, utilize o componente PopUpMenu.
Até+
GOSTEI 0
Paulo_amorim
10/12/2004
Olá
Segue um código para colocar o componente no Systray:
Com isso ele irá criar o ícone no systray. Coloque um PopUpMenu e mande-o executar no WM_RBUTTONDOWN...
Espero que ajude
Até+
Segue um código para colocar o componente no Systray:
const
WM_ICONTRAY = WM_USER + 1;
type Form1 = class(TForm)
procedure TrayMessage(var Msg: TMessage); message WM_ICONTRAY;
private
TrayIconData: TNotifyIconData;
end;
(...)
{ no evento OnCreate do Form principal }
//Define as propriedades do ícone
with TrayIconData do
begin
cbSize := SizeOf(TrayIconData);
Wnd := Handle;
uID := 0;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_ICONTRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
//Cria o ícone no win system tray
Shell_NotifyIcon(NIM_ADD, @TrayIconData);
//-----------------------------------------------------------
{ no evento OnDestroy do Form principal }
Shell_NotifyIcon(NIM_DELETE, @TrayIconData);
//-----------------------------------------------------------
procedure TForm1.TrayMessage(var Msg: TMessage);
begin
case Msg.lParam of
//Clique duplo do mouse faz algo
WM_LBUTTONDBLCLK:
begin
//codigo
end;
//Clicar com o botão direito faz algo
WM_RBUTTONDOWN:
begin
//codigo
end;
end;
end;Com isso ele irá criar o ícone no systray. Coloque um PopUpMenu e mande-o executar no WM_RBUTTONDOWN...
Espero que ajude
Até+
GOSTEI 0
Shaolin
10/12/2004
Para esta rotina funcionar no Delphi 5.0, tem que ser adicionado alguma cláusula no Uses ????
GOSTEI 0
Pistesil
10/12/2004
como faco para aprecer um menu quando pressiono o botao direito?
GOSTEI 0
Paulo_amorim
10/12/2004
Olá
Eu usei no D5, e não lembro de ter que colocar qq coisa... deu algum erro?
Se sim, tente colocar ShellAPI
Coloque um componente TPopUpMenu no form, e programe para ele aparecer no WM_RBUTTONDOWN (naquele case da rotina)
Espero que ajude
Ate+
Para esta rotina funcionar no Delphi 5.0, tem que ser adicionado alguma cláusula no Uses ????
Eu usei no D5, e não lembro de ter que colocar qq coisa... deu algum erro?
Se sim, tente colocar ShellAPI
como faco para aprecer um menu quando pressiono o botao direito?
Coloque um componente TPopUpMenu no form, e programe para ele aparecer no WM_RBUTTONDOWN (naquele case da rotina)
Espero que ajude
Ate+
GOSTEI 0