Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Lekim

#61
Cita de: DarK_FirefoX en 12 Junio 2016, 18:51 PM
Con respecto a tu analogía con el teclado habría que ver como funciona un controlador de teclado, no se mucho sobre controladores, y no se si de alguna forma a muy bajo nivel utilice threads (que es como se me ocurre a priori) (también voy a probar con eventos). Me explico:

Hice la prueba que dices con el teclado, presione la A (y la deje apretada, por ende en el editor de texto, se repite la AAAAAAA.....) luego, presione la S (da lo mismo con que dedo) con otro dedo, y se escribio la S (SSSSSSSSSSSSSSS.....), si ahora, en efecto se "paso" de un lugar a otro el "foco" de una tecla a otra, pero si suelto la tecla S no vuelve a pasar a la tecla A, y lo probé recursivamente con varias teclas en profundidad  y sucede lo mismo.

De cualquier manera voy a hacer mis pruebas y luego te digo, si aparece alguien que sepa como hacerlo o tenga alguna idea, la espero igual que tu.

Salu2s

Si eso también lo quiero que mientras esté pulsado se mantenga la orden. Usando como ejemplo lo del teclado si mantengo pulsado A sale "AAAAAA..." y sin soltar el dedo deslizo hacia S y mantengo pulsado pone "SSSSSSSSSSSSSSS" y si suelto deja de escribir.

Pues eso pero con controles y en lugar del dedo el ratón.





Me estoy acercando...  :xD

He conseguido hacerlo pero solo funciona cuando mueves a la izquierda pero no a la derecha, usando API.

Código (vbnet) [Seleccionar]
Imports System.Runtime.InteropServices

Public Class Form1

   <DllImport("user32.dll")> _
   Private Shared Sub mouse_event(ByVal dwFlags As UInteger, ByVal dx As UInteger, ByVal dy As UInteger, ByVal dwData As UInteger, ByVal dwExtraInfo As Integer)
   End Sub

   Const MOUSEEVENTF_MOVE = &H1 '  movimiento del mouse
   Const MOUSEEVENTF_LEFTDOWN = &H2 '  botón izquierdo presionado
   Const MOUSEEVENTF_LEFTUP = &H4 '  botón izquierdo soltado
   Const MOUSEEVENTF_RIGHTDOWN = &H8 '  botón derecho presionado
   Const MOUSEEVENTF_RIGHTUP = &H10 '  botón derecho soltado
   Const MOUSEEVENTF_MIDDLEDOWN = &H20 '  botón central presionado
   Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado
   Const MOUSEEVENTF_ABSOLUTE = &H8000 '  movimiento absoluto
   Dim lblkey(2) As Label
   Dim Pulsado As Integer = False
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim locLBL As New Point(10, 10)
       Dim inc As Integer
       For I As Integer = 0 To 2

           lblkey(I) = New Label
           lblkey(I).Size = New Point(20, 100)
           lblkey(I).BorderStyle = BorderStyle.FixedSingle
           lblkey(I).Location = New Point(locLBL.X + inc, locLBL.Y)
           Me.Controls.Add(lblkey(I))
           inc += 19
       Next
       For I As Integer = 0 To 2
           AddHandler lblkey(I).MouseDown, AddressOf lblkey_MouseDown
           AddHandler lblkey(I).MouseUp, AddressOf lblkey_MouseUp
           AddHandler lblkey(I).MouseEnter, AddressOf lblkey_MouseEnter
           AddHandler lblkey(I).Click, AddressOf lblkey_MouseClick
           AddHandler lblkey(I).MouseMove, AddressOf lblkey_MouseMove
       Next

   End Sub
   Private Sub lblkey_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       Dim punto As New Point(Me.PointToClient(Cursor.Position))
       Dim X As Integer = punto.X

       If X < CInt(lblkey(Index).Left) Or X > (CInt(lblkey(Index).Left) + CInt(lblkey(Index).Width)) And _
           Button.MouseButtons = MouseButtons.Left And Pulsado = True Then
           SueltaBoton()
           ClicBoton()

       End If
   End Sub
   Private Sub lblkey_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       If Button.MouseButtons = MouseButtons.Left Then
           lblkey(Index).BackColor = Color.Azure
       End If
   End Sub

   Private Sub lblkey_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
   End Sub
   Private Sub lblkey_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs)
   End Sub
   Private Sub lblkey_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       lblkey(Index).BackColor = Color.Transparent
   End Sub
   Public Sub ClicBoton()
       'Simula el clic del boton izquierdo del ratón
       Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
   End Sub

   Public Sub SueltaBoton()
       'Simula el clic del boton izquierdo del ratón
       Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
   End Sub
