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 - Eleкtro

#9131
@franfis
Me parece de mal gusto que pidas lo mismo en otro post (usando Batch) xD, ya te comenté que era imposible, en C u otro lenguaje si que es posible.

Yo no se C/C++, pero lo que tienes que hacer es buscar el handle de la ventana que te interesa (la pestaña), y cerrar el handle con la función "DestroyWindow" (NO CloseWindow) de la User32.dll API.

http://www.pinvoke.net/default.aspx/user32.destroywindow
http://www.pinvoke.net/default.aspx/user32.closewindow

PD: Si quieres la vía fácil, puedes usar una herramienta CommandLine que se llama CMDOW para obtener el handle (en HEX) y cerrarlo.
cmdow | find /I "Nombre parcial/completo del tab"
cmdow "0xHANDLE" /CLS


Saludos!
#9132
No se me ocurrió nada más placentero que hacer un pequeño "homenaje" a las chonis. :silbar:

Saludos
#9133
Windows / Re: No me funciona cmd
8 Abril 2013, 13:30 PM
Guárdate esta aplicación que hice, te servirá tanto para modificar el Path (añadir/eliminar entradas), como para restaurarlo si la vuelves a cagar :P.



http://elektrostudios.tk/PATHS.exe

[RUBY] [APPORTE PARA WINDOWS] PATHS v0.3 - Una utilidad para el PATH

Saludos.
#9134
El instalador que compartí la verdad es que tenía varios posibles fallos de instalación de la carpeta por defecto del VS, creo que lo que comentaste en uno de tus primeros comentarios si que era culpa del instalador, así que lo siento por ti y por si alguna otra persona ha sufrido un problema raro con la ruta de la instalación.

Tras varias semanas de pruebas en distintas máquinas virtuales creo que ya he conseguido compilar el instalador perfecto, en menos de una semana actualizaré el aporte principal con un nuevo instalador, que será mucho más automatizado y eficiente (todos los controles se instalan AUTOMÁTICAMENTE gracias a una herramienta de terceros para la ToolBox) y he eliminado una extensión que daba muchos problemas de compatibilidad y daba error (VSCOMMANDS), y en fín, muchos más controles, APIS, snippets, y toda la instalación en general está mejor hecha y perfeccionada.

No os lo perdais, darle otra oportunidad a este installer ...dentro de poco ;).

PD: Aviso de que ocupará alrededor de 450 MB, de los cuales Sólamente 20 MB son archivos añadidos, los otros 400 mb son los archivos necesários de la instalación offline para manejar lo necesário de VB.NET.

Saludos!
#9135
Obtener las familias de las fuentes instaladas:

EDITO: MEJORADO Y SIMPLIFICADO

Código (vbnet) [Seleccionar]
#Region " Get Installed Fonts Function "

    ' [ Get Installed Fonts Function ]
    '
    ' Examples :
    ' For Each Font As FontFamily In Get_Installed_Fonts() : MsgBox(Font.Name) : Next
    '
    ' For Each FontFam As FontFamily In Get_Installed_Fonts()
    '     Dim MyFont As New Font(FontFam.Name, 8)
    '     MsgBox(MyFont.Italic)
    '     MsgBox(MyFont.OriginalFontName)
    '     MyFont.Dispose()
    ' Next

    Private Function Get_Installed_Fonts() As FontFamily()
        Using AllFonts As New Drawing.Text.InstalledFontCollection ' Get the installed fonts collection.
            Return AllFonts.Families ' Return an array of the system's font familiies.
        End Using
    End Function

#End Region







Unas de las típicas y quemadísimas funciones para convertir un string a binário:

