Autor
|
Tema: [Solucionado] Alguna Alternativa de hWnd para del Timer (1 Modulo SIN FORM) (Leído 4,356 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Bueno la pregunta es como generar un timer pero en un modulo o modulo de clase ojo en base a apis pero SIN el hwnd de un formulario es decir solo tengo el modulo y nada mas nada extra solo un modulo con funciones y un timer hecho en API pero no funciona de hecho intente tomar el hwnd de otro lado como el escritorio y nada xP en si el codigo del Timer API es este : Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long sub main() SetTimer V.hwnd, 0, 2000, AddressOf TimerProc end sub Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) 'Procesos End Sub
Bueno en si como le hago para generar un hwnd pero sin tomarlo de un formulario esa es mi gran dudo creo que si se puede pero como ¬¬" a y como cancelar el termino de mi proceso es decir que siga corriendo o en espera pero con el timer activo xP son solo dos dudas que traigo ensima en mi segunda duda puse un sub main() SetTimer V.hwnd, 0, 2000, AddressOf TimerProc do doEvents loop end sub
Pero gasta el procesador como demonio ¬¬" bueno alguien tiene algunas pistas o soluciones por hay xD gracias de antemano Dulces Lunas.
|
|
« Última modificación: 10 Febrero 2009, 04:28 am por ░▒▓BlackZeroҖ▓▒░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Lambda
|
necesitas tener un HWND y en el caso de que no lo especifiques tomara el de la ventana del thread actual, mas que nada lo necesitas por que esa ventana necesita procesar el mensaje WM_TIMER
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
No es necesario pasarle un Handle, puedes simplemente pasarle como handle el 0, pero si lo prefieres puedes crear una ventana con el CreateWindowEx Saludos
|
|
|
En línea
|
|
|
|
LeandroA
|
Hola este es con CreateWindowEx y utiliza WaitMessage para que el bucle no se coma el procesador Option Explicit
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function WaitMessage Lib "user32" () As Long
Dim bEndLopp As Boolean Dim Counter As Long Sub main() Dim mWnd As Long mWnd = CreateWindowEx(0, "STATIC", "", 0, 0, 0, 0, 0, 0, 0, App.hInstance, 0&) SetTimer mWnd, 0, 1000, AddressOf TimerProc Do While bEndLopp = False DoEvents WaitMessage Loop KillTimer mWnd, 0 DestroyWindow mWnd End Sub Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Counter = Counter + 1 Debug.Print Counter If Counter = 10 Then bEndLopp = True End If End Sub
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Hola este es con CreateWindowEx y utiliza WaitMessage para que el bucle no se coma el procesador Option Explicit
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function WaitMessage Lib "user32" () As Long
Dim bEndLopp As Boolean Dim Counter As Long Sub main() Dim mWnd As Long mWnd = CreateWindowEx(0, "STATIC", "", 0, 0, 0, 0, 0, 0, 0, App.hInstance, 0&) SetTimer mWnd, 0, 1000, AddressOf TimerProc Do While bEndLopp = False DoEvents WaitMessage Loop KillTimer mWnd, 0 DestroyWindow mWnd End Sub Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Counter = Counter + 1 Debug.Print Counter If Counter = 10 Then bEndLopp = True End If End Sub
o este ultimo esta genial gracias, aun que si te digo que me hubieras hecho pensar pero igual gracias. Dulces Lunas
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
obtener el hwnd de un programa sin form
« 1 2 »
Programación Visual Basic
|
x64core
|
14
|
7,070
|
28 Agosto 2011, 19:40 pm
por Hasseds
|
|
|
(Medio solucionado xD) [Ruby]Comprobar si un archivo está abierto por un proceso
Scripting
|
Eleкtro
|
2
|
2,939
|
3 Marzo 2012, 06:50 am
por Eleкtro
|
|
|
alguna alternativa a backup extractor para windows (solucionado)
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
Marmol
|
0
|
2,732
|
8 Marzo 2012, 14:49 pm
por Marmol
|
|
|
Activar timer del form FUERA DEL FORM...
Programación Visual Basic
|
TheJucas21
|
2
|
2,296
|
29 Junio 2014, 22:38 pm
por FacuM
|
|
|
alguna alternativa a ilmerge pero para c++?
Programación C/C++
|
Borito30
|
3
|
2,150
|
15 Enero 2018, 21:12 pm
por kub0x
|
|