End Class





¡¡CONSEGUIDO!!

Pulsa con el botón derecho del ratón sobre una banda y luego desliza sin soltar el botón, las bandas(que son Labels), se activarán al pasar el puntero.



Código (vbnet) [Seleccionar]


'Programmed by Lekim'
Option Strict On
Imports System.Runtime.InteropServices


Public Class Form1

   <DllImport("user32.dll")> _
   Private Shared Sub mouse_event(ByVal dwFlags As UInteger, _
                                  ByVal dx As UInteger, _
                                  ByVal dy As UInteger, _
                                  ByVal dwData As UInteger, _
                                  ByVal dwExtraInfo As Integer)
   End Sub


   Dim lblkey(5) As Label
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim locLBL As New Point(10, 10)
       Dim inc As Integer
       For I As Integer = 0 To 5
           lblkey(I) = New Label
           lblkey(I).Size = CType(New Point(20, 100), Drawing.Size)
           lblkey(I).BorderStyle = BorderStyle.FixedSingle
           lblkey(I).Location = New Point(locLBL.X + inc, locLBL.Y)
           Me.Controls.Add(lblkey(I))
           inc += 19
       Next
       For I As Integer = 0 To 5
           AddHandler lblkey(I).MouseDown, AddressOf lblkey_MouseDown
           AddHandler lblkey(I).MouseUp, AddressOf lblkey_MouseUp
           AddHandler lblkey(I).MouseMove, AddressOf lblkey_MouseMove

       Next

   End Sub
   Private Sub lblkey_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       Dim mPoint As New Point(Me.PointToClient(Cursor.Position).X, Me.PointToClient(Cursor.Position).Y)
       Dim X As Integer = mPoint.X

       If X < CInt(lblkey(Index).Left) Or
           X > (CInt(lblkey(Index).Left) + _
                CInt(lblkey(Index).Width)) Then
           EventoUp()
           EventoDown()
       End If

   End Sub
   Private Sub lblkey_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       If Button.MouseButtons = MouseButtons.Left Then
           lblkey(Index).BackColor = Color.Azure
       End If
   End Sub
   Private Sub lblkey_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       lblkey(Index).BackColor = Color.Transparent
   End Sub

End Class
Module modEventMouse
   <DllImport("user32.dll")> _
   Public Sub mouse_event(ByVal dwFlags As UInteger, _
                                  ByVal dx As UInteger, _
                                  ByVal dy As UInteger, _
                                  ByVal dwData As UInteger, _
                                  ByVal dwExtraInfo As Integer)
   End Sub
   <Flags()> _
   Public Enum MouseEventFlags As UInteger
       MOUSEEVENTF_ABSOLUTE = &H8000
       MOUSEEVENTF_LEFTDOWN = &H2
       MOUSEEVENTF_LEFTUP = &H4
       MOUSEEVENTF_MIDDLEDOWN = &H20
       MOUSEEVENTF_MIDDLEUP = &H40
       MOUSEEVENTF_MOVE = &H1
       MOUSEEVENTF_RIGHTDOWN = &H8
       MOUSEEVENTF_RIGHTUP = &H10
       MOUSEEVENTF_XDOWN = &H80
       MOUSEEVENTF_XUP = &H100
       MOUSEEVENTF_WHEEL = &H800
       MOUSEEVENTF_HWHEEL = &H1000
   End Enum
   ''' <summary>
   ''' Simulate MouseDown the left mouse button
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub EventoDown()
       Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
   End Sub
   ''' <summary>
   ''' Simulate MouseUp the left mouse button
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub EventoUp()
       Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
   End Sub


End Module






¿Realmente no hay forma de hacerlo usando puro NET?

He entrado en otro foro y no he recibido más que críticas por haber usado el API, pero ninguna solución.  :¬¬

#62

He cambiado el título de la pregunta porque no estaba bien hecha, ya que hacía referencia al foco de objeto cuando en realidad me refiero al evento. Cuando se presiona sobre el objeto éste recibe el foco, por eso usé esa palabra.

Realmente lo que necesito es terminar o salir del evento MouseDown y volver a entrar sin soltar el botón del ratón  al salir y entrar en otro objeto de un mismo array




Hola