Código (vbnet) [Seleccionar]
#Region " ASCII To Binary Function "

   ' [ ASCII To Binary Function ]
   '
   ' Examples :
   ' MsgBox(ASCII_To_Binary("Test"))

   Private Function ASCII_To_Binary(ByVal str As String) As String
       Dim Binary_String As String = Nothing

       For i As Integer = 0 To str.Length - 1
           Binary_String &= LongToBinary(Asc(str.Substring(i, 1))).Substring(LongToBinary(Asc(str.Substring(i, 1))).Length - 8)
       Next i

       Return Binary_String
   End Function

   ' Convert this Long value into a Binary string.
   Private Function LongToBinary(ByVal long_value As Long, Optional ByVal separate_bytes As Boolean = True) As String

       ' Convert into hex.
       Dim hex_string As String = long_value.ToString("X")

       ' Zero-pad to a full 16 characters.
       hex_string = hex_string.PadLeft(16, "0")

       ' Read the hexadecimal digits one at a time from right to left.
       Dim result_string As String = ""
       For digit_num As Integer = 0 To 15

           ' Convert this hexadecimal digit into a binary nibble.
           Dim digit_value As Integer = Integer.Parse(hex_string.Substring(digit_num, 1), Globalization.NumberStyles.HexNumber)

           ' Convert the value into bits.
           Dim factor As Integer = 8
           Dim nibble_string As String = ""
           For bit As Integer = 0 To 3
               If digit_value And factor Then
                   nibble_string &= "1"
               Else
                   nibble_string &= "0"
               End If
               factor \= 2
           Next bit

           ' Add the nibble's string to the left of the result string.
           result_string &= nibble_string
       Next digit_num

       ' Add spaces between bytes if desired.
       If separate_bytes Then
           Dim tmp As String = ""
           For i As Integer = 0 To result_string.Length - 8 Step 8
               tmp &= result_string.Substring(i, 8) & " "
           Next i
           result_string = tmp.Substring(0, tmp.Length - 1)
       End If

       ' Return the result.
       Return result_string

   End Function

#End Region







...O viceversa:

Código (vbnet) [Seleccionar]
#Region " Binary To ASCII Function "

   ' [ Binary To ASCII Function ]
   '
   ' Examples :
   ' MsgBox(Binary_To_ASCII("01010100 01100101 01110011 01110100"))
   ' MsgBox(Binary_To_ASCII("01010100011001010111001101110100"))

   Private Function Binary_To_ASCII(ByVal str As String) As String
       Dim ASCII_String As String = Nothing

       ' Strip out spaces in case the string are separated by spaces.
       str = str.Replace(" ", "")

       For i As Integer = 0 To str.Length - 1 Step 8
           ASCII_String &= Chr(BinaryToLong(str.Substring(i, 8)))
       Next i

       Return ASCII_String
   End Function

   ' Convert this Binary value into a Long.
   Private Function BinaryToLong(ByVal binary_value As String) As Long

       ' Remove any leading &B if present.
       binary_value = binary_value.Trim().ToUpper()
       If binary_value.StartsWith("&B") Then binary_value = binary_value.Substring(2)

       ' Strip out spaces in case the bytes are separated by spaces.
       binary_value = binary_value.Replace(" ", "")

       ' Left pad with zeros so we have a full 64 bits.
       binary_value = binary_value.PadLeft(64, "0")

       ' Read the bits in nibbles from left to right. (A nibble is half a byte)
       Dim hex_result As String = ""
       For nibble_num As Integer = 0 To 15

           ' Convert this nibble into a hexadecimal string.
           Dim factor As Integer = 1
           Dim nibble_value As Integer = 0

           ' Read the nibble's bits from right to left.
           For bit As Integer = 3 To 0 Step -1
               If binary_value.Substring(nibble_num * 4 + bit, 1).Equals("1") Then
                   nibble_value += factor
               End If
               factor *= 2
           Next bit

           ' Add the nibble's value to the right of the result hex string.
           hex_result &= nibble_value.ToString("X")
       Next nibble_num

       ' Convert the result string into a long.
       Return Long.Parse(hex_result, Globalization.NumberStyles.HexNumber)

   End Function

#End Region
#9136
· Mover un control
Con opciones de Dirección, velocidad, intervalo, timeout, y hacer búcle sobre el form.


[youtube=640,360]http://www.youtube.com/watch?v=iPKwIZDFnIo&feature=youtu.be[/youtube]


Código (vbnet) [Seleccionar]

