Eli siis tässä on esimerkki miten lisätään kuva SystemTrayhin. Kuvekkaana toimii Form1.Icon. Luo formille neljä command buttonia.
Form
Option Explicit Private Sub Command1_Click() CreateIcon End Sub Private Sub Command2_Click() DeleteIcon End Sub Private Sub Command3_Click() ShowMessage "Tämä on esimerkki", "Esimerki", IconInfo End Sub Private Sub Command4_Click() HideMessage End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) X = X / Screen.TwipsPerPixelX Select Case X Case WM_RBUTTON Caption = "Oikea" Case WM_LBUTTON Caption = "Vasen" Case WM_RBUTTONDBLCLK Caption = "Oikea tupla" Case WM_LBUTTONDBLCLK Caption = "Vasen tupla" Case WM_MOUSEMOVE Caption = "Hiiri liikkui" End Select End Sub
Module
Option Explicit Public endb As Boolean Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long Public Type NOTIFYICONDATA cbSize As Long hWnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * 128 dwState As Long dwStateMask As Long szInfo As String * 256 uTimeout As Long szInfoTitle As String * 64 dwInfoFlags As Long End Type Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2 Private Const NIF_MESSAGE = &H1 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4 Private Const NIF_INFO = &H10 Private Const NIF_DOALL = NIF_MESSAGE Or NIF_ICON Or NIF_TIP Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206 Public Enum ttIconType NoIcon = 0 IconInfo = 1 IconWarning = 2 IconError = 3 End Enum Public Tic As NOTIFYICONDATA Public Sub CreateIcon() Tic.cbSize = Len(Tic) Tic.hWnd = Form1.hWnd Tic.uID = 1& Tic.uFlags = NIF_DOALL Tic.uCallbackMessage = WM_MOUSEMOVE Tic.hIcon = Form1.Icon Tic.szTip = "Esimerkki" & Chr$(0) Shell_NotifyIcon NIM_ADD, Tic End Sub Public Sub DeleteIcon() Dim Tic As NOTIFYICONDATA Tic.cbSize = Len(Tic) Tic.hWnd = Form1.hWnd Tic.uID = 1& Shell_NotifyIcon NIM_DELETE, Tic End Sub Public Sub ShowMessage(Message As String, Title As String, Icon As ttIconType) Dim lTipStyle As Long lTipStyle = NIF_ICON Or NIF_MESSAGE Or NIF_TIP lTipStyle = lTipStyle Or NIF_INFO Tic.uFlags = lTipStyle Tic.szInfo = Message & Chr(0) Tic.szInfoTitle = Title & Chr(0) Tic.dwInfoFlags = Icon Shell_NotifyIcon NIM_MODIFY, Tic End Sub Public Sub HideMessage() Tic.szInfo = "" & Chr(0) Tic.szInfoTitle = "" & Chr(0) Shell_NotifyIcon NIM_MODIFY, Tic End Sub
Vihdoinkin tämmöinen! Olen odottanutkin! :) Koitan vähän myöhemmin..
Aika tyhmä kun tämmöstä pientä juttua varten pitää olla ihan hirveesti koodia
Iha hyvä! Tommost oon ettinyki pari vuotta...
Tosi hyvä!
Jee vähä hyvä mut tota...miten sais tohon jonku valikon siis ku tuolt systeemitraysta painaa hiiren oikeel korval ni et tulis joku valikko tai ees joku msgboxi tulis...
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
VB:ni valittaa tuosta koodista
lainaus:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
VB:ni valittaa tuosta koodista
Sama täälä... Käytössä VB6
voisko saada . net version
Hiano on!
EDIT: Saako tota käyttää suoraa omis ohjelmis vai pitääkö muokkaa? Epäilen ettei tarvitse muokata kun on ihan api:n perusjuttuja...
Compile error: Variable not defined
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
WM_RBUTTON
Miten tuolla formissa olevat
Case WM_RBUTTON Caption = "Oikea" Case WM_LBUTTON Caption = "Vasen"
systeemit muka pitäis toimia??
Modulissa ei ole nimittäin määritelty ollenkaan tuommosia...
Siis kyllähän ne saa toimimaan kun laittaa, mutta...
Miten saadaan laitettua niin, että sitten kun painaa SystemTray kuvaketta niin tapahtuu jotakin?
AdeRide: noin, vaihdat vain noihin Caption = "..." sen koodin mitä haluat tapahtuvan,
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) X = X / Screen.TwipsPerPixelX Select Case X Case WM_RBUTTON Caption = "Oikea" Case WM_LBUTTON Caption = "Vasen" Case WM_RBUTTONDBLCLK Caption = "Oikea tupla" Case WM_LBUTTONDBLCLK Caption = "Vasen tupla" Case WM_MOUSEMOVE Caption = "Hiiri liikkui" End Select End Sub
Mutta voisiko joku valaista että mitä tekemistä hiiren X koordinaatilla on noiden hiirenpainallusten yms. kanssa?
Ei vaan jotenkin mahdu kalloon....
Jos teillä tulee virheilmoitus:
Compile error: Variable not defined
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
tai jotain tuommoista vaihtakaa
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) X = X / Screen.TwipsPerPixelX Select Case X Case WM_RBUTTON Caption = "Oikea" Case WM_LBUTTON Caption = "Vasen" Case WM_RBUTTONDBLCLK Caption = "Oikea tupla" Case WM_LBUTTONDBLCLK Caption = "Vasen tupla" Case WM_MOUSEMOVE Caption = "Hiiri liikkui" End Select End Sub
täksi:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) X = X / Screen.TwipsPerPixelX Select Case X Case WM_RBUTTONDOWN Caption = "Oikea" Case WM_LBUTTONDOWN Caption = "Vasen" Case WM_RBUTTONDBLCLK Caption = "Oikea tupla" Case WM_LBUTTONDBLCLK Caption = "Vasen tupla" Case WM_MOUSEMOVE Caption = "Hiiri liikkui" End Select End Sub
Jos sinulla on hiiri jossa on vieritysnappi, vaihda moduulin tämä osa:
Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206
täksi:
Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206 Public Const WM_SCROLLCLICK = &H207
niin saat skrollausnappiklikin. Se toimii WM_SCROLLCLICKillä. Toivottavasti tästä on apua. :)
BASIC 6.0: tai sitten laittaa kummatkin toimimaan :o
----------------------------------
http://www.xtremevbtalk.com/showthread.php?t=11582
Mulla olis myös jossain koodi, jolla saa valikonkin sinne.
Aihe on jo aika vanha, joten et voi enää vastata siihen.