Estoy intentado que al pulsar un objeto sea un Label, picture o botón, al salir de él éste salga del evento de pulsado (Mousedown) del objeto y al entras seguidamente en otro objeto éste reciba el enfoque y el evento MouseDown

Para que se me entienda.

Imagina el teclado del ordenador y pasas y pulsas A el botón baja, luego deslizas el dedo manteniendo pulsado y pasa a S. el botón S bajará y el A subirá.  En un editor de texto se escribiría AS sin haber levantado el dedo.

Necesito eso mismo pero con controles. pero no se como hacerlo. He probado con Hover y Enter, pero no me sale.


Parece una tontaría y muy simple pero llevo rato inentandolo y nada

Gracias





Aquí dejo lo que he hecho.

Al pulsar sobre el Label(2) éste cambia de color al azul y sin soltar, al salir de él y entrar en Label(1), pierde su color azul, pero el Label(1) no cambia de color porque todavía está en el evento MousDown Label(2).

Necesito que al entrar en Label(1) entre en el evento Mousdown de este control y salga del MouseDown del Label(2).


Código (vbnet) [Seleccionar]

'Programmed by Lekim'
Option Strict On
Imports System.Runtime.InteropServices


Public Class Form1

   <DllImport("user32.dll")> _
   Private Shared Sub mouse_event(ByVal dwFlags As UInteger, _
                                  ByVal dx As UInteger, _
                                  ByVal dy As UInteger, _
                                  ByVal dwData As UInteger, _
                                  ByVal dwExtraInfo As Integer)
   End Sub


   Dim lblkey(5) As Label
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim locLBL As New Point(10, 10)
       Dim inc As Integer
       For I As Integer = 0 To 5
           lblkey(I) = New Label
           lblkey(I).Size = CType(New Point(20, 100), Drawing.Size)
           lblkey(I).BorderStyle = BorderStyle.FixedSingle
           lblkey(I).Location = New Point(locLBL.X + inc, locLBL.Y)
           Me.Controls.Add(lblkey(I))
           inc += 19
       Next
       For I As Integer = 0 To 5
           AddHandler lblkey(I).MouseDown, AddressOf lblkey_MouseDown
           AddHandler lblkey(I).MouseUp, AddressOf lblkey_MouseUp
           AddHandler lblkey(I).MouseMove, AddressOf lblkey_MouseMove

       Next

   End Sub
   Private Sub lblkey_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       Dim mPoint As New Point(Me.PointToClient(Cursor.Position).X, Me.PointToClient(Cursor.Position).Y)
       Dim X As Integer = mPoint.X

       If X < CInt(lblkey(Index).Left) Or
           X > (CInt(lblkey(Index).Left) + _
                CInt(lblkey(Index).Width)) Then
           EventoUp()
           EventoDown()
       End If

   End Sub
   Private Sub lblkey_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       If Button.MouseButtons = MouseButtons.Left Then
           lblkey(Index).BackColor = Color.Azure
       End If
   End Sub
   Private Sub lblkey_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
       Dim Index As Integer = Array.IndexOf(lblkey, sender)
       lblkey(Index).BackColor = Color.Transparent
   End Sub

End Class
Module modEventMouse
   <DllImport("user32.dll")> _
   Public Sub mouse_event(ByVal dwFlags As UInteger, _
                                  ByVal dx As UInteger, _
                                  ByVal dy As UInteger, _
                                  ByVal dwData As UInteger, _
                                  ByVal dwExtraInfo As Integer)
   End Sub
   <Flags()> _
   Public Enum MouseEventFlags As UInteger
       MOUSEEVENTF_ABSOLUTE = &H8000
       MOUSEEVENTF_LEFTDOWN = &H2
       MOUSEEVENTF_LEFTUP = &H4
       MOUSEEVENTF_MIDDLEDOWN = &H20
       MOUSEEVENTF_MIDDLEUP = &H40
       MOUSEEVENTF_MOVE = &H1
       MOUSEEVENTF_RIGHTDOWN = &H8
       MOUSEEVENTF_RIGHTUP = &H10
       MOUSEEVENTF_XDOWN = &H80
       MOUSEEVENTF_XUP = &H100
       MOUSEEVENTF_WHEEL = &H800
       MOUSEEVENTF_HWHEEL = &H1000
   End Enum
   ''' <summary>
   ''' Simulate MouseDown the left mouse button
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub EventoDown()
       Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
   End Sub
   ''' <summary>
   ''' Simulate MouseUp the left mouse button
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub EventoUp()
       Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
   End Sub