#Region " Move control "

   ' [ Move control ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MoveControl(Label1, Direction.Right, 100, 1000, 10, True)
   ' MoveControl(Label1, Direction.Left, 1, 9999999, 2, True)

   Dim ControlToMove As Control
   Dim ControlLoop As Boolean
   Dim StartMove As New Timer
   Dim EndMove As New Timer

   Public Enum Direction
       Up = 1
       Down = 2
       Left = 3
       Right = 4
   End Enum

   Public Sub MoveControl(ByVal Control As Control, _
                          ByVal Direction As Direction, _
                          ByVal Interval As Int64, _
                          ByVal TimeOut As Int64, _
                          ByVal Speed As Int16, _
                          ByVal LoopInsideForm As Boolean)

       ControlToMove = Control
       ControlLoop = LoopInsideForm
       StartMove.Tag = Direction
       'TimeOut = TimeOut * 1000 ' If want to use seconds instead of Milliseconds.
       StartMove.Interval = Interval
       EndMove.Interval = TimeOut

       For x = 1 To Speed ' Add X amount of handles
           AddHandler StartMove.Tick, AddressOf StartMove_Tick
       Next

       AddHandler EndMove.Tick, AddressOf EndMove_Tick
       StartMove.Start() : EndMove.Start()

   End Sub

   ' Start/continue moving
   Private Sub StartMove_Tick(Sender As Object, e As EventArgs)

       If ControlLoop Then ' Loop inside form
           Select Case Sender.tag
               Case 1 ' Up
                   If ControlToMove.Location.Y <= (0 - ControlToMove.Size.Height) Then
                       ControlToMove.Location = New Point(ControlToMove.Location.X, Me.Size.Height)
                   End If
               Case 2 ' Down
                   If ControlToMove.Location.Y >= (Me.Size.Height) Then
                       ControlToMove.Location = New Point(ControlToMove.Location.X, -0)
                   End If
               Case 3 ' Left
                   If ControlToMove.Location.X <= (0 - ControlToMove.Size.Width) Then
                       ControlToMove.Location = New Point(Me.Size.Width, ControlToMove.Location.Y)
                   End If
               Case 4 ' Right
                   If ControlToMove.Location.X >= (Me.Size.Width) Then
                       ControlToMove.Location = New Point(-ControlToMove.Width, ControlToMove.Location.Y)
                   End If
           End Select
       End If

       Select Case Sender.Tag ' Direction
           Case 1 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y - 1) ' Up
           Case 2 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y + 1) ' Down
           Case 3 : ControlToMove.Location = New Point(ControlToMove.Location.X - 1, ControlToMove.Location.Y) ' Left
           Case 4 : ControlToMove.Location = New Point(ControlToMove.Location.X + 1, ControlToMove.Location.Y) ' Right
       End Select

   End Sub

   ' End Moving
   Private Sub EndMove_Tick(sender As Object, e As EventArgs)
       StartMove.Stop()
       EndMove.Stop()
       RemoveHandler StartMove.Tick, AddressOf StartMove_Tick
       RemoveHandler EndMove.Tick, AddressOf EndMove_Tick
   End Sub

#End Region
#9137
· Unir argumentos:

Código (vbnet) [Seleccionar]
#Region " Join Arguments Function "

   ' [ Join Arguments Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Join_Arguments())
   ' MsgBox(Join_Arguments(";"))
   ' If Join_Arguments() Is Nothing Then MsgBox("No arguments")

   Private Function Join_Arguments(Optional Delimiter As String = " ") As String

       ' Check if exist at least one argument
       If Environment.GetCommandLineArgs().Length = 1 Then Return Nothing

       ' Store all arguments
       Dim Arguments As [String]() = Environment.GetCommandLineArgs()

       ' Delete Argument 0 (It's the name of the APP)
       For x = 1 To UBound(Arguments) : Arguments(x - 1) = Arguments(x) : Next x

       ' Redimensione the array
       ReDim Preserve Arguments(UBound(Arguments) - 1)

       ' Return the string
       Return [String].Join(Delimiter, Arguments)

   End Function

#End Region







· Ignorar excepciones:

