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

#8951
Según lo que estuvimos hablando me parece que SyntaxError404 se ha resignado a intentar hacer el programa por si mismo a pesar de la información que le hemos dado y códigos de ejemplo... pero bueno, a ver si nos sorprendes mostrando algún avanze para poder ayudarte, no es dificil.

Saludos!
#8952
+1 por la interface estilo "Tron"  :xD, me gusta!

#8953
Multimedia / Re: Tipo de archivo de Audio
19 Mayo 2013, 22:17 PM
eing?

No he entendido muy bien pero por un lado estoy convencido que lo que quieres tomar como referencia son 1024 KB (1 Megabyte).

Pero por otro lado, todo eso es muy relativo Zorronde... puedes codificar con Lame en variable bitrate sin apenas calidad y usando un solo canal (Mono), y el resultado sería de +3 minutos de audio por cada 1024 kb de tamaño.

Mírate la tabla de "Technical details", eso es lo que quieres: http://en.wikipedia.org/wiki/Comparison_of_audio_formats
Para saber cuanta duración de audio para cada formato cabría en 1024 KB debes hacer la fórmula matemática (que no recuerdo como era), entre el samplerate, el bitrate, y 1 byte, si no recuerdo mal, búscala en Google.

Pero no le des muchas vueltas... para mi lo mejor en relación Calidad/Tamaño sigue siendo el MP3, si quiero calidad extrema sin importar el tamaño entonces primero me aseguro que la fuente original es de calidad extrema, y luego uso el codec FLAC.

Saludos
#8954
Un código de Batch no se puede compilar... lo que quieres es un "convertidor".

Primero crea un proyecto compilando un .exe que será el encargado de lanzar el bat que haya en el directorio de trabajo actual.
Por otro lado crea otro proyecto, el exe del primer proyecto como recurso, y el archivo bat que desees, compilas y listo, ya tienes tu bat "compilado".

Aquí tienes un proyecto en VB.NET, lo he inspeccionado con .NET Reflector y como me imaginaba el recurso embedido "mytemp.exe" hace exáctamente lo que te expliqué, "mytemp.exe" lo único que hace es ejecutar el proceso "CMD.exe" con el archivo bat.
http://tech.reboot.pro/showthread.php?tid=1083

Saludos.
#8955
Multimedia / Re: alguien podria ayudarme?
19 Mayo 2013, 00:32 AM
@marrison
Ya que pides cosas con todo el morro, al menos léete las normas sobre los títulos prohibidos ("¿me ayudan?"), para la próxima vez.

