|
Mostrar Mensajes
|
Páginas: 1 2 3 4 5 6 7 [8] 9
|
71
|
Programación / Programación Visual Basic / Re: Problema con .SetFocus en VB6
|
en: 20 Junio 2008, 21:30 pm
|
Exacto !! Gracias por la respuesta Cobein. Rápida, sencilla y eficaz.
Me ha puesto el cursor en el textbox a la primera, y se puede escribir.
Me pregunto si será por eso de que cuando ejecutas el form_load() todavía no se han cargado los objetos y el form_activate se inicia cuando ya están todos los objetos (cmd, txtbox, combo, ...) cargados.
De ahora en adelante usaré el form_activate si no es en algún caso especial que quiera usar el form_load ahora que entiendo más o menos como va el asunto.
Muy interesante, de nuevo, gracias.
Salu10 !!
|
|
|
72
|
Programación / Programación Visual Basic / Problema con .SetFocus en VB6
|
en: 20 Junio 2008, 21:17 pm
|
El problema es que quiero que cuando el programa abra un pequeño form para insertar una contraseña, el cursor (el foco) se instale en el textbox para insertar el pass.
He intentado poniendo txtPass.SetFocus en el Form_load y me salta "llamada a procedimientos o argumentos no válidos". Se me ocurre que podría ser porque el textbox o el form en sí no está cargado aún y no se puede aplicar el SetFocus, es decir que das la orden de establecer foco a un objeto que todavía no se ha creado y que se creará cuando finalize el form_load. Quiero decir que podría ser porque está antes de las lineas de crear el form, el textbox y eso, aunque no se vea, claro. Algo así:
Private Sub Form_load() txtPass.SetFocus [lineas que no se ven y que son las que crean el form o los objetos en dicho form] End Sub
He intentado con la propiedad Tab en el Form poniendola a 1 o a 0 pero nada, y el default tampoco se puede poner aunque lo tengo en un command, para que introduzca el pass al darle al enter.
La idea es simplificar el trabajo haciendo que el cursor se ponga en el textbox para así escribir directamente la clave (sin llevar el cursor con el ratón) y luego al darle al enter que siga a delante.
Se me ocurre insertar un timer en el form_load con unos milisegundos y después llamar al setfocus desde el timer aunque sería un poco chapuza no??
Que alguien me ayude a solucionar esta chorradilla!!
benga foro.fos
|
|
|
73
|
Programación / Programación Visual Basic / Problema con .SetFocus en VB6
|
en: 20 Junio 2008, 21:10 pm
|
El problema es que quiero que cuando el programa abra un pequeño form para insertar una contraseña, el cursor (el foco) se instale en el textbox para insertar el pass.
He intentado poniendo txtPass.SetFocus en el Form_load y me salta "llamada a procedimientos o argumentos no válidos". Se me ocurre que podría ser porque el textbox o el form en sí no está cargado aún y no se puede aplicar el SetFocus, es decir que das la orden de establecer foco a un objeto que todavía no se ha creado y que se creará cuando finalize el form_load. Quiero decir que podría ser porque está antes de las lineas de crear el form, el textbox y eso, aunque no se vea, claro. Algo así:
Private Sub Form_load() txtPass.SetFocus [lineas que no se ven y que son las que crean el form o los objetos en dicho form] End Sub
He intentado con la propiedad Tab en el Form poniendola a 1 o a 0 pero nada, y el default tampoco se puede poner aunque lo tengo en un command, para que introduzca el pass al darle al enter.
La idea es simplificar el trabajo haciendo que el cursor se ponga en el textbox para así escribir directamente la clave (sin llevar el cursor con el ratón) y luego al darle al enter que siga a delante.
Se me ocurre insertar un timer en el form_load con unos milisegundos y después llamar al setfocus desde el timer aunque sería un poco chapuza no??
Que alguien me ayude a solucionar esta chorradilla!!
benga foro.fos
|
|
|
74
|
Programación / Programación Visual Basic / Re: Como ocultar el raton del todo
|
en: 10 Junio 2008, 16:22 pm
|
Yo uso la clase cCursor para hacer los rollos del cursor, es mucho más limpio y no tienes porque hacer chapucillas de maximizar y hacer transparente y demás. Te da varias opciones como conseguir las coordenadas del cursor, establecerlo en unas coordenadas concretas, encima de un command, restringirlo a un area concreta, a un textbox... y por supuesto hacer desaperecer el cursor. Yo tengo una funcion creada (de esas miscellaneous (= muy friki)) que lo que hace es cargar una imagen en una esquina de la pantalla que tiene fondo de cárcel y meter el cursor ahí, aunque te esfuerzes moviendo el ratón lo que quieras el cursor no sale de donde está . Os dejo el codigo de la clase, ya sabéis en la ventanita de proyectos de la derecha, arriba klik derecho y agregar una clase, luego pegáis el código. ' -- X (Get/Let): Situa el cursor en la posición X ' -- Y (Get/Let): Situa el cursor en la posición Y ' -- Colocar: Pone el cursor en el centro de un control. ' -- Restringir: Restringir el cursor a un área determinada.
Option Explicit DefLng A-Z
Private Type POINTAPI x As Long y As Long End Type Private Type RECT Izquierda As Long Arriba As Long Derecha As Long Abajo As Long End Type
Private CurVisible As Boolean Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Private Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
Public Property Get x() As Long
Dim tmpPoint As POINTAPI Call GetCursorPos(tmpPoint) x = tmpPoint.x
End Property
Public Property Let x(ByVal vNewValue As Long)
Call SetCursorPos(vNewValue, y)
End Property
Public Property Get y() As Long
Dim tmpPoint As POINTAPI Call GetCursorPos(tmpPoint) y = tmpPoint.y
End Property
Public Property Let y(ByVal vNewValue As Long)
Call SetCursorPos(x, vNewValue)
End Property
Public Sub Colocar(ctl As Control)
'envía el cursor al centro del control indicado.
Dim pnt As POINTAPI Dim xx As Long Dim yy As Long
pnt.x = pnt.y = 0 'Obtener coordenadas Izquierda-Arriba de la esquina del control Call ClientToScreen(ctl.hwnd, pnt) xx = pnt.x + (ctl.Width \ 2) yy = pnt.y + (ctl.Height \ 2) Call SetCursorPos(xx, yy)
End Sub
Public Sub Restringir(ToCtl As Object)
Dim tmpRect As RECT Dim pt As POINTAPI
With ToCtl
If TypeOf ToCtl Is Form Then pt.x = 0 pt.y = 0 Call ClientToScreen(.hwnd, pt) tmpRect.Izquierda = pt.x tmpRect.Arriba = pt.y pt.x = FrmJail.Width pt.y = FrmJail.Height Call ClientToScreen(.hwnd, pt) tmpRect.Derecha = pt.x tmpRect.Abajo = pt.y ElseIf TypeOf ToCtl Is Screen Then tmpRect.Izquierda = 0 tmpRect.Arriba = 0 tmpRect.Derecha = (.Width \ Screen.TwipsPerPixelX) tmpRect.Abajo = (.Height \ Screen.TwipsPerPixelY) Else pt.x = 0 pt.y = 0 Call ClientToScreen(.hwnd, pt) tmpRect.Izquierda = pt.x tmpRect.Arriba = pt.y pt.x = .Width pt.y = .Height Call ClientToScreen(.hwnd, pt) tmpRect.Abajo = pt.y tmpRect.Derecha = pt.x End If Call ClipCursor(tmpRect)
End With
End Sub
Private Sub Class_Initialize()
CurVisible = True
End Sub
Public Property Get Visible() As Boolean
Visible = CurVisible
End Property
Public Property Let Visible(ByVal vNewValue As Boolean)
CurVisible = vNewValue Call ShowCursor(CurVisible)
End Property
en general yo creo que se entiende y es fácil de usar. Lo único usa la misma función para hacer que el cursor no se vea, el "ShowCursor" puede que te siga sin funcionar. Salu10
|
|
|
75
|
Programación / Programación Visual Basic / codec SSCV2 que comprime asako las imagenes, ideal para Captura de pantalla
|
en: 9 Junio 2008, 20:25 pm
|
El asunto es que he encontrado un programilla que sirve para hacer videos capturando la pantalla (hay muchos por ahí), pero como explican en su web [ http://www.screen-record.com/SSCV2.htm] no usa codecs avi, mpeg ni nada que pesan mogollón al crear videos de la pantalla. Usa un codec creado por los desarrolladores de dicho programa que según explican mantiene muy bien el texto y al mismo tiempo tiene una buena calidad de imagen. Lo peculiar, por lo menos yo nunca lo había visto, es que te crea un archivo .exe en vez de usar un formato de video y es ejecutable en TODOS los windows. El programa es "Screen2exe". Si no lo conocéis os recomiendo que lo bajéis y hagas una prueba. http://www.screen-record.com/dl/SCREXESetup.exeYo creo que ese codec sería ideal para implementarlo (no se cómo) al VB6 y crear una captura de pantalla muuuuuuy buena. Si alguien sabe cómo se podría conseguir ese codec o como hace el prgrama para crear un video en .exe o que sepa algo pues ya sabe, a compartir... Igual es un codec que te lo venden por millones, pero por aquí fijo que hay peña que lo saca Insisto descargar el programa y grabar un par de minutos, si no anda el link buscar en google que aparecen 200 links para descargar. Salu10
|
|
|
76
|
Programación / Programación Visual Basic / Connection refused - Conexión rechazada
|
en: 5 Junio 2008, 14:38 pm
|
Hola foro-fos:
Mi problema es que cuando intento conectarme a mi server local (un programa server-cliente que he hecho yo) desde otro ordenador en LAN me da el error 10061 creo que es Connection refused.
Tengo un portátil donde pongo el cliente y un ordenador grande donde pongo el server local (no tiene reverse-connection, se pone a la escucha el server y espera a que el cliente se conecte, es para que yo me pueda conectar a mi ordenador de donde sea, con no-ip en el ordenador de sobremesa). El problema es que me rechaza la conexión. He hecho varias pruebas y el programa en sí creo que está bien, poniendo el cliente y el servidor los dos en cualquiera de los ordenadores se conecta y te deja usar todas las funciones, en LAN (usando las direcciones 192.168.1.xxx) me deja conectarme al portátil desde el grande (teniendo el localserver en el portátil) pero no al revés (el pequeño no le puede al grande, jeje). En resumen. Puedo conectarme sin salir a internet (+ o - puedo, me da también connection refused al intentar conectarme al grande desde el portatil) pero no puedo conectarme a mi ordenador de sobremesa desde internet (fuera mi propia red, desde la red de redes) que es lo que quiero yo. El error que da es ese de rechazo de la conexión y por lo que dicen en MSDN es porque el ordenador rechaza activamente la conexion entrante, a causa de que no hay ningun programa, servicio, proceso que "se haga cargo de ello" (es lo que he entendido). Como he dicho el programa creo que está bien, tiene el sub accept connection request bien, el puerto está bien configurado, etc. No tengo firewall instalado ni tampoco está activado el de windows (aunque creo que tengo todavía el zone alarm instalado porque no lo puedo quitar, tampoco se pueden borrar los archivos en "archivos de programa") pero puede que no sea ese el problema porque el antivirus en sí no funciona, el proceso zalarm.exe (creo q era) no corre. Aparte de todo eso tengo la venda en el emule y como he dicho tengo los puertos abiertos (router Xavi de telefonica, me meti en la pagina de configuración, add reserved mapping, abrí los puertos uno a uno, guardé y reinicié) y antes no tenía ID baja y podia también conectarme al ordenador de sobremesa desde el portátil y no sólo al revés. Creo que el problema está en este ordenador (el grande) porque además el emule también va bien en el portátil. Un último detalle el portátil usa vista pero eso creo que no es ninguna traba para la conexión porque desde el grande (XP) me conecto al Vista...
Espero que entendáis la situación (he intentado dar la información más relevante) y me ayudéis a resolver el problema, aunque sea el del emule pero me temo que va de lo mismo...
Gracias de antemano y felicidades por el foro !!
|
|
|
77
|
Programación / Programación Visual Basic / Re: aplicación cliente-servidor
|
en: 5 Abril 2008, 01:39 am
|
Para ver la pantalla del ordenador remotamente puedes usar la clase cJPEG: 'Al principio del Sub DataArrival (antes que el case) declaramos .GetData datos (por cierto hay API para el winsock, sino vais a depender de la .ocx)
' Después de agregar la clase cJPEG al proyecto lo podremos declarar con el nombre que queramos (en nuestro caso Captura)
' La clase cJPEG nos da varias opciones sobre cómo guardar el archivo JPEG (darle un vistazo al codigo de la clase, es una movida pero te haces una idea de todo lo que se hace para crear un .jpeg)
Case "037" 'Captura Dim Captura As New cJpeg Dim Captura As Integer3
datos = Mid(datos, 4) Calidad = Left(datuk, 2) Nungorde = Mid(datuk, 3) Captura.SetSamplingFrequencies 2, 2, 2, 2, 2, 2 'Esto lo dejamos así, creo que tiene que ver con el contraste y otros parámetros Captura.Quality = Calidadi ' Es la calidad entre 0 y 100 con 20-30 la imagen ocupa poco y se pueden leer las letras al capturar pantalla pero la calidad no es buena, 50 está bien. Por encima de los 80 la imagen esta sobrada, la calidad es excelente, aunque como no, ocupa más) Captura.SampleScreen 'Es la función que captura la imagen de pantalla Captura.SaveFile (Path) 'Guarda la imagen (de la memoria) a la ruta que pongas (en el disco duro) GoTo Reset
Insertando eso en el server ya puedes guardar la imagen en el disco duro remoto, ahora lo que tienes que hacer es conseguir que vaya haciendo capturas continuamente y mandándolas al cliente. (por ejemplo cuando termine de guardar una imagen que llame otra vez a la función de crear otra) pero eso lo puedes ir investigando tú... usa el ingenio y no pares de buscar y curiosear Salu10 GuReA
|
|
|
78
|
Programación / Programación Visual Basic / Re: Módulos interesantes (manejo de ficheros, de texto, de gráficos.....)
|
en: 29 Marzo 2008, 02:22 am
|
Yo tampoco creo que sea un mal aporte. No está mal tener un tocho de funciones igual para hacer alguna cosilla rara, hay bastantes funciones para manejar texto, archivos, .. no tienes porque agregarlo todo. Aunque no vayas a usarlas sabes que están aqui y si ves que te detectan alguna función de las simples pues.. a saco a la API. Insisto no me parece que haya sido una tonteria postearlas aunque también estoy de acuerdo en que no vale para nada encontrar todas las versiones del kernel de linux y postearlas en este foro, no es que seamos la p**a polla en programación (PPP... podríamos serlo ). Respecto a la amplitud del texto, yo no he tenido ningun problema en verlo (dos veces se ha parao durante 2 segundos) y tengo el firefox (2. y piko) aunque estaría bien que lo pusieras en un .doc (un .pdf sería mucho pedir) y lo pusieras en algun lao como link de descarga. Salu10 !!
|
|
|
80
|
Programación / Programación Visual Basic / Re: Text-to-Speech en troyano hecho en VB
|
en: 28 Marzo 2008, 01:52 am
|
Tienes razon son 16 bytes los que hay que añadir de cabezera. El formulario Jail sirve para encerrar el cursor en esa franga, la clase cCursor da la posibilidad de limitar el cursor a un trozo de la pantalla, sea algun boton, imagen o lo que sea, y se me ocurrió hacer ese form para encerrarlo. Se usa en Fun dandole al "entzerra" que significa encerrar (el cursor) y libra que es liberar para dejarlo como estaba. Puedes darle tambien a proba que lo que hace es encerrarlo durante un tiempo para que se vea de que va. Si no se entiende alguna otra cosa decirlo, en general es bastante intuitivo lo que significa cada cosa, algún dia de estos igual le agrego más idiomas aunque no sé como hacerlo, sé que se necesitan ficheros aparte o algo no?? (hombre igual se podría hacer que un botón cambie todos los labels de todos los forms pero sería chapucero) si alguien lo sabe hacer, se admiten ideas
|
|
|
|
|
|
|