Elikkäs kuinka saan joka tunti kuulumaan beep. Ja sit sen kuvan sais tonne mis toi kello on.
joka tunti saat kuuluumaan beep helposti:
alku = TIMER
DO
if timer - alku > 3600 THEN alku = TIMER: beep
DoEvents
LOOP
Siis sais minkä kuvan sinne?
Taitaa Jarkko meinata että miten saa pienennettyy ohjelman järjestelmäpalkkiin(SysTray).
Samaa on tullut itsekkin mietittyä???
Muutamalla API-kutsulla hoituu.. kai joku voisi tuostakin vääntää koodivinkin.
Ootko HtH varma et toi on VB:lle. Ei nimitäin toimi.
Muuten se toimii, mutta tuo komento "beep" ei näy oikein toimivan kaikilla koneilla tai jotain. Kokeile vaikka vaihtaa tuon beep komennon tilalle jotain muuta niin näet koodin toimivan täysin oikein.
Kannattaa katsoa tieto noista API-kutsuista vaikka osoitteesta http://www.allapi.net/ tai no pitäisi VB:n mukanakin tulla jotain tieto noista.
Tuo beep ei toimi välttämättä sen takia jos tuo ääni tulee piipperistä. Ainakin QB:ssä beep komento tuottaa äänen piipperistä.
Kyl mun piipperi toimii. Ja on toi beep käsky ennen toiminu.
Tässä toimiva lähdekoodi, joka toimii VB:käyttäen yhtä form-objektia (Form1) ja Timer-objektia (Timer1).
Form-objekti menee piiloon Form_Load eventissä komennolla Me.Hide
SysTray ikonin eventit ovat Form_MouseMove eventissä (poista kommentit niin saat lomakkeen tulemaan esiin kaksois-näpäytyksellä)
Private iCnt
Private 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
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203 'Double-click
Private Const WM_LBUTTONDOWN = &H201 'Button down
Private Const WM_LBUTTONUP = &H202 'Button up
Private Const WM_RBUTTONDBLCLK = &H206 'Double-click
Private Const WM_RBUTTONDOWN = &H204 'Button down
Private Const WM_RBUTTONUP = &H205 'Button up
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim nid As NOTIFYICONDATA
Private Sub Form_Load()
Timer1.Interval = 1000
If App.PrevInstance = False Then
nid.cbSize = Len(nid)
nid.hwnd = Form1.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Form1.Icon
nid.szTip = "Ohjelma" & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End If
bRState = False
Me.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Ok now this is the time to remove the icon from systray
Shell_NotifyIcon NIM_DELETE, nid
End
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMsg As Long
Dim sFilter As String
lMsg = X / Screen.TwipsPerPixelX
Select Case lMsg
'you can play with other events as I did as per your use
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
'Form1.WindowState = vbNormal
'Form1.Show
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Case WM_RBUTTONDBLCLK
End Select
End Sub
Private Sub Timer1_Timer()
If iCnt = 60 * 60 Then
iCnt = 0
Beep
Else
iCnt = iCnt + 1
End If
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.