Saludos
#8956
.NET (C#, VB.NET, ASP) / Re: [SOURCE] Splat
18 Mayo 2013, 13:17 PM
La versión que compartí tenía un error grave con la transparencia.

En el post principal pueden descargar la nueva versión.

Citar
  • Cambios v1.1:
         - Bug correjido: La imagen no se centra en la pantalla después de redimensionarla.
         - Bug correjido: La transparencia de la aplicación afecta a la imagen mostrada (la imagen pierde ciertos colores).
         - Añadida compatibilidad 100% con imágenes PNG/ICO transparentes y con sombras.
         - Añadido los parámetros "/Ontop" y "/Clickable".
         - Añadido un icono a la aplicación.
         - Pequeñas optimizaciones de código para cargar más rápido.
         - Erratas de texto correjidas en la sección de ayuda de la aplicación.

         
  • Cosas por hacer:
         Añadir compatibilidad con los efectos FadeIn/FadeOUT para imágenes PNG/ICO.
         Añadir Más efectos especiales.
#8957
Un ColorDialog "por defecto" que tiene las propiedades "Title" y "Location",
Además se puede handlear el color que hay seleccionado en cualquier momento en el modo "Full open", para obtener el color sin tener que confirmar el diálogo.

PD: Hay que instanciarlo siempre para handlear el .Currentcolor

Ejemplos de uso:

Código (vbnet) [Seleccionar]
Public Class Form1

    Private WithEvents PicBox As New PictureBox
    Private WithEvents ColorDlg As ColorDialog_RealTime.Colordialog_Realtime = Nothing

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        PicBox.BackColor = Color.Blue
        Me.Controls.Add(PicBox)
    End Sub

    Private Sub PicBox_Click(sender As Object, e As EventArgs) Handles PicBox.Click
        ColorDlg = New ColorDialog_RealTime.Colordialog_Realtime
        ColorDlg.Title = "Hello!"
        ColorDlg.Location = New Point(Me.Right, Me.Top)
        ColorDlg.Color = sender.backcolor
        If ColorDlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
            sender.BackColor = ColorDlg.Color
        End If
        ColorDlg = Nothing
    End Sub

    Private Sub ColorDlg_CurrentColor(c As System.Drawing.Color) Handles ColorDlg.CurrentColor
        PicBox.BackColor = c
    End Sub

End Class



Código (vbnet) [Seleccionar]
Public Class Colordialog_Realtime
   Inherits ColorDialog

   Public Event CurrentColor(ByVal c As Color)

   Private Const GA_ROOT As Integer = 2
   Private Const WM_PAINT As Integer = &HF
   Private Const WM_CTLCOLOREDIT As Integer = &H133

   Public Declare Function GetAncestor Lib "user32.dll" _
       (ByVal hWnd As IntPtr, ByVal gaFlags As Integer) As IntPtr

   Private EditWindows As List(Of ApiWindow) = Nothing

   Public Sub New()
       Me.FullOpen = True
   End Sub

   <Runtime.InteropServices.DllImport("user32.dll")> _
   Private Shared Function SetWindowText(hWnd As IntPtr, lpString As String) As Boolean
   End Function

   Private Const SWP_NOSIZE As Integer = &H1
   Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
       (ByVal hwnd As IntPtr, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer

   Private m_title As String = String.Empty
   Private titleSet As Boolean = False

   Public Property Title() As String
       Get
           Return m_title
       End Get
       Set(value As String)
           If value IsNot Nothing AndAlso value <> m_title Then
               m_title = value
               titleSet = False
           End If
       End Set
   End Property

   Private m_location As Point = Point.Empty
   Private locationSet As Boolean = False

   Public Property Location() As Point
       Get
           Return m_location
       End Get
       Set(value As Point)
           If Not value.Equals(Point.Empty) AndAlso Not value.Equals(m_location) Then
               m_location = value
               locationSet = False
           End If
       End Set
   End Property

   <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
   Protected Overrides Function HookProc(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
       Select Case msg
           Case WM_PAINT
               If Not titleSet AndAlso Title <> String.Empty Then
                   SetWindowText(GetAncestor(hWnd, GA_ROOT), Title)
                   titleSet = True
               End If
               If Not locationSet AndAlso Not m_location.Equals(Point.Empty) Then
                   SetWindowPos(GetAncestor(hWnd, GA_ROOT), 0, m_location.X, m_location.Y, 0, 0, SWP_NOSIZE)
                   locationSet = True
               End If

           Case WM_CTLCOLOREDIT
               If IsNothing(EditWindows) Then
                   Dim mainWindow As IntPtr = GetAncestor(hWnd, GA_ROOT)
                   If Not mainWindow.Equals(IntPtr.Zero) Then
                       EditWindows = New List(Of ApiWindow)((New WindowsEnumerator).GetChildWindows(mainWindow, "Edit"))
                   End If
               End If

               If Not IsNothing(EditWindows) AndAlso EditWindows.Count = 6 Then
                   Dim strRed As String = WindowsEnumerator.WindowText(EditWindows(3).hWnd)
                   Dim strGreen As String = WindowsEnumerator.WindowText(EditWindows(4).hWnd)
                   Dim strBlue As String = WindowsEnumerator.WindowText(EditWindows(5).hWnd)

                   Dim Red, Green, Blue As Integer
                   If Integer.TryParse(strRed, Red) Then
                       If Integer.TryParse(strGreen, Green) Then
                           If Integer.TryParse(strBlue, Blue) Then
                               RaiseEvent CurrentColor(Color.FromArgb(Red, Green, Blue))
                           End If
                       End If
                   End If
               End If
       End Select

       Return MyBase.HookProc(hWnd, msg, wParam, lParam)
   End Function

End Class

Class ApiWindow
   Public hWnd As IntPtr
   Public ClassName As String
   Public MainWindowTitle As String
End Class

Class WindowsEnumerator

   Private Delegate Function EnumCallBackDelegate(ByVal hwnd As IntPtr, ByVal lParam As Integer) As Integer

   Private Declare Function EnumWindows Lib "user32" _
       (ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer

   Private Declare Function EnumChildWindows Lib "user32" _
       (ByVal hWndParent As IntPtr, ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer

   Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
       (ByVal hwnd As IntPtr, ByVal lpClassName As System.Text.StringBuilder, ByVal nMaxCount As Integer) As Integer

   Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As IntPtr) As Integer

   Private Declare Function GetParent Lib "user32" (ByVal hwnd As IntPtr) As Integer

   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
       (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
       (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As System.Text.StringBuilder) As Integer

   Private _listChildren As New List(Of ApiWindow)
   Private _listTopLevel As New List(Of ApiWindow)

   Private _topLevelClass As String = String.Empty
   Private _childClass As String = String.Empty

   Public Overloads Function GetTopLevelWindows() As ApiWindow()
       EnumWindows(AddressOf EnumWindowProc, &H0)
       Return _listTopLevel.ToArray
   End Function

   Public Overloads Function GetTopLevelWindows(ByVal className As String) As ApiWindow()
       _topLevelClass = className
       Return Me.GetTopLevelWindows()
   End Function

   Public Overloads Function GetChildWindows(ByVal hwnd As Int32) As ApiWindow()
       _listChildren.Clear()
       EnumChildWindows(hwnd, AddressOf EnumChildWindowProc, &H0)
       Return _listChildren.ToArray
   End Function

   Public Overloads Function GetChildWindows(ByVal hwnd As Int32, ByVal childClass As String) As ApiWindow()
       _childClass = childClass
       Return Me.GetChildWindows(hwnd)
   End Function

   Private Function EnumWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32
       If GetParent(hwnd) = 0 AndAlso IsWindowVisible(hwnd) Then
           Dim window As ApiWindow = GetWindowIdentification(hwnd)
           If _topLevelClass.Length = 0 OrElse window.ClassName.ToLower() = _topLevelClass.ToLower() Then
               _listTopLevel.Add(window)
           End If
       End If
       Return 1
   End Function

   Private Function EnumChildWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32
       Dim window As ApiWindow = GetWindowIdentification(hwnd)
       If _childClass.Length = 0 OrElse window.ClassName.ToLower() = _childClass.ToLower() Then
           _listChildren.Add(window)
       End If
       Return 1
   End Function

   Private Function GetWindowIdentification(ByVal hwnd As Integer) As ApiWindow
       Dim classBuilder As New System.Text.StringBuilder(64)
       GetClassName(hwnd, classBuilder, 64)

       Dim window As New ApiWindow
       window.ClassName = classBuilder.ToString()
       window.MainWindowTitle = WindowText(hwnd)
       window.hWnd = hwnd
       Return window
   End Function

   Public Shared Function WindowText(ByVal hwnd As IntPtr) As String
       Const W_GETTEXT As Integer = &HD
       Const W_GETTEXTLENGTH As Integer = &HE

       Dim SB As New System.Text.StringBuilder
       Dim length As Integer = SendMessage(hwnd, W_GETTEXTLENGTH, 0, 0)
       If length > 0 Then
           SB = New System.Text.StringBuilder(length + 1)
           SendMessage(hwnd, W_GETTEXT, SB.Capacity, SB)
       End If
       Return SB.ToString
   End Function

End Class
#8958
Reproducir, pausar, detener archivos MP3/WAV/MIDI

Código (vbnet) [Seleccionar]
   ' PlayFile
   '
   ' Examples:
   ' Dim Audio As New PlayFile("C:\File.mp3")
   ' Audio.Play()
   ' Audio.Pause()
   ' Audio.Resume()
   ' Audio.Stop()

#Region " PlayFile Class"

''' <summary>
''' This class is a wrapper for the Windows API calls to play wave, midi or mp3 files.
''' </summary>
''' <remarks>
''' </remarks>
Public Class PlayFile
   '***********************************************************************************************************
   '        Class:  PlayFile
   '   Written By:  Blake Pell (bpell@indiana.edu)
   ' Initial Date:  03/31/2007
   ' Last Updated:  02/04/2009
   '***********************************************************************************************************

   ' Windows API Declarations
   Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Int32, ByVal hwndCallback As Int32) As Int32

   ''' <summary>
   ''' Constructor:  Location is the filename of the media to play.  Wave files and Mp3 files are the supported formats.
   ''' </summary>
   ''' <param name="Location"></param>
   ''' <remarks></remarks>
   Public Sub New(ByVal location As String)
       Me.Filename = location
   End Sub

   ''' <summary>
   ''' Plays the file that is specified as the filename.
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub Play()

       If _filename = "" Or Filename.Length <= 4 Then Exit Sub

       Select Case Right(Filename, 3).ToLower
           Case "mp3"
               mciSendString("open """ & _filename & """ type mpegvideo alias audiofile", Nothing, 0, IntPtr.Zero)

               Dim playCommand As String = "play audiofile from 0"

               If _wait = True Then playCommand += " wait"

               mciSendString(playCommand, Nothing, 0, IntPtr.Zero)
           Case "wav"
               mciSendString("open """ & _filename & """ type waveaudio alias audiofile", Nothing, 0, IntPtr.Zero)
               mciSendString("play audiofile from 0", Nothing, 0, IntPtr.Zero)
           Case "mid", "idi"
               mciSendString("stop midi", "", 0, 0)
               mciSendString("close midi", "", 0, 0)
               mciSendString("open sequencer!" & _filename & " alias midi", "", 0, 0)
               mciSendString("play midi", "", 0, 0)
           Case Else
               Throw New Exception("File type not supported.")
               Call Close()
       End Select

       IsPaused = False

   End Sub

   ''' <summary>
   ''' Pause the current play back.
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub Pause()
       mciSendString("pause audiofile", Nothing, 0, IntPtr.Zero)
       IsPaused = True
   End Sub

   ''' <summary>
   ''' Resume the current play back if it is currently paused.
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub [Resume]()
       mciSendString("resume audiofile", Nothing, 0, IntPtr.Zero)
       IsPaused = False
   End Sub

   ''' <summary>
   ''' Stop the current file if it's playing.
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub [Stop]()
       mciSendString("stop audiofile", Nothing, 0, IntPtr.Zero)
   End Sub

   ''' <summary>
   ''' Close the file.
   ''' </summary>
   ''' <remarks></remarks>
   Public Sub Close()
       mciSendString("close audiofile", Nothing, 0, IntPtr.Zero)
   End Sub

   Private _wait As Boolean = False
   ''' <summary>
   ''' Halt the program until the .wav file is done playing.  Be careful, this will lock the entire program up until the
   ''' file is done playing.  It behaves as if the Windows Sleep API is called while the file is playing (and maybe it is, I don't
   ''' actually know, I'm just theorizing).  :P
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   Public Property Wait() As Boolean
       Get
           Return _wait
       End Get
       Set(ByVal value As Boolean)
           _wait = value
       End Set
   End Property

   ''' <summary>
   ''' Sets the audio file's time format via the mciSendString API.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   ReadOnly Property Milleseconds() As Integer
       Get
           Dim buf As String = Space(255)
           mciSendString("set audiofile time format milliseconds", Nothing, 0, IntPtr.Zero)
           mciSendString("status audiofile length", buf, 255, IntPtr.Zero)

           buf = Replace(buf, Chr(0), "") ' Get rid of the nulls, they muck things up

           If buf = "" Then
               Return 0
           Else
               Return CInt(buf)
           End If
       End Get
   End Property

   ''' <summary>
   ''' Gets the status of the current playback file via the mciSendString API.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   ReadOnly Property Status() As String
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile mode", buf, 255, IntPtr.Zero)
           buf = Replace(buf, Chr(0), "")  ' Get rid of the nulls, they muck things up
           Return buf
       End Get
   End Property

   ''' <summary>
   ''' Gets the file size of the current audio file.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   ReadOnly Property FileSize() As Integer
       Get
           Try
               Return My.Computer.FileSystem.GetFileInfo(_filename).Length
           Catch ex As Exception
               Return 0
           End Try
       End Get
   End Property

   ''' <summary>
   ''' Gets the channels of the file via the mciSendString API.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   ReadOnly Property Channels() As Integer
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile channels", buf, 255, IntPtr.Zero)

           If IsNumeric(buf) = True Then
               Return CInt(buf)
           Else
               Return -1
           End If
       End Get
   End Property

   ''' <summary>
   ''' Used for debugging purposes.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   ReadOnly Property Debug() As String
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile channels", buf, 255, IntPtr.Zero)

           Return Str(buf)
       End Get
   End Property

   Private _isPaused As Boolean = False
   ''' <summary>
   ''' Whether or not the current playback is paused.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   Public Property IsPaused() As Boolean
       Get
           Return _isPaused
       End Get
       Set(ByVal value As Boolean)
           _isPaused = value
       End Set
   End Property

   Private _filename As String
   ''' <summary>
   ''' The current filename of the file that is to be played back.
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   Public Property Filename() As String
       Get
           Return _filename
       End Get
       Set(ByVal value As String)

           If My.Computer.FileSystem.FileExists(value) = False Then
               Throw New System.IO.FileNotFoundException
               Exit Property
           End If

           _filename = value
       End Set
   End Property
End Class

#End Region






Ejemplos de uso del Windows Media Player control:

Código (vbnet) [Seleccionar]
#Region " Windows Media Player "

       AxWindowsMediaPlayer1.Visible = False
       AxWindowsMediaPlayer1.URL = "C:\Audio.mp3"
       AxWindowsMediaPlayer1.URL = "C:\Video.avi"
       AxWindowsMediaPlayer1.settings.volume = 50
       AxWindowsMediaPlayer1.settings.setMode("autoRewind", False) ' Mode indicating whether the tracks are rewound to the beginning after playing to the end. Default state is true.
       AxWindowsMediaPlayer1.settings.setMode("loop", False) ' Mode indicating whether the sequence of tracks repeats itself. Default state is false.
       AxWindowsMediaPlayer1.settings.setMode("showFrame", False) ' Mode indicating whether the nearest video key frame is displayed at the current position when not playing. Default state is false. Has no effect on audio tracks.
       AxWindowsMediaPlayer1.settings.setMode("shuffle", False) ' Mode indicating whether the tracks are played in random order. Default state is false.
       AxWindowsMediaPlayer1.Ctlcontrols.play()
       AxWindowsMediaPlayer1.Ctlcontrols.stop()

#End Region
#8959
Cita de: alexowolff en 18 Mayo 2013, 10:59 AM
me mediinfo no tiene ese modo depurar, me decis que programa es ese, mi media info vino con k lite mega pack.

El K-Lite te instala el "MediaInfo Lite", que es una versión gráfica especial del MediaInfo para K-Lite (Una GUI), está muy bien para añadir el programa al menú contextual de Windows para los videos, pero desde luego no es el MediaInfo original.

MediaInfo se suele usar por consola, también tiene sus dll's SDK para programadores (De ahí existe el programa MediaInfo-Lite)
http://mediainfo.sourceforge.net/en/Download

No se a que modo "depurar" te refieres,
Saludos.
#8960
Scripting / Re: No me sale este batch :S
17 Mayo 2013, 23:37 PM
Y no te resultaría esto algo más entendible?:

Código (dos) [Seleccionar]
:home
echo VINE POR ACA PARA DECIRTE QUE SON LAS 12 DE LA NOCHE.
echo+
echo [1] Programar un temporizador de auto-apagado.
echo [2] No hacer nada y seguir en marcha.
echo [6] Cancelar un temporizador de auto-apagado activo. | MORE

Choice /C 126 /M "elige una opcion: "
If %Errorlevel% EQU 1 (Goto :apagar)
If %Errorlevel% EQU 2 (Goto :salir)
If %Errorlevel% EQU 3 (Goto :cancel)


Saludos