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 Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.