End Module




#63
Cita de: Hason en 12 Junio 2016, 03:28 AM

Esto del hacking cada vez avanza más y más, y todas las empresas de seguridad no se a que juegan, yo ya no utilizo antivirus, por que es que no vale ni la pena...solo si te entra algo a nivel sistema operativo, pero para hardwar no hay antivirus, ya podrían hacer antivirus de bajo nivel creo yo, pero no les interesará supongo...

hombre tampoco es eso, te irá lento, te modifica el registro, los archivos, hasta el notepad se te conectará a internet si usas windows XD



Perdon he abierto doble comentario , a sido sin querer
#64
yo tenía una lámpara que cuando la encendía con el ordenador enchegado éste se apagaba, pero no de golpe, con el cierre de sesión de windows y todo  :xD

Tenía algo que ver con red eléctrica.

Prueba un experimento. Conecta un aparato musical y enchufa unos auriculares dale a toda potencia (pero sin música), haz que tu ordenador realice alguna tarea, es posible que escuches ruiditos, no siempre ocurre, como los de un fax. Estos ruiditos los crea el ordenador .




Antes los programas se grababan en cintas magnéticas como casetes y todavía es posible en disquetes que contienen un disco del mismo material que los casetes. También  algunas tarjetas de crédito o tarjetas para abrir puertas tienen una banda magnética cuya función es la misma que la del casete. Este material de color marrón oscuro lo puedes pasar por el cabezal de un walkman o radiocasete y pasarlo a un ordenador para después leerlo. y también es posible grabar. Si lo lees como sonido genera ese ruidito de fax que comenté antes.

Supongo que enviando esas señales en forma de ondas electromagnéticas, es posible grabar o influir en el funcionamiento del ordenador. No se como... ¿alguna vez se te ha apagado o encendido la TV sola?, pues eso.

#65
programatrix, solo ta falta decir !Viva Franco!



Cita de: programatrix en 12 Junio 2016, 15:02 PM
les espera TRABAJO y FUTURO. NINGÚN empresario te hace un contrato de una hora y un día...

Hay que fastidiarse, ¿en qué mundo vives?, YO y repito YO, he trabajado por horas, y por un día, con contrato. ¿Has escuchado hablar de las ETTs? Se ve que no.

Muchos empresarios españoles son basura, y no generan más que miseria y beneficio para ellos mismos. ¿Que se quieren ir? Pues que se vayan, que luego dicen no pueden pagar a sus empleados y luego bien que se compran coches de alta gama.
#66
Este tipejo está vendido, es un adicto y le envían drogas gratis. Qué más puede pedir un adicto.

Total para decir esta "esta me ha dejao flipao" o "esta no hace nada", "con esta me encuentro mal", esto no sirva para nada.

Pero del efecto negativo de las drogas no dice nada. Una web que identifique cada droga que salga en el mercado, la analice, muestre sus componentes exactos y explique científicamente y claramente qué efectos puede tener en nuestro cuerpo, seguramente no recibiría ni un solo gramo gratis ni de  paracetamol.

s2s

#67
Buen post, felicidades.

En mi opinión, no importa si una sociedad es comunista o capitalista, al final el ser humano es lo que es.


S2s
#68
Los jóvenes saben mil veces más ahora que los viejos. Obvio no me refiero a los que están todo el día con los amiguetes en el parque, fumando porros y sin dar palo al agua. Y los hay que por influencia de su padre o abuelo, se llenan la boca hablando de Franco como si ellos hubieran vivido aquella época, repitiendo como loros las premisas franquistas y quejándose que hay mucha libertad  - ***** maricones...-, dicen, - las mujeres en casa y a limpiar... - dicen.

A los viejos lo único que les preocupa, es su pensión. Su debate político se basa en si este me va a subir o bajar la pensión - A ver, a  mi que más me da - pensarán. Lo que les pase a los jóvenes y su futuro les importa un rábano. ¿Con esta filosofía de derechas qué futuro nos espera a los jóvenes? ¿Qué pensión vamos a tener nostros? Si para los del PP, generar empleo es trabajar una hora, un día, dos semanas, un mes y luego 2 meses en paro, 6 meses en paro 3 años en paro, de nuevo a trabajar, 3 meses... ¿Esto es empleo? Perdonen, pero esto es una p**a *****. Qué pensión va a tener un jóven cuando se juvile si en total no abrá trabajado ni la mitad que generaciones anteriores. Además, se prevé ir recortando las pensiones.

