|
53
|
Programación / Programación Visual Basic / Re: 'Bloquear' el ratón
|
en: 29 Julio 2006, 18:38 pm
|
Buen aporte. ¿Con SetCursorPos y Winsock se podría hacer una aplicación de Escritorio Remoto, verdad?
Si mira http://foro.elhacker.net/index.php/topic,57545.480.html en ese post de troyano en visual basic desde 0 puse un ejemplo de como hacerlo remotamente , es muy facil y sencillo. Buenas quiero aportar algo con el manual ya que esta muy bueno y explicare como hacer un controlador de mouse remoto primero pondre los codigos luego lo explicare
En el SERVER-dentro del data arrival- Código: Select Case Left(datos, 5) Case "mvcur" Dim cur As String Dim cur1 As String Dim ya As String Dim cur2 As String cur = Mid(datos, 6) ya = InStr( cur, "-") cur1 = Mid(cur, ya ) cur2 = Left(cur, ya ) SetCursorPos cur2, cur1 End Select
En el Cliente dentro de un picture y con la propiedad de mousemove (por cierto en el picture podemos poner una imagen del escritorio remoto para que sea mas real) Código: Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single) On Error Resume Next PSet (X, y) Label.Caption = "X=" & Int(X) & " " & "Y=" & Int(y) Winsock1.SendData "mvcur" & X & "-" & y end sub
Y en un modulo Código: Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
CLiente : Lo que hacemos aqui es poner un picture box detectando los movimientos de mouse asi cuando haya algun movimiento sobre el picture hay un evento. Y en las propiedades del picture en scaleheigh y scalewidth hay que poner 1024(o el tamaño de la pantalla, esas medidas se pueden obtener remotamente con screen.height y screen.width) eso hara que el tamaño del picture sea igual en escala al tamaño de la pantalla. Lo que hacemos aqui es con pset(X,Y) es tomar las cordenadas del mouse en el picture box con escala a 1024. Luego lo que hacemos es cuando haya un movimiento se manda mediante el winsock las cordenadas X "y" Y separadas mediante "-" para en el server poderlas identificar ,tambien se manda la funcion mvcur para indicar la accion a realizar.
Server: Ese codigo debe de ir en el data arrival y en el ejemplo suponemos que hemos almacenado los datos con la variable datos ,lo que hago con select case left(datos,5) es de los datos recibidos para la izquierda tomo 5 si se fijan son 5 las letras de mvcur ,luego condicionamos mvcur,despues almacenamos en cur el resto de los datos despues de 6 caracteres son 6 por son 5 letras de mvcur mas el espacio ,asi ya solamente tenemos los otros datos y no el identificador ,despues almacenamos en "ya" el numero de espacios que hay en la variable cur hasta llegar al "-" ,luego en cur1 guardamos el valor desde donde empieza el "-" , y con eso obtenemos la posicion Y haora para la x lo hacemos igual pero con left eso lo hace empezar desde la derecha para la izquierda y por fin movemos el cursor de posicion ,como pueden ver no es la gran cosa y no es dificil pero es una buena utilidad
salu2
|
|
|
55
|
Programación / Programación Visual Basic / Re: Duda sobre P-Code
|
en: 24 Julio 2006, 20:11 pm
|
Ami tambien me pasa va algo mas lento pero prefiro un segundo mas lento que 100 KB de peso ,o alomejor lo hago configurable en el builder.
Pero creo que eso depende del code , en mi caso la diferencia eran 6 segundos a mi por eso no me gusta usarlo.
|
|
|
56
|
Programación / Programación Visual Basic / Re: Duda sobre P-Code
|
en: 24 Julio 2006, 19:55 pm
|
Pues en mi caso no es la misma , tengo un proyecto en el cual captura la screen y la deja la captura ej jpg como 40 kb si lo corro en vb me va lento , si lo compilo con p-Code me va lento y si lo compilo con el normal si me va rapido
|
|
|
57
|
Programación / Programación Visual Basic / Re: visual basic 6 en español?
|
en: 21 Julio 2006, 19:05 pm
|
yo tengo el vb6 en español y me da problemas en algunas cosas asi que creo que es mejor en ingles . Los problemas que me ha dado ha sido en el listview , cuando pongo las medidas de las tablas si pongo las que son y pasan de 1000 me da error cuando en otras versiones en ingles si lo permite asi que tengo que poner 20 o numeros pequeños , pero cuando lo mando a otras computadoras el programa las tablas se ven deformes.......... Asi que yo mejor te aconsejo en ingles.
|
|
|
58
|
Programación / Programación Visual Basic / Re: mover un objeto alrededor de un form
|
en: 21 Julio 2006, 04:17 am
|
pero ahi me estas poninedo que me muestre las posiciones de un mouse , y yo quiero otra cosa saludos
Creo que te entendi mal , en este caso lo que puedes hacer es crear un control image y poner el gif de la pelota , crear un timer que cheque la posicion del gif y si esta cerca del borde que rebote.
|
|
|
59
|
Programación / Programación Visual Basic / Re: mover un objeto alrededor de un form
|
en: 21 Julio 2006, 00:28 am
|
con la api getcursorpos. Lo que tienes que hacer es obtener la posicion del cursor y si pasa lo delimitado pues lo mueves. Te ayudo un poco mas esta es la api completa con ejemplo de como usarla Private Type POINTAPI x As Long y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub Form_Load() Dim Pos As POINTAPI GetCursorPos Pos
Label1 = Pos.x & " - " & Pos.y End Sub
|
|
|
60
|
Programación / Programación Visual Basic / Re: Capturar Cam de otra forma.
|
en: 21 Julio 2006, 00:15 am
|
Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName 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 nID As Long) As Long
Public mCapHwnd As Long
Public Const CONNECT As Long = 1034 Public Const DISCONNECT As Long = 1035 Public Const GET_FRAME As Long = 1084 Public Const COPY As Long = 1054
Private Sub cmdStart_Click() cmdStart.Enabled = False cmdStop.Enabled = True 'Setup a capture window (You can replace "WebcamCapture" with watever you want) mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hwnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0 tmrMain.Enabled = True End Sub
Private Sub cmdStop_Click() cmdStart.Enabled = True cmdStop.Enabled = False tmrMain.Enabled = False
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0 End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If cmdStop.Enabled = False Then 'Se asegura de la conexion DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0 End If End Sub
Private Sub tmrMain_Timer() On Error Resume Next 'Obtiene el frame actual SendMessage mCapHwnd, GET_FRAME, 0, 0 'Copia el Frame SendMessage mCapHwnd, COPY, 0, 0 'Pega los datos en el picture picOutput.Picture = Clipboard.GetData 'Limpia clipboard Clipboard.Clear End Sub timer: name:tmrMAin enabled=false interval= 200Este otro codigo a lo mejor te puede servir , este codigo no es mio lo obtuve de internet . salu2
|
|
|
|
|
|
|