VB6 - ICONE AO LADO DO RELOGIO DO WINDOWS
ANALISEI, MAS NAO ESTA A FUNCIONAR, SE EU TROCAR O ICONE ELE MUDA NA BARRA EM CIMA, E NÃO NA BARRA DE TAREFAS.
Eu tenho um icone na barra de cima, e queria colocar o mesmo icone na barra do relógio do windows, expliquem-me por favor.
bom coloque o seguinte código em um módulo
depois no form principal
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203 [ô]Double-click
Public Const WM_LBUTTONDOWN = &H201 [ô]Button down
Public Const WM_LBUTTONUP = &H202 [ô]Button up
Public Const WM_RBUTTONDBLCLK = &H206 [ô]Double-click
Public Const WM_RBUTTONDOWN = &H204 [ô]Button down
Public Const WM_RBUTTONUP = &H205 [ô]Button up
Public Declare Function Shell_NotifyIcon Lib [Ô]shell32[Ô] Alias [Ô]Shell_NotifyIconA[Ô] (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
depois no form principal
Dim nid As NOTIFYICONDATA [ô] Variavel do TrayIcon
[ô]------------------------
[ô]--- Cria o tray icon ---
[ô]------------------------
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon [ô] O icone usado será o mesmo do form
nid.szTip = [Ô]Um titulo para o icone[Ô] & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Me.Show [ô] show form
Shell_NotifyIcon NIM_DELETE, nid [ô] Apaga tray icon
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
minimize_to_tray
Me.WindowState = 0
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid [ô] apaga o tray icon
End Sub
Dá erro.
AJUDEM-ME , só tenho uma semana e pouco para acabar isto e é mesmo muito importante
AJUDEM-ME , só tenho uma semana e pouco para acabar isto e é mesmo muito importante
que erro e onde?
Compile error :
Ambiguous name detected : Form_unload
AJUDEM_ME
Ambiguous name detected : Form_unload
AJUDEM_ME
procure no seu código que vc deve ter colocado duas subs Unload do form, e dá esse erro reveja o código todo.
O Código é o seguinte :
Private Sub cmdconfirma_Click()
If txtnome.Text = [Ô]Hotel[Ô] And txtsenha.Text = [Ô]Caetano[Ô] Then
MsgBox [Ô]Senha Correcta[Ô], vbInformation, [Ô]Sessão Iniciada[Ô]
Iniciar.Hide
Inicio.Show
Else
MsgBox [Ô] A informação de acesso que introduziu não existe na nossa base de dados. Por favor, tente novamente[Ô], vbCritical, [Ô]ERRO[Ô]
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
txtnome.SetFocus
End If
End Sub
Private Sub cmdfinalizar_Click()
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Format(Time)
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MsgBox([Ô]Tem a certeza que pretende sair do Programa?[Ô], vbQuestion + vbYesNo, [Ô]Hotel Caetano[Ô]) <> vbYes Then
Cancel = True
End If
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate [Ô]C: empoagora.html[Ô]
End Sub
Dim nid As NOTIFYICONDATA
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon
nid.szTip = [Ô]Um titulo para o icone[Ô] & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Me.Show
Shell_NotifyIcon NIM_DELETE, nid
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
minimize_to_tray
Me.WindowState = 0
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End Sub
O que tenho de mudar ?
Private Sub cmdconfirma_Click()
If txtnome.Text = [Ô]Hotel[Ô] And txtsenha.Text = [Ô]Caetano[Ô] Then
MsgBox [Ô]Senha Correcta[Ô], vbInformation, [Ô]Sessão Iniciada[Ô]
Iniciar.Hide
Inicio.Show
Else
MsgBox [Ô] A informação de acesso que introduziu não existe na nossa base de dados. Por favor, tente novamente[Ô], vbCritical, [Ô]ERRO[Ô]
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
txtnome.SetFocus
End If
End Sub
Private Sub cmdfinalizar_Click()
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Format(Time)
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MsgBox([Ô]Tem a certeza que pretende sair do Programa?[Ô], vbQuestion + vbYesNo, [Ô]Hotel Caetano[Ô]) <> vbYes Then
Cancel = True
End If
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate [Ô]C: empoagora.html[Ô]
End Sub
Dim nid As NOTIFYICONDATA
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon
nid.szTip = [Ô]Um titulo para o icone[Ô] & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Me.Show
Shell_NotifyIcon NIM_DELETE, nid
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
minimize_to_tray
Me.WindowState = 0
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End Sub
O que tenho de mudar ?
Ola Tecla, eu baixei o codigo e funcionou perfeitamente.
Só não consegui entender com usar apensa 1 Clique para Maximixar o programa (o exemplo usa 2 cliques),
Ou então clicar com o botao direito e surgir um menu com outras oçcoes
Se nao for muito incomodo e voce souber por favor publique neste topico. Sou honesto em admitir que nao pesquisei outros codigo ja que este funciona bem. so falta estes pequenos recursos.
por isso que eu digo leia o código, veja
Cadast. em 11/03/2010
Mensagem interna
O Código é o seguinte :
Private Sub cmdconfirma_Click()
If txtnome.Text = [Ô]Hotel[Ô] And txtsenha.Text = [Ô]Caetano[Ô] Then
MsgBox [Ô]Senha Correcta[Ô], vbInformation, [Ô]Sessão Iniciada[Ô]
Iniciar.Hide
Inicio.Show
Else
MsgBox [Ô] A informação de acesso que introduziu não existe na nossa base de dados. Por favor, tente novamente[Ô], vbCritical, [Ô]ERRO[Ô]
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
txtnome.SetFocus
End If
End Sub
Private Sub cmdfinalizar_Click()
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Format(Time)
End Sub
[txt-color=#e80000]Private Sub Form_Unload(Cancel As Integer)
If MsgBox([Ô]Tem a certeza que pretende sair do Programa?[Ô], vbQuestion + vbYesNo, [Ô]Hotel Caetano[Ô]) <> vbYes Then
Cancel = True
End If
End Sub[/txt-color]
Private Sub Form_Load()
WebBrowser1.Navigate [Ô]C: empoagora.html[Ô]
End Sub
Dim nid As NOTIFYICONDATA
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon
nid.szTip = [Ô]Um titulo para o icone[Ô] & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Me.Show
Shell_NotifyIcon NIM_DELETE, nid
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
minimize_to_tray
Me.WindowState = 0
End If
End Sub
[txt-color=#e80000]Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End Sub[/txt-color]
então colega basta excluir esta ultima sub unload e alterar a primeira para
colega leia o código analize o que está fazendo
Cadast. em 11/03/2010
Mensagem interna
O Código é o seguinte :
Private Sub cmdconfirma_Click()
If txtnome.Text = [Ô]Hotel[Ô] And txtsenha.Text = [Ô]Caetano[Ô] Then
MsgBox [Ô]Senha Correcta[Ô], vbInformation, [Ô]Sessão Iniciada[Ô]
Iniciar.Hide
Inicio.Show
Else
MsgBox [Ô] A informação de acesso que introduziu não existe na nossa base de dados. Por favor, tente novamente[Ô], vbCritical, [Ô]ERRO[Ô]
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
txtnome.SetFocus
End If
End Sub
Private Sub cmdfinalizar_Click()
txtnome.Text = [Ô][Ô]
txtsenha.Text = [Ô][Ô]
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Format(Time)
End Sub
[txt-color=#e80000]Private Sub Form_Unload(Cancel As Integer)
If MsgBox([Ô]Tem a certeza que pretende sair do Programa?[Ô], vbQuestion + vbYesNo, [Ô]Hotel Caetano[Ô]) <> vbYes Then
Cancel = True
End If
End Sub[/txt-color]
Private Sub Form_Load()
WebBrowser1.Navigate [Ô]C: empoagora.html[Ô]
End Sub
Dim nid As NOTIFYICONDATA
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon
nid.szTip = [Ô]Um titulo para o icone[Ô] & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim msg As Long
Dim sFilter As String
msg = x / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Me.Show
Shell_NotifyIcon NIM_DELETE, nid
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
minimize_to_tray
Me.WindowState = 0
End If
End Sub
[txt-color=#e80000]Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End Sub[/txt-color]
então colega basta excluir esta ultima sub unload e alterar a primeira para
Private Sub Form_Unload(Cancel As Integer)
If MsgBox([Ô]Tem a certeza que pretende sair do Programa?[Ô], vbQuestion + vbYesNo, [Ô]Hotel Caetano[Ô]) <> vbYes Then
Cancel = True
End If
Shell_NotifyIcon NIM_DELETE, nid
End Sub
colega leia o código analize o que está fazendo
Tópico encerrado , respostas não são mais permitidas