elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [59] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 ... 1253
581  Programación / .NET (C#, VB.NET, ASP) / [SOURCE-CODE] Google Search URL Crawler en: 16 Agosto 2019, 02:19 am
Google Search URL Crawler




Descripción

Google Search URL Crawler es una aplicación de escritorio que le permite extraer las URL de los resultados del motor de búsqueda de Google.



Limitaciones

Este programa hace uso gratuito del motor de búsqueda de Google a través de técnicas de análisis de documentos html, por lo que el programa se limita a enviar una pequeña cantidad de consultas por hora hasta que Google comience a rechazar nuevas solicitudes. La culpa es de la política de Google, no de este programa.



Capturas de pantalla







Recursos de terceros utilizados en este proyecto




Donaciones

Leer instrucciones en Github:



Descarga


582  Programación / .NET (C#, VB.NET, ASP) / Re: [SOURCE-CODE] Easy Link File Viewer en: 16 Agosto 2019, 02:19 am
Version 1.3:

Fixed a visual issue with the menu strip.

Version 1.4:

    Added basic support for command-line arguments. Now you can pass a shortcut's file path to the executable file to open/load the specified shortcut in the program.

    Added a Hexadecimal Viewer (read-only) to view the raw contents of the current loaded shortcut file.

    Other minor UI changes and source-code optimizations.



583  Programación / .NET (C#, VB.NET, ASP) / Re: [SOURCE-CODE] Colección de plugins para SmartBot ( Hearthstone ) en: 16 Agosto 2019, 02:18 am
Versión 3.1:

    AdvancedAutoConcede.dll:
    Fixed an issue in which the number of remaining automatic concedes in the log was not displayed correctly.

    BattleTagCrawler.dll:
    Fixed an issue in which battletags were crawled outside the hour range specified in the plugin configuration window.

    SystemTrayIcon.dll, TaskBarInformer.dll and WindowRestorator.dll:
    All of these three plugins and its features has been joined into a new, single assembly: UIEnhancer.dll

    (So you must manually delete the old assemblies from your plugins directory, in order to avoid possible conflicts.)

    Other Changes:
    Updated the versions of SBAPI.dll, HearthMirror.dll and HearthWatcher.dll assemblies.
584  Programación / Programación Visual Basic / Re: VB.NET redirect obtener todos los enlaces en: 12 Agosto 2019, 14:46 pm
Según la documentación de Microsoft:

    WebBrowser.Navigating event:
        Occurs before the WebBrowser control navigates to a new document

    WebBrowser.Navigated event:
        Occurs when the WebBrowser control has navigated to a new document and has begun loading it.
        ...
        Handle the DocumentCompleted event to receive notification when the WebBrowser control finishes loading the new document.

    WebBrowser.DocumentCompleted event:
        Occurs when the WebBrowser control finishes loading a document
        ...
        Handle the DocumentCompleted event to receive notification when the new document finishes loading. When the DocumentCompleted event occurs, the new document is fully loaded

En resumen, el orden de desencadenamiento de eventos es el sigueinte:

1. WebBrowser.Navigating: cuando comienza la navegación a "X" url.
2. WebBrowser.Navigated: cuando comienza la carga del documento html en la página a navegar.
3. WebBrowser.DocumentCompleted: cuando finaliza la carga del documento html en la página a navegar.

Como no hay tiempo suficiente para que comience la carga del documento html en el ejemplo de código que compartí más arriba, el evento Navigating se dispara para todas las urls, mientras que el evento Navigated se dispara solamente para la última url como puedes comprobar en la imagen que compartí. Si quieres obtener la url de todas las redirecciones antes de que comience la carga del documento para validar/filtrar la url y poder cancelar la navegación o lo que pretendas hacer, entonces deberías seguir usando el evento Navigating como en el ejemplo de código que mostré.



Ya probe un WebBrowser.DocumentCompleted y sigue apareciendo muchas veces el link en mi consola

Para serte sincero, no tengo un gran domino en cosas relacionadas con la programación a nivel web, cosas de html y de páginas web en general, de hecho, de vez en cuando a mi también me surjen algunas dudas con ciertos aspectos del componente WebBrowser. Lo que puedo decirte es que el evento DocumentCompleted puede dispararse múltiples veces, ya que una página puede contener iframes que desencadenen el evento, pero por otro lado el evento Navigating y Navigated solamente debería dispararse una vez por cada url... ¿pero tu dices que no es así?.

De cualquier manera, siempre existe la solución rudimentaria de declarar una variable booleana para evitar, o mejor dicho ignorar múltiples desencadenamientos del mismo evento. Es decir, la primera vez que se dispare el evento DocumentCompleted, le asignarías un valor True a dicha variable, y si se vuelve a disparar el evento solo tienes que comprobar si el valor de la variable es True o False; de esta forma evitas la repetición de tu "validación de url" por así decirlo donde usas esa condicional para comprobar si la url contiene cierta cadena de texto.

Saludos.
585  Programación / Programación Visual Basic / Re: VB.NET redirect obtener todos los enlaces en: 11 Agosto 2019, 13:12 pm
Prueba añadiendo un controlador para el evento WebBrowser.Navigating...

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Dim urls As String() = {"google.co.jp", "google.co.uk", "google.es", "google.com"}
  5.        For Each url As String In urls
  6.            Me.WebBrowser1.Navigate(url)
  7.        Next
  8.    End Sub
  9.  
  10.    Private Sub WebBrowser1_Navigating(sender As Object, e As WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
  11.        Console.WriteLine($"Starting navigation: {e.Url}")
  12.        Me.ValidateUri(e.Url)
  13.    End Sub
  14.  
  15.    Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
  16.        Console.WriteLine($"Completed navigation: {e.Url}")
  17.    End Sub
  18.  
  19.    Private Sub ValidateUri(uri As Uri)
  20.        If uri.AbsoluteUri.Contains("PARTE DE MI ENLACE WEB") Then
  21.            ' ...
  22.        End If
  23.    End Sub
  24.  
  25. End Class



Saludos.
586  Programación / .NET (C#, VB.NET, ASP) / Re: [C#] Emular click del ratón en otra aplicación en: 11 Agosto 2019, 12:56 pm
yo de VB se poco

Realmente el código en VB.NET es lo de menos, lo importante es el concepto...

SendMessage y PostMessage en C#:

Conversor offline de código VB.NET a C#:
(mi recomendación personal. puedes encontrar el programa con su "medicina" facilmente)

Conversor online de código VB.NET a C#:
(este puede dar fallos de conversión en comparación con el otro conversor)



Sí vaya error con mi nick, y ahora no lo puedo arreglar... lástima.

Si que puedes. Haz click aquí si deseas cambiarte el nombre a mostrar:

Saludos
587  Programación / .NET (C#, VB.NET, ASP) / Re: [C#] Emular click del ratón en otra aplicación en: 10 Agosto 2019, 17:16 pm
+

PD: por cierto, en tu nickname falta una 'R'...
588  Programación / .NET (C#, VB.NET, ASP) / Re: Timer desde Una Clase en: 9 Agosto 2019, 13:46 pm
quisiera que se estuviera actualizando los valores en el formulario, pero esto no lo esta haciendo, no refresca los valores mostrados

¿Como esperas que eso ocurra, cuando solamente estás "actualizando" los valores una única vez al finalizar la creación de la ventana del Form en este controlador de evento?:

Citar
Código
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2. ...

Solucion: añade un Timer (pero del tipo System.Windows.Forms.Timer) a ese Form para actualizar los valores de los controles periodicamente...



Le hice algunos cambios al código en general. Prueba así:

SensorClass.vb
Código
  1. Imports System.IO.Ports
  2. Imports System.Timers
  3.  
  4. Public NotInheritable Class SensorClass : Implements IDisposable
  5.  
  6. #Region "Properties"
  7.  
  8.    Public ReadOnly Property SerialPort As SerialPort
  9.        Get
  10.            Return Me.serialPort_
  11.        End Get
  12.    End Property
  13.    Private serialPort_ As SerialPort
  14.  
  15.    Public ReadOnly Property Output As String
  16.        Get
  17.            Return Me.output_
  18.        End Get
  19.    End Property
  20.    Private output_ As String
  21.  
  22. #End Region
  23.  
  24. #Region "Private Fields"
  25.  
  26.    Private WithEvents TimerSensores As Timer
  27.  
  28. #End Region
  29.  
  30. #Region "Constructors"
  31.  
  32.    <DebuggerStepThrough>
  33.    Public Sub New()
  34.        Me.CommPortSetup()
  35.  
  36.        Me.TimerSensores = New Timer() With {
  37.            .AutoReset = True,
  38.            .Interval = 100,
  39.            .Enabled = True
  40.        }
  41.    End Sub
  42.  
  43. #End Region
  44.  
  45. #Region "Private Methods"
  46.  
  47.    <DebuggerStepThrough>
  48.    Private Sub CommPortSetup()
  49.        Me.serialPort_ = New SerialPort With {
  50.            .PortName = "COM7",
  51.            .BaudRate = 9600,
  52.            .DataBits = 8,
  53.            .StopBits = StopBits.One
  54.        }
  55.  
  56.        Me.serialPort_.Open()
  57.    End Sub
  58.  
  59. #End Region
  60.  
  61. #Region "Event-Handlers"
  62.  
  63.    <DebuggerStepperBoundary>
  64.    Private Sub TimerSensores_Elapsed(sender As Object, e As ElapsedEventArgs) Handles TimerSensores.Elapsed
  65.        Me.SerialPort.Write("#03A" & ControlChars.Cr)
  66.        Me.SerialPort.DiscardInBuffer()
  67.  
  68.        Me.output_ = Me.SerialPort.ReadTo(ControlChars.Cr)
  69.  
  70.        DirectCast(sender, Timer).Interval += 1000
  71.    End Sub
  72.  
  73. #End Region
  74.  
  75. #Region "IDisposable Implementation"
  76.  
  77.    Private disposedValue As Boolean ' Flag to detect redundant calls
  78.  
  79.    <DebuggerStepThrough>
  80.    Public Sub Dispose() Implements IDisposable.Dispose
  81.        Me.Dispose(disposing:=True)
  82.    End Sub
  83.  
  84.    <DebuggerStepThrough>
  85.    Private Sub Dispose(disposing As Boolean)
  86.        If Not (Me.disposedValue) AndAlso (disposing) Then
  87.            Me.TimerSensores?.Dispose()
  88.            Me.serialPort_?.Dispose()
  89.        End If
  90.  
  91.        Me.disposedValue = True
  92.    End Sub
  93.  
  94. #End Region
  95.  
  96. End Class

Form1.vb
Código
  1. Public Class Form1
  2.  
  3.    Private sensorClass As SensorClass
  4.    Private canal0_nd03, canal1_nd03, canal2_nd03, canal3_nd03, canal4_nd03, canal5_nd03, canal6_nd03, canal7_nd03 As String
  5.  
  6.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  7.        Me.sensorClass = New SensorClass()
  8.  
  9.        With Me.Timer1
  10.            .Interval = 100
  11.            .Enabled = True
  12.            .Start()
  13.        End With
  14.    End Sub
  15.  
  16.    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  17.  
  18.        Dim output As String = SensorClass.Output
  19.        Me.canal0_nd03 = output.Substring(3, 4)
  20.        Me.canal1_nd03 = output.Substring(10, 4)
  21.        Me.canal2_nd03 = output.Substring(17, 4)
  22.        Me.canal3_nd03 = output.Substring(24, 4)
  23.        Me.canal4_nd03 = output.Substring(31, 4)
  24.        Me.canal5_nd03 = output.Substring(38, 4)
  25.        Me.canal6_nd03 = output.Substring(44, 4)
  26.        Me.canal7_nd03 = output.Substring(52, 4)
  27.  
  28.        'MOSTRAR DATOS
  29.        Me.Label2.Text = $"{Me.canal0_nd03} ºC"
  30.        Me.Label6.Text = $"{Me.canal1_nd03} ºC"
  31.        Me.Label10.Text = $"{Me.canal2_nd03} ºC"
  32.        Me.Label7.Text = $"{Me.canal3_nd03} ºC"
  33.        Me.Label14.Text = $"{Me.canal4_nd03} ºC"
  34.        Me.Label11.Text = $"{Me.canal5_nd03} ºC"
  35.        Me.Label18.Text = $"{Me.canal6_nd03} ºC"
  36.        Me.Label15.Text = $"{Me.canal7_nd03} ºC"
  37.  
  38.        '' Si tienes problemas para actualizar el texto de los Labels,
  39.        '' desactiva alguna de las siguientes lineas comentadas para invocar el método de dibujado.
  40.        '
  41.        ' Me.Invalidate(invalidateChildren:=True)
  42.        ' Me.Refresh()
  43.  
  44.    End Sub
  45.  
  46. End Class

PD: No puedo comprobar si el código funciona como debería fucnionar, ya que carezco de ese dispositivo que estás utilizando, pero en teoría debería funcionar correctamente. Aparte, no entiendo muy bien por que en el método OnTimer incrementas el intervalo del timer en 1 segundo cada vez que hace tick, pero lo he dejado tal cual en el método TimerSensores_Elapsed.

Saludos.
589  Programación / .NET (C#, VB.NET, ASP) / Re: Buscar y contar numeros repetidos en distintos ListView en: 9 Agosto 2019, 12:35 pm
Puedes utilizar LINQ de la siguiente manera para simplificar el uso de varios búcles/For. De todas formas, todo resultaría más dinámico si en lugar de un ListView adaptases tu código para utilizar un DataGridView enlazando datos de origen en la propiedad DataGridView.DataSource.



Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  4.  
  5.        Dim columnIndex As Integer = 0
  6.  
  7.        ' Unión entre las colecciones de elementos de ListView1, ListView2 y ListView3.
  8.        Dim items As ListViewItem() =
  9.            ({Me.ListView1.Items.Cast(Of ListViewItem),
  10.              Me.ListView2.Items.Cast(Of ListViewItem),
  11.              Me.ListView3.Items.Cast(Of ListViewItem)
  12.             }.SelectMany(Function(sequence) sequence)
  13.            ).ToArray()
  14.  
  15.        ' Agrupación de los elementos mediante pares de clave-valor (clave=texto del elemento, valor=cantidad de repeticiones).
  16.        Dim groups As KeyValuePair(Of String, Integer)() =
  17.            (From item As ListViewItem In items
  18.             Let key As String = item.SubItems(columnIndex).Text
  19.             Order By key Ascending
  20.             Group By key Into keys = Group
  21.             Select New KeyValuePair(Of String, Integer)(key, keys.Count())
  22.            ).ToArray()
  23.  
  24.        ' Creación de nuevos elementos para añadir en el ListView4.
  25.        Dim newItems As ListViewItem() =
  26.            (From group As KeyValuePair(Of String, Integer) In groups
  27.             Select New ListViewItem({group.Key, CStr(group.Value)})
  28.            ).ToArray()
  29.  
  30.        ' Adición de los nuevos elementos al ListView4.
  31.        With Me.ListView4
  32.            .BeginUpdate()
  33.  
  34.            .Items.Clear()
  35.            .Items.AddRange(newItems)
  36.  
  37.            .EndUpdate()
  38.        End With
  39.  
  40.    End Sub
  41.  
  42. End Class

Nótese que en la linea nº 21 del código de arriba, si lo prefieres puedes cambiar el tipo de retorno para devolver un array del tipo ListViewItem directamente.

Saludos.
590  Foros Generales / Foro Libre / Re: Opinión de experto: ¿comprar este dominio .com, o .net? en: 8 Agosto 2019, 20:08 pm
si tuviera que registrar y proteger una marca hoy en día yo empezaría por encontrar un dominio que está disponible en la mayor cantidad de TLDs.

Gracias por tu opinión.

En esto opino lo mismo que tu, logicamente me gustaría poder adquirir el dominio con más cantidad de dominios de nivel superior o TLDs disponibles, pero empezando por que el dominio .com sea el principal que debe estar disponible. Los demás dominios disponibles serán valiosos, pero tendrán una importancia secundaria para mi. ¿Crees que me equivoco al pensar de esta manera?, lee aquí abajo y entenderás por que pienso así...

Es super común que las personas no se acuerden del TLD, ¿Quieres que tus usuarios entren a tudominio.com, cuando tu dominio es tudominio.net? Yo tuve este mismo problema con el foro hace 15 años o más. Siempre acababa en SPAM(3) y luego esa persona se compro elhacker.org.

Precisamente el otro dia quise entrar a Mega para borrar archivos, pero no recordaba el dominio de Mega, y entonces me puse a buscarlo en Google tal cual: "Mega". Tras un intento fallido, empecé a buscar por "Mega.biz", "Mega.zn", "Mega cloud" y términos parecidos, incluso busqué por el antiguo nombre "Megaupload" a ver si por fin me salía la maldita página que yo estaba buscando, pero seguía sin salirme en la primera página de resultados de Google, y recuerdo que eso me hartó MUCHÍSIMO, y me molesté profundamente (con Google, no con Mega), y al final tuve que hacer máyor esfuerzo para encontrar la url correcta en el artículo de Mega en la Wikipedia. En fin, me tiré aprox. entre 2-5 minutos para encontrar la maldita página a pesar de que yo conocía el nombre, pero no me acordaba del TLD, y eso no me gustó NADA. Otras personas habrían desistido al primer o segundo intento y habrían pospuesto la búsqueda "para otro día", estoy seguro.

Si el dominio hubiese sido .com, este problema no me habría sucedido, por ser .com el más común y habitual como ya todos sabemos, y Mega habría obtenido mi visita y mi actividad de usuario en menor tiempo. Creo que los detalles que parecen así de insignificantes son los que mayor importancia tienen a la hora de elegir el dominio .com o .net (u otros).

A todo esto, ¿quien alguna vez en sus inicios no ha entrado por error al "hermano gemelo" de elhacker.net al escribir .com en su lugar, y escribir un guión donde no lo hay?. Es bastante incomodo y confuso cometer ese tipo de errores para terminar accediendo a una página la cual no tenías realmente intención de visitar...

El problema es que todos los buenos nombres con dominio .com ya están pillados por otras compañías, o están siendo revendidos. Por esos motivos tengo tantas dudas.



A mi el marketing se me da muy bien porque una de mis primeras actividades fue el diseño gráfico, diseño de banners, logotipos, y las típicas frases con gancho. Yo uso nombres que llamen la atención por no estar relacionados con lo que se ofrece en el sitio y creo una relación imaginaria basándome en el factor psicológico de como funciona la memoria al enlazar conceptos para recordarlos. Cortos de una sola palabra, con gancho, que suenen bien en varios idiomas y que se recuerden. Hay un montón libres por el estilo, si le hechas inaginación puedes crear un gran impacto y relacionar 2 términos que absolutamente no tienen nada que ver. Por ejemplo está sin comprar fideo.com
Puedes usar la imaginación y diseñar un logotipo de un rayo (por lo de elektro) con un fideo. Entonces todo tendrá "sentido". Parecerá curiosa la asociación para el cliente y recordará el dominio.
Los usuarios van a acceder por primera vez a traves de algún enlace en otro sitio. Todo se basa en que si el sitio les gusta y van a volver a acceder, que puedan entrar de la forma más rápida y sencilla. Esto mejora la valoración y la imagen que se crea en el usuario. Incoscientemente se piensa, que bien va este sitio. Aunque no tenga nada que ver.

No se. Yo no he estudiado esas materias pero es la primera vez que escucho algo semejante; en la mayoría de los videos que he visto por Internet de gente emprendedora que da consejos (ej. el canal de youtube aprendeemprendiendo), creo haber escuchado que es muy importante que el cliente se haga una idea mental de que trata el negocio solo con leer el nombre de la marca, o en este caso con leer la url. Creo que es un razonamiento lógico, por que si un posible cliente lee "fideo,com", se hará expectativas de encontrar algo relacionado con fideos al hacer click, y cuando vea que no es así se podría molestar y no interesarse ni un segundo más en ver de que trata tu negocio, ya que habrás captado su atención en vano y le habrás confundido y quizás decepcionado...

No pongo en duda que como estrategia pueda estar bien para que la gente asocie algo "random" a tu marca, si, como por ejemplo la marca 'Apple', que a pesar de llamarse como una fruta, vende las cosas que vende, pero yo creo que son casos muy excepcionales donde para empezar el comerciante ha iniciado su empresa ofrecido un producto innovador y de mucho valor para el consumidor, y seguidamente la suerte del marketing con millones $$$ de inversión ha estado mucho de su lado a pesar de llevar el nombre de una manzana. Pero para casos más normales, donde uno sabe que no va a innovar, no le encuentro sentido de por que debería seguir una estrageia para que la gente asocie algo "random" con mi negocio, en vez de hacer lo posible para que asocien algo que realmente esté relacionado con dicho negocio, ¿no sería esto mucho más eficiente?. No se, hablando desde mi completa inexperiencia en el marketing digital, a mi me parece algo arriesgado además de innecesario el usar un nombre que no esté relacionado con los productos/servicios que ofrece tu negocio.

Mira, el otro día entré a la página https://codefit.biz/, yo pensé que tendría algo que ver con la informática (por lo de code), pero me sorprendí bastante al ver que se trata de una tienda de ropa deportiva de fitness. Lo veo una gilipollez el nombre para ese tipo de compañía, sinceramente. :S Entiendo que lo de "fit" se refiere a fitness, ¿pero y lo de "code"?, en fin. Me acordaré de esa tienda por el nombre, si, pero no en el buen sentido...

De todas formas por supuesto tendré en cuenta tu opinión, ya que como dije, yo no he estudiado esas cosas y puedo estar errando en mi forma de pensar, y lo consultaré con ciertas personas del sector del marketing digital para poder obtener una segunda opinión.

Saludos.
Páginas: 1 ... 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [59] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 ... 1253
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines