|
7051
|
Programación / .NET (C#, VB.NET, ASP) / Re: [SOURCE] MP3 Tag Remover
|
en: 28 Junio 2014, 23:41 pm
|
NUEVA VERSIÓN 1.1Notas de la versión 1.1
· Añadido: Un log con (solamente) reporte de errores. El progreso ahora también se muestra en la barra de tareas de Windows.
· Corregido: La lista de archivos no se actualizaba correctamente al detener y reanudar el procedimiento, este bug causaba un "crash" o un "freeze" en el programa.
|
|
|
7052
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Ejemplo de un LL-Hook para el Mouse.
|
en: 28 Junio 2014, 21:31 pm
|
El código puede subscribirse a los eventos del mouse, eso significa que si, puedes grabar cada acontecimiento y el orden de ellos, pero claro, eso requieriría hacer unas modificaciones para que el código se adapten a tus necesidades que "graben" los eventos en un objeto o archivo que contenga ese "set" de eventos, y lo mismo que para reproducir esas acciones. Hace tiempo escribí un código para automatizar ambas tareas, la de grabar y la de reproducir, pero es un código que no reviso desde hace mucho tiempo, lo escribí cuando me estuve iniciando en .NET y usé técnicas inapropiadas (un timer) para grabar los eventos así que puede tener sus fallos, de todas formas te dejo el código por si te sirve: #Region " Record Mouse Class " ' [ Record Mouse Functions ] ' ' // By Elektro H@cker ' ' Examples : ' Record_Mouse.Start_Record() ' Record_Mouse.Stop_Record() ' Record_Mouse.Play() : While Not Record_Mouse.Play_Is_Completed : Application.DoEvents() : End While ' Record_Mouse.Mouse_Speed = 50 Public Class Record_Mouse ''' <summary> ''' Sets the speed of recording/playing the mouse actions. ''' Default value is 25. ''' </summary> Public Shared Mouse_Speed As Long = 30L ''' <summary> ''' Gets the status pf the current mouse play. ''' False = Mouse task is still playing. ''' True = Mouse task play is done. ''' </summary> Public Shared Play_Is_Completed As Boolean ' Where the mouse coordenates will be stored: Private Shared Coordenates_List As New List(Of Point) ' Where the mouse clicks will be stored: Private Shared Clicks_Dictionary As New Dictionary(Of Long, MouseButton ) ' Timer to record the mouse: Private Shared WithEvents Record_Timer As New Timer ' Button click count to rec/play clicks: Private Shared Click_Count As Int32 = 0 ' Thread to reproduce the mouse actions: Private Shared Thread_MousePlay_Var As System.Threading.Thread = New Threading.Thread(AddressOf Thread_MousePlay) ' API to record the current mouse button state: Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer ' API to reproduce a mouse button click: Private Declare Sub Mouse_Event Lib "User32" Alias "mouse_event" (ByVal dwFlags As MouseButton, ByVal dx As Integer, ByVal dy As Integer, ByVal dwData As Integer, ByVal dwExtraInfo As Integer) ' GetAsyncKeyState buttons status Private Shared Last_ClickState_Left As Long = -1L Private Shared Last_ClickState_Right As Long = -1L Private Shared Last_ClickState_Middle As Long = -1L Enum MouseButton Left_Down = &H2 ' Left button (hold) Left_Up = &H4 ' Left button (release) Right_Down = &H8 ' Right button (hold) Right_Up = &H10 ' Right button (release) Middle_Down = &H20 ' Middle button (hold) Middle_Up = &H40 ' Middle button (release) Left ' Left button (press) Right ' Right button (press) Middle ' Middle button (press) End Enum ''' <summary> ''' Starts recording the mouse actions over the screen. ''' It records the position of the mouse and left/right button clicks. ''' </summary> Public Shared Sub Start_Record() ' Reset vars: Play_Is_Completed = False Coordenates_List.Clear() : Clicks_Dictionary.Clear() Last_ClickState_Left = -1 : Last_ClickState_Right = -1 : Last_ClickState_Middle = -1 Click_Count = 0 ' Set Mouse Speed Record_Timer.Interval = Mouse_Speed ' Start Recording: Record_Timer.Start() End Sub ''' <summary> ''' Stop recording the mouse actions. ''' </summary> Public Shared Sub Stop_Record() Record_Timer.Stop() End Sub ''' <summary> ''' Reproduce the mouse actions. ''' </summary> Public Shared Sub Play() Thread_MousePlay_Var = New Threading.Thread(AddressOf Thread_MousePlay) Thread_MousePlay_Var.IsBackground = True Thread_MousePlay_Var.Start() End Sub ' Procedure used to store the mouse actions Private Shared Sub Record_Timer_Tick(sender As Object, e As EventArgs) Handles Record_Timer.Tick Coordenates_List.Add(Control.MousePosition) ' Record Left click If Not Last_ClickState_Left = GetAsyncKeyState(1) Then Last_ClickState_Left = GetAsyncKeyState(1) If GetAsyncKeyState(1) = 32768 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Left_Down) ElseIf GetAsyncKeyState(1) = 0 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Left_Up) End If End If ' Record Right click If Not Last_ClickState_Right = GetAsyncKeyState(2) Then Last_ClickState_Right = GetAsyncKeyState(2) If GetAsyncKeyState(2) = 32768 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Right_Down) ElseIf GetAsyncKeyState(2) = 0 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Right_Up) End If End If ' Record Middle click If Not Last_ClickState_Middle = GetAsyncKeyState(4) Then Last_ClickState_Middle = GetAsyncKeyState(4) If GetAsyncKeyState(4) = 32768 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Middle_Down) ElseIf GetAsyncKeyState(4) = 0 Then Click_Count += 1 Coordenates_List.Add(Nothing) Clicks_Dictionary.Add(Click_Count, MouseButton.Middle_Up) End If End If End Sub ' Procedure to play a mouse button (click) Private Shared Sub Mouse_Click(ByVal MouseButton As MouseButton) Select Case MouseButton Case MouseButton.Left : Mouse_Event(MouseButton.Left_Down, 0, 0, 0, 0) : Mouse_Event(MouseButton.Left_Up, 0, 0, 0, 0) Case MouseButton.Right : Mouse_Event(MouseButton.Right_Down, 0, 0, 0, 0) : Mouse_Event(MouseButton.Right_Up, 0, 0, 0, 0) Case MouseButton.Middle : Mouse_Event(MouseButton.Middle_Down, 0, 0, 0, 0) : Mouse_Event(MouseButton.Middle_Up, 0, 0, 0, 0) Case Else : Mouse_Event(MouseButton, 0, 0, 0, 0) End Select End Sub ' Thread used for reproduce the mouse actions Private Shared Sub Thread_MousePlay() Click_Count = 0 Clicks_Dictionary.Item(0) = Nothing For Each Coordenate In Coordenates_List Threading.Thread.Sleep(Mouse_Speed) If Coordenate = Nothing Then Click_Count += 1 If Click_Count > 1 Then Mouse_Click(Clicks_Dictionary.Item(Click_Count)) End If Else Cursor.Position = Coordenate End If Next Mouse_Click(MouseButton.Left_Up) Mouse_Click(MouseButton.Right_Up) Mouse_Click(MouseButton.Middle_Up) Play_Is_Completed = True End Sub End Class #End Region
|
|
|
7053
|
Programación / .NET (C#, VB.NET, ASP) / Re: [SOURCE] Imgur Uploader.NET
|
en: 28 Junio 2014, 21:23 pm
|
Buen aporte EleKtro, estaría bien que añadieses las siguientes cosas: no lo hice porque me parecía de mala educación decir que agregara cosas XD Las sugerencias o criticas, mientras sean constructivas, siempre son bien recibidas. · El Auto-inicio con Windows es algo que lo añadiré como una opción del instalador. · El icono y menú en el systray lo tomo más en cuenta y estará añadido en una próxima (y seguramente última) version. • Menú contextual "subir imagen" al hacer click derecho sobre un archivo. Esto ya es algo implementado (en el instalador). EDITO: pensandolo mejor, añadiré el auto-inicio también al systray, así como la posibilidad de asociar/desasociar los archivos de imagenes soportados. Gracias por las sugerencias Saludos!
|
|
|
7054
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] (ImageMatching) buscar una imagen en la pantalla y devolver coordenadas
|
en: 28 Junio 2014, 21:14 pm
|
No se me habia pasado por la cabeza usar CUDA, y porsupuesto debe resultar mucho más veloz que los otros métodos, me pondré a documentarme sobre ello y a ver si encuentro algo interesante para compartir . que es cuda? CUDA es el motor GPU de nVidia, ATI tiene otro, pero no recuerdo su nombre. las aplicaciones pueden aprovechar la aceleración GPU para aumentar el rendimiento de una forma bastante increible. CUDA is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU). Saludos!
|
|
|
7055
|
Programación / Scripting / Re: Duda sobre aplicaciones stealer
|
en: 28 Junio 2014, 21:05 pm
|
P.D Esto lo hago con el mero hecho de investigar y averiguar el funcionamiento y las acciones de este tipo de aplicaciones con mis propios ordenadores y redes. Tener la intención de robar a una persona ajena no es el modo correcto para aprender, estos temas, además de ser ilegales están prohibidos en el foro. El IceCrack lo publiqué con fines educativos, más que nada es un recopilatorio de herramientas commandline con una (simple) interfaz de usuario en Batch para mostrar los datos que se pueden obtener de un PC sin requerir apenas conocimientos de cualquier tipo, ya que esas aplicaciones hacen todo el trabajo sucio. Tema cerrado.Saludos!
|
|
|
7056
|
Sistemas Operativos / Windows / Re: duda net framework
|
en: 28 Junio 2014, 09:24 am
|
Si ya tienes instalado FW 3.0 e instalas FW 4.0, o lo que viene siendo lo mismo ...si tienes instalada una versión anterior y te instalas una versión reciente, entonces podrás seguir ejecutando tu aplicación con totla normalidad, ya que el anterior FW no se elimina, por lo contrario, si NO tienes instalado FW 3.0 (por el motivo que sea), e instalas FW 4.0, entonces debes saber lo siguiente:
.Net Framework 4.X tiene capacidad limitada para poder ejecutar ensamblados que requieran versiones anteriores de .Net Framework, esto quiere decir que quizás puedas, o quizás no, pero lo más probable es que debas instalar la versión requerida por esa aplicación (no lo aseguro a ciencia cierta, solo por experiencia en el uso e instalación de software de terceros).
Saludos
|
|
|
7057
|
Foros Generales / Dudas Generales / Re: ¿Que lenguaje de programacion y Framework no te gusta y por que?
|
en: 28 Junio 2014, 09:12 am
|
phyton... la identacion, la forma en que hace los programas... no se! D:!!!!!!! IDEM, no soporto que un lenguaje sea tan restrictivo hasta el punto de tener que amoldarte a la cantidad de tabulaciones que debes usar en cada linea, es un verdadero estorbo cuando necesitas hacer un test rápido sobre el lenguaje ...ya que el lenguaje te impide ahorrar tiempo escribiendo "mal", y aparte, en resumen, cualquier lenguaje que no use keywords del tipo Start, End, Begin etc y en su lugar use símbolos para empezar/terminar un bloque (Ej: C#) no me agrada mucho ya que me resulta menos productiva ese tipo de sintaxis. Saludos.
|
|
|
7058
|
Foros Generales / Dudas Generales / Re: [duda] leng. Interpretado o compilado ?
|
en: 28 Junio 2014, 09:04 am
|
Hola
Aparte de lo que te han explicado, un lenguaje interpretado necesita de un archivo al que llamamos "intérprete", y que como su nombre indica se encarga de interpretar las instrucciones (el contenido escrito) del script, por ejemplo, Batch necesita a la CMD para traducirse, Python necesita a py.exe/pyw.exe, Ruby necesita a rb.exe/rbw.exe, etc... mientras que un lenguaje compilado es traducido a instrucciones nativas que solo requieren la ejecución del hardware/OS.
Otra cosa que hay que tener en cuenta es que, un lenguaje compilable es un lenguaje compilado, y un lenguaje que no es compilable es un lenguaje interpretado, pero a esto añadiria que, no se debe confundir a un empaquetador/conversor de exe con lo que es un compilador, porque es algo que se suele hacer mucho.
Saludos
|
|
|
7059
|
Programación / .NET (C#, VB.NET, ASP) / Re: [SOURCE] Imgur Uploader.NET
|
en: 28 Junio 2014, 08:42 am
|
wow! pero que bonito No se si es sarcasmo ...porque el diseño es un poco feo, pero gracias por comentar xD PD: Cuando hago un programa personal, es decir, para mi ...pero con intención de compartirlo, siempre me cuesta encontrar un set de colores que no sea desagradable tanto para los usuarios que usan los estilos visuales de Windows, como para mi con el theme de terceros que yo uso, intento compensar el gran cambio visual que supone de un theme a otro ...y ahí está el problema xD. Saludos
|
|
|
7060
|
Programación / .NET (C#, VB.NET, ASP) / [APORTE] (ImageMatching) buscar una imagen en la pantalla y devolver coordenadas
|
en: 28 Junio 2014, 08:36 am
|
Hace un tiempo estuve indagando acerca de como narices implementar un (decente) algoritmo de ImageMatching, esto significa, identificar la existencia de una imagen en la pantalla, y de paso obtener las coordenadas para futuros usos. Pues bien, despues de mucho investigar y mucha documentación leida, está claro que un algoritmo casero no puede llegar a compararse en eficacia y rendimiento a un producto (una librería) de renombre que tenga la suficiente experiencia en el ámbito, pues esto no es un simple PixelSearch, es algo mucho más laborioso. Después de probar en profundidad distintos productos/librerías, encontré Aforge.NET, el cual es muy bueno tanto en su capacidad efectiva como en su velocidad de procesamiento de imagen, aunque no resulta tan rápido como a mi me gustaria y como he visto en algún que otro Software. Nota: Si alguien conoce alguna librería eficiente y más rápida que Aforge, le agradecería que lo comentase.Este código necesita la utilización de dicha librería, AForge, y sirve para identificar una imagen en la pantalla y obtener sus coordenadas, algo imprescindible si tienes pensado desarrollar un Bot por reconocimiento de imagen... así que espero que le sirva a alguien de ayuda. Unos consejos antes de utilizar: 1. Si la imagen es demasiado grande, redimensionala al 40-60% (cuidado, cuando más difuso estén los pixeles puede ser menos efectivo). 2. Si la velocidad no es la esperada, prueba también a convertir la imagen a una escala de grises. ' Find Image ' ( By Elektro ) ' ' Usage Examples: ' 'Private Sub Test() Handles MyBase.Shown ' ' ' A Desktop Screenshot, in 1920x1080 px. resolution. ' Dim DesktopScreenshoot As New Bitmap("C:\Desktop.png") ' ' ' A cutted piece of the screenshot, in 50x50 px. resolution. ' Dim PartOfDesktopToFind As New Bitmap("C:\PartOfDesktop.png") ' ' ' Find the part of the image in the desktop, with the specified similarity. ' For Each matching As AForge.Imaging.TemplateMatch In ' FindImage(BaseImage:=DesktopScreenshoot, ImageToFind:=PartOfDesktopToFind, Similarity:=80.5R) ' 80,5% Similarity. ' ' Dim sb As New System.Text.StringBuilder ' ' sb.AppendFormat("Top-Left Corner Coordinates: {0}", matching.Rectangle.Location.ToString()) ' sb.AppendLine() ' sb.AppendFormat("Similarity Image Percentage: {0}%", (matching.Similarity * 100.0F).ToString("00.00")) ' ' MessageBox.Show(sb.ToString) ' ' Next matching ' 'End Sub ' ''' <summary> ''' Finds a part of an image inside other image and returns the top-left corner coordinates and it's similarity percent. ''' </summary> ''' <param name="BaseImage"> ''' Indicates the base image. ''' </param> ''' <param name="ImageToFind"> ''' Indicates the image to find in the base image. ''' </param> ''' <param name="Similarity"> ''' Indicates the similarity percentage to compare the images. ''' A value of '100' means identical image. ''' Note: High percentage values with big images could take several minutes to finish. ''' </param> ''' <returns>AForge.Imaging.TemplateMatch().</returns> Private Function FindImage(ByVal BaseImage As Bitmap, ByVal ImageToFind As Bitmap, ByVal Similarity As Double) As AForge.Imaging.TemplateMatch() Dim SingleSimilarity As Single ' Translate the readable similarity percent value to Single value. Select Case Similarity Case Is < 0.1R, Is > 100.0R ' Value is out of range. Throw New Exception(String.Format("Similarity value of '{0}' is out of range, range is from '0.1' to '100.0'", CStr(Similarity))) Case Is = 100.0R ' Identical image comparission. SingleSimilarity = 1.0F Case Else ' Image comparission with specific similarity. SingleSimilarity = Convert.ToSingle(Similarity) / 100.0F End Select ' Set the similarity threshold to find all matching images with specified similarity. Dim tm As New AForge.Imaging.ExhaustiveTemplateMatching(SingleSimilarity) ' Return all the found matching images, ' it contains the top-left corner coordinates of each one ' and matchings are sortered by it's similarity percent. Return tm.ProcessImage(BaseImage, ImageToFind) End Function
|
|
|
|
|
|
|