[ acatheking @ 27.09.2003. 18:32 ] @
Postoji li neka funkcija u VB koja bi na odredjeno vreme pauzirala izvrsavanje programa? |
[ acatheking @ 27.09.2003. 18:32 ] @
[ mladenovicz @ 27.09.2003. 20:12 ] @
Stavi ovaj kod u modul
Code: Option Explicit Public Type POINTAPI X As Long Y As Long End Type Public Type msg hWnd As Long Message As Long wParam As Long lParam As Long time As Long Pt As POINTAPI End Type Private Const QS_HOTKEY = &H80 Private Const QS_MOUSEBUTTON = &H4 Private Const QS_MOUSEMOVE = &H2 Private Const QS_KEY = &H1 Private Const QS_PAINT = &H20 Private Const QS_POSTMESSAGE = &H8 Private Const QS_SENDMESSAGE = &H40 Private Const QS_TIMER = &H10 Private Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON) Private Const QS_INPUT = (QS_MOUSE Or QS_KEY) Private Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY) Private Const QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY) Private Const WAIT_OBJECT_0 = 0 Private Const WAIT_TIMEOUT = &H102 Private Const WAIT_ABANDONED_0 = &H80 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function SetEvent Lib "kernel32" (ByVal hEvent As Long) As Long Private Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long Private Declare Function MsgWaitForMultipleObjects Lib "user32" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long Private Declare Function TranslateMessage Lib "user32" (lpMsg As msg) As Long Private Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As msg) As Long Public Function ProcessMessages() As Long Dim M As msg Dim NumMsg As Long NumMsg = PeekMessage(M, 0, 0, 0, 1) If NumMsg Then Call TranslateMessage(M) Call DispatchMessage(M) End If ProcessMessages = NumMsg End Function Public Function Wait(Milliseconds As Long) As Boolean Dim Evt As Long Dim res As Long Dim Start As Long Evt = CreateEvent(0, 1, 0, vbNullString) Call ResetEvent(Evt) Start = GetTickCount Do res = MsgWaitForMultipleObjects(1, Evt, False, Milliseconds, QS_ALLINPUT) ProcessMessages If res = WAIT_TIMEOUT Then res = 0 ' EXIT FUNCTION, RETURN FALSE!!!! ElseIf res = 0 Then Wait = True Else If GetTickCount - Start >= Milliseconds Then res = 0 End If Loop While res > 0 Call ResetEvent(Evt) Call CloseHandle(Evt) End Function i pozovi Wait sa brojem milisekundi [ MHN @ 27.09.2003. 21:21 ] @
U modul postavi
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) i poslije pozovi SLEEP i postavi na koliko hoces milisekundi [ acatheking @ 28.09.2003. 21:43 ] @
Citat: U modul postavi Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) gde tacno treba ubaciti tu liniju koda i da bih kasnije mogao da pozivam tu funkciju? [ Shadowed @ 28.09.2003. 22:15 ] @
Pa... tacno u modul. Napravis modul i na pocetku upises to i... to je sve.
[ acatheking @ 28.09.2003. 22:53 ] @
ok. to je to!
[ Zglob @ 29.09.2003. 18:02 ] @
Moze i ovako bez API-ja(ali ovo nije pauza u izvrsenju programa, nego samo pauza u izvrsenju 'odredjenog koda'):
1. napravis tajmer 2. podesis interval na koliko ti treba 3. ukucas sledeci kod u tajmerovu proceduru: timer1=false 'odredjeni kod' 4. kad zelis da napravis pauzu i posle pauze izvrsis 'odredjeni kod' samo otkucaj: timer1=true [ mladenovicz @ 29.09.2003. 19:00 ] @
Da, ali ako posle timer1=true imas neki kod on ce se izvrsavati jer timer radi asinhrono.
offtopic: Uzasno me nervira kad vidim Code: timer1=True umesto Code: timer1.Enabled=True odnosno koriscenje default propertya kontrola. Zato mi se svidja VB.NET ![]() [ commando @ 28.01.2006. 16:28 ] @
Kako napraviti vremensku pauzu, koja stopira HTML stranu. Primer 10 sekundi ali u VBScript-u.
[ dava @ 30.01.2006. 14:40 ] @
Ljudi jedno pitanje:
Jednostavan kod: u modulu stoji: Code: Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) u formi Code: Private Sub Command1_Click() Label1.Caption = "dobar dan" Sleep 3000 Label1.Caption = "aj zdravo" End Sub Klikom na command1 se nakon 3s pojavi "aj zdravo", prije toga se nista ne pojavljuje (ocekivao sam "dobar dan"). Kako da se pojavi prvo "dobar dan" pa nakon 3s "aj zdravo"? [Ovu poruku je menjao dava dana 30.01.2006. u 15:43 GMT+1] [ vcorleone @ 30.01.2006. 16:18 ] @
Label1 promeni Caption svojstvo pre pozivanja Sleep procedure ali ga ne osveži.
Probaj ovo. Code: Private Sub Command1_Click() Label1.Caption = "dobar dan" Label1.Refresh Sleep 3000 Label1.Caption = "aj zdravo" End Sub [ fLuXx @ 30.01.2006. 23:04 ] @
Probaj
Code: Label1.Caption = "dobar dan" DoEvents Sleep 3000 Label1.Caption = "aj zdravo" [Ovu poruku je menjao fLuXx dana 31.01.2006. u 00:04 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|