Código (vbnet) [Seleccionar]
#Region " Ignore Exceptions "

   ' [ Ignore Exceptions ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   '   IO.File.OpenText("X:\Failed_To_Open.txt")
   ' End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Try : AddHandler Application.ThreadException, AddressOf Application_Exception_Handler _
           : Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, False) _
           : Catch : End Try
   End Sub

   Private Sub Application_Exception_Handler(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
       ' Here you can manage the exceptions:
       ' Dim ex As Exception = CType(e.Exception, Exception)
       ' MsgBox(ex.Message)
       ' ...Or leave empty to ignore it.
   End Sub

#End Region







· Devuelve el nombre de la aplicación actual:

EDITO: Mejorado

Código (vbnet) [Seleccionar]
#Region " Get Current APP Name Function "

   ' [ Get Current APP Name Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Get_Current_APP_Name())
   ' MsgBox(Get_Current_APP_Name(False))

   Private Function Get_Current_APP_Name(Optional ByVal WithFileExtension As Boolean = True) As String
       Dim EXE_Filename As String = System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName

       If WithFileExtension Then : Return EXE_Filename
       Else : Return EXE_Filename.Substring(0, EXE_Filename.Length - 4)
       End If

   End Function

#End Region







· Devuelve la ruta parcial o la ruta absoluta de la aplicación actual:

EDITO: SIMPLIFICADO

Código (vbnet) [Seleccionar]
#Region " Get Current APP Path Function "

   ' [ Get Current APP Path Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Get_Current_APP_Path())
   ' MsgBox(Get_Current_APP_Path(True))

   Private Function Get_Current_APP_Path(Optional ByVal FullPath As Boolean = False) As String
       If FullPath Then : Return CurDir() & "\" & System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName
       Else : Return CurDir()
       End If
   End Function

#End Region







· Sleep

Código (vbnet) [Seleccionar]
#Region " Sleep "

   ' [ Sleep ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' Sleep(5) : MsgBox("Test")
   ' Sleep(5, Measure.Seconds) : MsgBox("Test")

   Public Enum Measure
       Milliseconds = 1
       Seconds = 2
       Minutes = 3
       Hours = 4
   End Enum

   Private Sub Sleep(ByVal Duration As Int64, Optional ByVal Measure As Measure = Measure.Seconds)

       Dim Starttime = DateTime.Now

       Select Case Measure
           Case Measure.Milliseconds : Do While (DateTime.Now - Starttime).TotalMilliseconds < Duration : Application.DoEvents() : Loop
           Case Measure.Seconds : Do While (DateTime.Now - Starttime).TotalSeconds < Duration : Application.DoEvents() : Loop
           Case Measure.Minutes : Do While (DateTime.Now - Starttime).TotalMinutes < Duration : Application.DoEvents() : Loop
           Case Measure.Hours : Do While (DateTime.Now - Starttime).TotalHours < Duration : Application.DoEvents() : Loop
           Case Else
       End Select

   End Sub

#End Region







· Devuelve un color RGB aleatorio:

Código (vbnet) [Seleccionar]
#Region " Get Random RGB Color Function "

   ' [ Get Random RGB Color Function ]
   '
   ' Examples :
   ' Label1.ForeColor = Get_Random_RGB_Color()

   Private Function Get_Random_RGB_Color() As Color
       Return Color.FromArgb(255, _
           m_Rnd.Next(0, 255), _
           m_Rnd.Next(0, 255), _
           m_Rnd.Next(0, 255))
   End Function

#End Region







· Devuelve un color QB aleatorio:
http://msdn.microsoft.com/en-us/library/d2dz8078%28v=vs.80%29.aspx

Código (vbnet) [Seleccionar]
#Region " Get Random QB Color Function "

   ' [ Get Random QB Color Function ]
   '
   ' Examples :
   ' Label1.ForeColor = Get_Random_QB_Color()

   Private QB_Random As New Random
   Public Function Get_Random_QB_Color() As Color
       Return Color.FromArgb(QBColor(QB_Random.Next(0, 15)) + &HFF000000)
   End Function

#End Region

#9138
Nadie sabe nada acerca de este tema, ¿verdad? :( Nadie sabe como hacerlo en ningún lenguaje ...Pero ni aquí ni en ningún sitio me saben dar una respuesta, aunque séa para explicarme porque NO se puede xD (si no se pudiera), maldita séa.

¿¡Como podré "togglear" los canales estéreo del volumen maestro del PC!? (o los canales de los headphones, que eso es lo que quiero hacer)  :(

Bueno, a ver si tengo suerte ahora con alguna respuesta milagrosa.

Gracias por leer.
#9139
Java / Re: [Java] Diccionario Online 0.1
8 Abril 2013, 04:58 AM
Cual es el problema, lo de Doddy es ¡ Programación activa !, muchas versiones y mismo código para distintos lenguajes, muchos users que no puedan usar X lenguaje dispondrán del mismo code para otro lenguaje, y lo agradecerán xD.

Por cierto, ¿Que tal Java?, ¿Consume tanto como dicen?.

Saludos!
#9140
Tienes toda la razón, el fallo era muy obvio pero no me daba cuenta por despiste, es decir, como en la versión gráfica la instancia no termina hasta que se recibe el evento FormClosing, pues los timers hacian su trabajo "en segundo plano", pero en la versión de consola esto era imposible porque la instancia finalizaba justo después de iniciar el timer.     más o menos xD.

Saludos.