|
61
|
Programación / .NET (C#, VB.NET, ASP) / Re: Quitar enfoque al salir de un objeto y en MouseDown
|
en: 12 Junio 2016, 18:58 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... He conseguido hacerlo pero solo funciona cuando mueves a la izquierda pero no a la derecha, usando API. 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. '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
|
Programación / .NET (C#, VB.NET, ASP) / Terminar evento MouseDown con el botón del ratón pulsado
|
en: 12 Junio 2016, 17:24 pm
|
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). '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
|
Seguridad Informática / Seguridad / Re: Hackear de forma remota un ordenador sin Internet es posible
|
en: 12 Junio 2016, 16:18 pm
|
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
|
Seguridad Informática / Seguridad / Re: Hackear de forma remota un ordenador sin Internet es posible
|
en: 12 Junio 2016, 16:02 pm
|
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 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
|
Foros Generales / Foro Libre / Re: Encuesta elecciones 26J (España)
|
en: 12 Junio 2016, 15:38 pm
|
programatrix, solo ta falta decir !Viva Franco!
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
|
Foros Generales / Foro Libre / Re: Catador de drogas en la deepweb
|
en: 12 Junio 2016, 13:15 pm
|
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
|
|
|
68
|
Foros Generales / Foro Libre / Re: Encuesta elecciones 26J (España)
|
en: 12 Junio 2016, 12:06 pm
|
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.
|
|
|
70
|
Foros Generales / Foro Libre / Re: ¿A la cárcel por estafar 80 euros? Esta es la auténtica historia de Alejandro Fe
|
en: 11 Junio 2016, 13:32 pm
|
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.
|
|
|
|
|
|
|