Autor
|
Tema: [MINI SOURCE]Cambiar el nombre a una ventana (Leído 5,693 veces)
|
fary
|
Hola gente esta tarde me aburria y m e puesto a hacer este pequeño code, cirve para cambiarle el texto a una ventana. Usa dos Apis Findwindow para recuperar el handle de la ventana y Setwindowtext para cambiar el nombre. Si mas que hablar les dejo el code.. Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" ( _ ByVal hwnd As Long, _ ByVal lpString As String) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Sub Command1_Click() Dim drinky As String, handle As long handle = FindWindow(vbNullString, "Calculadora") drinky = SetWindowText(handle, "Drinky94 ;)") End Sub
Nos vemos... Salu2!
|
|
« Última modificación: 28 Febrero 2010, 21:18 pm por Drinky94 »
|
En línea
|
Un byte a la izquierda.
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Una muestra con SendMessageW() + WM_SETTEXT'USER32 Private Declare Function SendMessageW Lib "USER32" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long Private Const WM_SETTEXT As Long = &HC Public Function SetText(ByVal lHwnd As Long, ByVal sCaption As String) As Boolean SetText = CBool(SendMessageW(lHwnd, WM_SETTEXT, ByVal 0&, ByVal StrPtr(sCaption))) End Function
Call SetText(Form1.hwnd, "WM_SETTEXT")
|
|
|
En línea
|
|
|
|
Hasseds
Desconectado
Mensajes: 145
|
Drinky, la variable handle no es string, es long, S2
|
|
|
En línea
|
Sergio Desanti
|
|
|
fary
|
Drinky, la variable handle no es string, es long, S2 Cierto... cuando llebas razon llebas razon salu2!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Cierto... cuando llebas razon llebas razon Lle vas* No pretendo ser grosero, solo es que me duelen los ojos...
|
|
|
En línea
|
|
|
|
fary
|
Cierto... cuando llebas razon llebas razon Lle vas* No pretendo ser grosero, solo es que me duelen los ojos...Tampoco me anden con finerias xD que eso ya sique es ganas de acer el tonto xD salu2!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Tampoco me anden con finerias xD que eso ya sique es ganas de acer el tonto xD
hacer* Es importante escribir bien, no es ninguna fineria... no poner acentos y tal aún, pero hay fallos graves...
|
|
|
En línea
|
|
|
|
fary
|
Tampoco me anden con finerias xD que eso ya sique es ganas de acer el tonto xD
hacer* Es importante escribir bien, no es ninguna fineria... no poner acentos y tal aún, pero hay fallos graves... Pero tio no me vengas con estas que la mitad del foro ace esto xD y solo me lo decis a mi!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
Hasseds
Desconectado
Mensajes: 145
|
Dinky, solo son errores que si no lo cometes es mejor, por ejemplo (ya te lo habia dicho en otro post) usas mal FindWindow handle = FindWindow (vbNullString, "Calculadora")' solo para un windows en castellano handle = FindWindow("SciCalc", vbNullString) ' para windows con cualquier idioma No te enojes, que tal si Clausuramos esa calculadora ??? Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private Sub Command1_Click() Call EnableWindow(FindWindow("SciCalc", vbNullString), 1) End Sub
Private Sub Form_Load() Shell "calc" Dim handle As Long handle = FindWindow("SciCalc", vbNullString) Call SendMessage(handle, &HC, 0, ByVal "CLAUSURADO") Call EnableWindow(handle, 0) Dim handle2 As Long handle2 = FindWindowEx(handle, 0, "Edit", vbNullString) Call SendMessage(handle2, &HC, 0, ByVal "POR EH") End Sub
|
|
|
En línea
|
Sergio Desanti
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Dinky, solo son errores que si no lo cometes es mejor, por ejemplo (ya te lo habia dicho en otro post) usas mal FindWindow handle = FindWindow (vbNullString, "Calculadora")' solo para un windows en castellano handle = FindWindow("SciCalc", vbNullString) ' para windows con cualquier idioma No te enojes, que tal si Clausuramos esa calculadora ??? Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private Sub Command1_Click() Call EnableWindow(FindWindow("SciCalc", vbNullString), 1) End Sub
Private Sub Form_Load() Shell "calc" Dim handle As Long handle = FindWindow("SciCalc", vbNullString) Call SendMessage(handle, &HC, 0, ByVal "CLAUSURADO") Call EnableWindow(handle, 0) Dim handle2 As Long handle2 = FindWindowEx(handle, 0, "Edit", vbNullString) Call SendMessage(handle2, &HC, 0, ByVal "POR EH") End Sub
Ese código esta mal, en primera no debe pasarse una api que devuelve cosas inestables directamente en otra en este caso findwindow dentro de Enablewindow NI TAMPOCO directamente pasar el handle devuelto, directamente a procesar en la siguiente linea. En pocas palabras debe verificarse que se a obtenido lo deseado y evitar jaladas de pelos posteriores. P.D.: No es necesario que Drinky use a huevo findwindow pero con la clase de ventana... así que... dejen que aprende a su modo, tampoco es de recalcarse lo en cada post... Sangrientas Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
|