Siempre salen estos peperos diciendo lo mal que dejó el PSOE (pero dicen la izquierda) el país en 2011. Demagogia y más demagogia. Todo el mundo sabe que la crisis afectó al mundo entero, a todos los países de una manera u otra, gobernaran los comunistas, capitalistas, de izquierdas o de derechas. Incluso a EEUU, la primera potencia mundial, ni más ni menos. En el caso de España, todo el mundo sabe también que España prácticamente vivía de la burbuja inmobiliaria y el turismo, y cuando llegó la crisis, mundial repito, la burbuja estalló y el turismo amainó durante un periodo. Los inversores salieron pitando. Dejen de engañar, esto hubiera ocurrido estando el PP, el popó o el pipí, es más, yo creo que hubiera sido infinitamente peor.

Hacia el 2008 una persona me propuso que comprara una vivienda, contratando una hipoteca, yo contesté, -pero que dices, voy a tener que pagar de por vida, y en cuanto me quede en paro y no la pueda pagar me la quitan y encima tengo que estar pagando...- (además que no tenía aval) menos mal que no le hice caso, sobre todo porque como preveía me quedé en paro. Que un pisito costara 300000 euros me parecía una barbaridad y me decía a mi mismo que cualquier día de estos se iba a liar y así fue. Porque eso no era normal. Luego están los que animan a los jóvenes a emanciparse - cuando yo tenía tu edad....- cuando tu tenías mi edad un peón, un mozo de almacén o un lava platos podía ganar 120000 o 150.000 ptas. (700 o 900 €, ..redondeando) y una vivienda decente podía costar  1.500.000 de ptas. (9015,18 euros), hombre, así cualquiera. Con la burbuja y la especulación el precio de la vivienda llegó al límite y como he dicho antes, un pisito de ***** que antes costaba 6000 euros, alcanzaba una subida del 5000 %  y si comparamos sueldo y vivienda, son 6000/700= 8.57, mientras que 300000/700=428.57, casi nada. Las proporciones hablan por si mismas. ¿Como no iba a estallar? De esto echo la culpa tanto al PP, como al PSOE. Al PP por iniciarlo y al PSOE por no remediarlo y dejar a los especuladores (Bancos, constructores, inversores, propietarios) a sus anchas.

Ahora ha bajado pero ha sido por la falta de demanda, la falta de inversores y la crisis en sí. Sin embargo, los especuladores siguen ahí, al acecho como las arañas en su red. Escondidos esperando con su red de viviendas vacías a la espera de poder volver a especular. Si gobierna de nuevo el PP y suponiendo que la situación mejore con los sueldos que tenemos, los contratos basura, si encima se empieza a especular y el precio de la vivienda y el alquiler empieza a subir, me temo lo peor. Entonces si que vamos a estar como en Venezuela XD. En el futuro vamos a tener un montón de viejos con una pensión mísera y sin hogar, viviendo en pensiones patera. Algo así como Friends pero de la tercera edad ¿qué apoyo van a tener sus hijos y nietos si llega otra crisis? Pero así nos quieren, como dijo Ernesto Guevara, prefiero vivir de pie que morir arrodillado. Así es como nos quieren los del PP, de rodillas.
#69
¿Podría él ahora denunciar al Juzgado por haber tardado tanto en juzgarle y pedir una indemnización por daños y perjuicios?  :xD



Yo lo haría  :P
#70
Hombre, es que si vas a robar (o estafar)... hazlo dentro de la legalidad; esto es, lo que algunos del PP, Bancos y algunos empresarios llaman "sistema legal democrático".




Y con respecto al afectado por la condena, en mi opinión no me trago que no supiera que era falsa. A ver, vas en un coche con la pandilla. Todos de compras y  te dan una tarjeta a tu nombre por la cara para comprar lo que te salda de ahí, gratis (porque no es su dinero). Que no preguntara, que no escuchara nada de sus amigos en el coche con respeto al tema. Pues normal, muy normal, no es.

Por otro lado el haya lo que haya hecho, el echo en sí de estar casado y con hijos, y con trabajo pues no le exime de culpa. Siempre sale lo de -es que ahora tengo hijos y estoy casado, y trabajo... - claro, ahora no te viene bien, ahora eres un ciudadano modelo. ¿Eso significa que si no estás casado, no tienes hijos y trabajo es más justo que vayas a la cárcel por el mismo delito y al contrario no? Pues no.

En cuanto a la condena en sí, me parece desproporcionada.