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 - nhaalclkiemr

#291
Me funciono perfectamente tu idea ;D ;D muchas gracias :xD

He incluso no tengo que modificar la funcion, puedo pasar el array de bytes filedata(1).datos perfectamente con la funcion Function convertirBytes (ByRef una_matriz() As Byte), no hace falta que haga como decias tu Function convertirBytes (ByRef una_matriz() As otramatriz) As Long  ;D

Saludos ;)
#292
Pues bien, despues de un tiempo he conseguido con esta formula poder enviar la posicion de click a una victima clickando en una captura de pantalla:

-Suponiendo que declaramos las API "GetCursorPos", el tipo "POINTAPI", y que tenemos un label transparente que se ajusta a la captura de pantalla llamado "l" pues sería así (aunke pienso pero no estoy seguro que para que funcione bien el Form tiene que tener el "BorderStyle" en "None" pero no estoy seguro):

Código (vb) [Seleccionar]
Dim a As POINTAPI
Dim x As Long
Dim y as Long
Dim resX as Long
Dim resY as Long
resX = 1600      ' Esta es la resolución de la victima (horizontal)
resY = 1200      ' Esta es la resolución de la victima (vertical)
GetCursorPos a
x = ((a.x - ((Me.Left + l.Left) / 15)) / (((l.Width + Me.Left + l.Left) / 15) - (Me.Left + l.Left) / 15)) * resX
y = ((a.y - ((Me.Top + l.Top) / 15)) / (((l.Heigth + Me.Top + l.Top) / 15) - (Me.Top + l.Top) / 15)) * resY


Pues bien, el problema viene a la hora de hacer click, para eso uso la API mouse_event, para hacer click supongo que será así:

Código (vb) [Seleccionar]
SetCursorPos x, y
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0


y para doble click:

Código (vb) [Seleccionar]
SetCursorPos x, y
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0


Esto suponiendo que pulsas el boton izquierdo...si no sería lo mismo pero con el de la derecha...

Entonces al server le pueden llegar cuatro casos:

1º- Click boton izquierdo
2º- Click boton derecho
3º- Doble click boton izquierdo
4º- Doble click boton derecho

Lo malo es como envío yo esos comandos al server, porque me encuentro con estes problemas:

-Si uso el evento click y doble click del label tengo dos problemas, primero que no se que boton (si fue el derecho o el izquierdo el que pulso) y segundo que al hacer doble click ademas de producirse el evento "DblClick" tambien se produce el evento "click".

-Si uso el evento "Mouse_down" soluciono el problema de que boton fue el que pulsó el label, pero me encuentro con el problema de como diferencio el doble click del click.

Muchos pensaran que no hace falta separar el evento doble click, ya que al hacer dos clicks produzco dos eventos "Mouse_down" que se enviaran al server y este hará dos veces click...pero lo malo de eso es que un paquete puede tardar más en llegar que otro y puede que lo que me haga el server sean dos clicks separados (que el ordenador no reconocera como dble click)...


Bueno, después de este royo todo me gustaría que me dieran posibles soluciones...seguro que más de uno tiene un troyano hecho en VB 6.0 que envia clicks si haces tu click en la captura de pantalla...

Weno, espero que me podais ayudar y saludos ;)
#293
mmm, no había pensado en eso, gracias pienso que debe funcionar, lo pruevo y ya te digo

Gracias y un saludo ;)
#294
Weno, pues explico mi problema a ver si se entiende:

A mi me gustan las matrices dentro de otras matrices, y lo que quiero es tener varios archivos en matrices de esta forma:

filedata(0)(1 to FileLen(file1))
filedata(1)(1 to FileLen(file2))
filedata(2)(1 to FileLen(file3))
filedata(3)(1 to FileLen(file4))
filedata(4)(1 to FileLen(file5))


Una matriz filedata, cada elemento de la matriz es una matriz que contiene un array de bytes de cada archivo

Eso consigo hacerlo, lo malo es que tengo que declarar esto:

Código (vb) [Seleccionar]
Dim i As Long
Dim file(0 to 3) As String
file(1) = "C:\archivo1.txt"
file(2) = "C:\archivo2.txt"
file(3) = "C:\archivo3.txt"
ReDim filedata(0 to numerodearchivos) As Variant
For i = LBound(file) to UBound(file)
ReDim tempfiledata(0 to FileLen(file(i)) - 1) As Byte
filedata(i) = tempfiledata
Erase tempfiledata
Next i


Weno, como veis tengo que utilizar una matriz tempfiledata temporal, pero este no es el mayor problema, sino que si tengo que pasar esta matriz a una funcion pues me da un error:

Imaginaros esta funcion:

Código (vb) [Seleccionar]
Function convertirBytes (ByRef filedata() As Byte) As Long
'Ahora aki iria cualkiera cosa, el argumento lo paso ByRef pork las matrices hay que pasarlas siempre ByRef
End Function


Pues cojed el primer code que puse, pues si después llamo a la funcion así me da un error:

Código (vb) [Seleccionar]
Call convertirBytes (filedata(0))

En teoría filedata(0) es un array de bytes, y la funcion es lo que pide, pero me da un error. Yo creo que el error se debe a que filedata está declarada como Variant...pero la tengo que declarar como Variant para después poder meter dentro el array de bytes...Si la declaro como Byte despues no puedo meter dentro un array de Bytes...

La unica solución que encontré fue algo parecido a lo que hice al principio, usar una matriz temporal. Llamaría a la funcion de esta forma:

Código (vb) [Seleccionar]
ReDim tempfiledata (LBound(filedata(0)) to UBound(filedata(0))) As Byte
tempfiledata = filedata(0)
Call convertirBytes (tempfiledata)
Erase tempfiledata


Entonces así si que me funcionaría...pero imaginate que tengo que llamar a muchas funciones y tengo muchos archivos y grandes (es decir, muchos array de bytes), pues entonces andar pasando grandes cantidades de bytes a variables temporales reducen la velocidad de la aplicación...

Por eso me gustaría que me dierais posibles solucíones, lo importante es pasar a una funcion que pide un array de bytes pues eso, un array de bytes que está contenida en otra matriz...más claro no lo puedo decir...


Weno, si alguien me puede ayudar que escriba algo, espero vuestra ayuda, un saludo ;)
#295
Pienso que tienes que utilizar la API SendMessage pero no estoy seguro
#296
Claro que es desde VB...si no no lo hubiera puesto en este foro...

Saludos ;)
#297
Weno, pues eso, como puedo obtener el modelo, marca, etc... de la placa base y de la gráfica...se hacerlo del procesador, pero de la grafica y de la placa no...

Saludos ;)
#298
Si weno, entonces el problema era de la formula...

Pero aún así deciros que no es correcto esto:

Código (vb) [Seleccionar]
Dim x1, x2, a, b, c As Double

Pues aí estas declarando variables "Variant", y hay que evitar el uso de variables Variant..., por eso mejor:

Código (vb) [Seleccionar]
Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double

Pero claro...eso no influye en el resultado final...pero si en el rendimiento...

Saludos ;)
#299
No tengo tiempo para probarlo, pero puede ser por esta linea:

Código (vb) [Seleccionar]
Dim x1, x2, a, b, c As Double

Aí no estas declarando 5 variables 'Double', estas declarando 4 Variant y una Double, Prueva así:

Código (vb) [Seleccionar]
Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double

Pero no estoy seguro, puede que sea de esto:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double
a = Text1.Text
b = Text2.Text
c = Text3.Text
x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
Text4.Text = x1
Text5.Text = x2
End Sub
#300
Explica más...pero creo k te refieres a esto:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim x1, x2, a, b, c As Double
Text1.Text = a
Text2.Text = b
Text3.Text = c
x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
Text4.Text = x1
Text5.Text = x2
End Sub


Saludos ;)