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

#8281
Multimedia / Re: Alternativa a DVDFab
7 Agosto 2013, 16:20 PM
Empiezo a mosquearme bastante... he probado con todo esto:


WinAVI Blu-ray Ripper   (solo permite convertir)
Aiseesoft Bluray Ripper (solo permite convertir)
VidCoder                (solo permite convertir)
Leawo DVD Ripper        (solo permite convertir)
Magic Blu-Ray Ripper    (solo permite convertir)
MakeMKV                 (solo permite convertir)
Xilisoft Blu-ray Ripper (solo permite convertir)
HandBrake               (solo permite convertir)

DVD Shrink              (solo funciona con DVD)
Aimersoft DVD Ripper    (solo funciona con DVD)

AnyDVD                  (Solo sirve para rippear desde el lector de BR)
Magic Blu-ray Copy      (Solo sirve para rippear desde el lector de BR)

Auto Rip n Compress     (no funciona en Windows 8)

Clown_BD                (Este es una completa basura inservible)

DVD43                   (esto no se ni pa que sirve la verdad...)



Y por último:

Magic DVD Ripper        (Este hace exáctamente lo que necesito, ripear desde una carpeta y sin pérdida de calidad, sin reconversión, pero solo funciona con DVD)
#8282
Multimedia / Re: Alternativa a DVDFab
7 Agosto 2013, 15:30 PM
Gracias Songoku pero acabo de probar las dos aplicaciones que mencionas y en las dos obligan a especificar un nuevo formato para reconvertir la película, no permiten editar ripear el BR símplemente como se puede hacer con DVDFab.

Saludos
#8283
Cita de: llunarota en  7 Agosto 2013, 13:16 PMPero se puede hacer un live cd con el win7. Eso es lo que vengo a preguntar.

Si, poder se puede como te han dicho, pero el entorno del sistema sería virtualizado, es decir, cualquier aplicación que instalases o cualquier archivo que manipulases del SO no se quedaría "grabado" en el sistema, en el próximo inicio del LiveCD no verías ningún cambio, así que si vas a hacer un LiveCD de Windows 7... primero asegúrate de incorporarle a la imágen de Windows todas las aplicaciones y cosas que vayas a necesitar usar en los PC's del aula.

Creo que lo mejor sería usar Windows 8 (La característica Windows To GO),
O un LiveCD de Linux, donde aquí si que se pueden registrar cualquier cambio en el sistema operativo, no me preguntes porqué.

Saludos.
#8284
Vamos a ver...

Imagina que tienes un PC con un procesador Intel, una gráfica nvidia y un HDD Sata.

¿Has pensado que pasaría si "instalas" Windows 7 en un pendrive, con la configuración de tu sistema, y luego intentas iniciar ese mismo Sistema Operativo en una máquina que tenga un AMD, una ATI, y un SSD?

Por otro lado, Con Windows 8 (versión Enterprise) si que puedes hacer lo que pides, instalar y ejecutar el SO diréctamente desde un USB,
Pero nunca lo he puesto en práctica así que no sé es si dicha caracteristica de Windows 8 es Universal o si por lo contrario sólo funcionaría desde el PC donde hiciste la instalación, por lo que he comentado más arriba.

-> Windows To GO
+ -> Top Secret

Saludos!
#8285
Multimedia / Alternativa a DVDFab
7 Agosto 2013, 11:42 AM
Hola

No se si lo sabeis pero las versiones 8 y 9 de DVDFab están Mega bugueadas para la mayoría de usuarios que usan Windows 8, producen hangs, algunas vecs pantallazos, y nunca se llega a iniciar la aplicación. Y por si fuera poco los desarrolladores han tenido la genial idea de bloquear el uso de DVDFab en máquinas virtuales para los que pretendemos seguir usándolo en versiones anteriores de Windows... (En fín).

Por eso estoy buscando alguna alternativa a DVDFab.

Lo único que quiero es ripear BR's DESCARGADOS, es decir, el BR está en una carpeta... de una típica descarga "Full BluRay", NO QUIERO RIPEAR DESDE EL LECTOR DE BluRays.

He probado el AnyDVD pero creo que sólo permite ripear desde el lector, no desde una carpeta...

En DVDFab puedes abrir una carpeta que contenga un rip de un BR y sacar la película completa (sin menues ni extras nada) con la pista en Castellano y eliminando las otras pistas, sin recomprimir ni nada, sólo eliminar las pistas y la demás basura, pues eso es lo que necesito hacer.

Saludos
#8286
Guardar y recuperar datos en una aplicación, por ejemplo si la aplicación se mata después de un bug o si reiniciamos el Pc (de forma brusca sin esperar a que las aplicaciones se cierren), etc...

El code es genérico y está optimizado para salvaguardar los datos (items) de un Listview, pero se puede modificar fácilmente para usarlo con todo tipo de datos...


PD: Esto es una traslación con pocas mejoras de un code de C# que me proporcionó Novlucker, así que los créditos para él.
Código (vbnet) [Seleccionar]
#Region " Backup and Recovery Listview Items "

    ' [ Backup and Recovery Listview Items ]

    ReadOnly BackupFile As String = "Recovery.tmp"  ' File conaining the data to recover.
    Private BackupData As New List(Of ListViewItem) ' Storage for the data to backup.
    Private BinaryFormat As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()

    Private Sub Backup(ByVal ListView As ListView)

        BackupData.Clear()

        Select Case ListView.Items.Count

            Case 0
                Try : IO.File.Delete(BackupFile) : Catch : End Try
                ' We don't need the BackupFile if it will not contains anything to recover...

            Case Else

                BackupData.AddRange(ListView.Items.Cast(Of ListViewItem))

                Using Writter As New IO.FileStream(BackupFile, IO.FileMode.Create)
                    BinaryFormat.Serialize(Writter, BackupData)
                End Using

        End Select

    End Sub

    Private Sub Recovery(ByVal ListView As ListView)

        If IO.File.Exists(BackupFile) Then

            Using Reader As New IO.FileStream(BackupFile, IO.FileMode.Open)
                BackupData = DirectCast(BinaryFormat.Deserialize(Reader), List(Of ListViewItem))
            End Using

            ListView.Items.AddRange(BackupData.ToArray())

        End If

    End Sub

#End Region


Ejemplo de uso:

Para guardar todos los items de un listview en un archivo temporal ...por ejemplo cada 60 segundos:

Código (vbnet) [Seleccionar]
   WithEvents BackupTimer As New Timer With {.Interval = 60 * 1000, .Enabled = True}

   Private Sub BackupTimer_Tick(sender As Object, e As EventArgs) Handles BackupTimer.Tick
       Backup(ListView1)
       End ' Matamos la aplicación si se quiere testear...
   End Sub



Y para restaurar los datos perdidos en la próxima ejecución de la aplicación podemos hacer lo siguiente:

Código (vbnet) [Seleccionar]
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       If IO.File.Exists(BackupFile) Then

           If MessageBox.Show( _
              "An error ocurred during the last session." & vbNewLine & vbNewLine & _
              "Do you want to recover the lost data?", "Recovery", _
              MessageBoxButtons.YesNo, MessageBoxIcon.Question) _
           = DialogResult.Yes Then

               Recovery(ListView1)
               MessageBox.Show("Data recovered!", "Recovery", MessageBoxButtons.OK, MessageBoxIcon.Information)

           End If

       End If
     
   End Sub


Saludos.
#8287
Muchas gracias!

Edito:

Así queda el código para VB

Código (vbnet) [Seleccionar]
#Region " Backup and Recovery Listview Items "

    ' [ Backup and Recovery Listview Items ]

    ReadOnly BackupFile As String = "Recovery.tmp"  ' File conaining the data to recover.
    Private BackupData As New List(Of ListViewItem) ' Storage for the data to backup.
    Private BinaryFormat As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()

    Private Sub Backup(ByVal ListView As ListView)

        BackupData.Clear()

        Select Case ListView.Items.Count

            Case 0
                Try : IO.File.Delete(BackupFile) : Catch : End Try
                ' We don't need the BackupFile if it will not contains anything to recover...

            Case Else

                BackupData.AddRange(ListView.Items.Cast(Of ListViewItem))

                Using Writter As New IO.FileStream(BackupFile, IO.FileMode.Create)
                    BinaryFormat.Serialize(Writter, BackupData)
                End Using

        End Select

    End Sub

    Private Sub Recovery(ByVal ListView As ListView)

        If IO.File.Exists(BackupFile) Then

            Using Reader As New IO.FileStream(BackupFile, IO.FileMode.Open)
                BackupData = DirectCast(BinaryFormat.Deserialize(Reader), List(Of ListViewItem))
            End Using

            ListView.Items.AddRange(BackupData.ToArray())

        End If

    End Sub

#End Region
#8288
Estoy saliendo del apuro haciéndolo de la siguiente manera, pero me parece muy cutre y segúramente se puede mejorar mucho...

Guardar:
Código (vbnet) [Seleccionar]
   Dim Recovery_Items As New List(Of Tuple(Of Integer, String, String))()

   ' Recovery Timer
   Private Sub Recovery_Timer_Tick() Handles Recovery_Timer.Tick

       Recovery_Items.Clear()

       For Each item As ListViewItem In ListView_Monitor.Items
           Recovery_Items.Add(Tuple.Create( _
                             item.Index, _
                             String.Format("""""{0}""""", item.SubItems(1).Text), _
                             String.Format("""""{0}""""", item.SubItems(2).Text)))
       Next

       IO.File.WriteAllText("Recovery.tmp", String.Join(vbNewLine, Recovery_Items), System.Text.Encoding.ASCII)

   End Sub



Archivo de texto:
(0, "Valor1", "Valor2")
(1, "V,a,l,o,r,1", "V,a,l,o,r,2")



Cargar:
Código (vbnet) [Seleccionar]
   Dim Recovery_Index As Integer = 0

   Private Sub Recovery()

       If IO.File.Exists("Recovery.tmp") Then

           For Each Line As String In IO.File.ReadAllLines("Recovery.tmp")

               Line = Line.Substring(1, Line.Length - 2) ' Deletes the first and last () chars.

               For Each value As String In Line.Split(", """)
                   Recovery_Index += 1
                   Select Case Recovery_Index
                       Case 1
                           item = ListView_Monitor.AddItem(value.Replace("""", Nothing).Trim)
                       Case Else
                           item.SubItems.Add(value.Replace("""", Nothing).Trim)
                   End Select
               Next
               Recovery_Index = 0
           Next

       End If

   End Sub
#8289
Estoy intentando hacer una manera para recuperar los items de un listview si la aplicación se cierra o se mata indebídamente.

El listview está en modo "detalles" y tiene 3 columnas.

Para guardar los items, hago esto:

Código (vbnet) [Seleccionar]
   Dim Recovery_Items As New List(Of Tuple(Of Integer, String, String))()

   Private Sub Recovery_Timer_Tick() Handles Recovery_Timer.Tick

       Recovery_Items.Clear()

       For Each item As ListViewItem In ListView_Monitor.Items
           Recovery_Items.Add(Tuple.Create(item.Index, item.SubItems(1).Text, item.SubItems(2).Text))
       Next

       IO.File.WriteAllText("Recovery.tmp", String.Join(vbNewLine, Recovery_Items), System.Text.Encoding.Default)

   End Sub



...Lo cual me genera esto en un archivo de texto:

(0, Valor1, Valor2)
(1, V-a-l-o-r-1, V-a-l-o-r-2)
(2, V,a,l,o,r,1, V,a,l,o,r,2)




Ahora, ¿Como puedo parsear/castear el contenido del archivo de texto para agregarlo como item del listview en sus respectivas columnas?



Un ejemplo de lo que intento hacer, esto sucedería al iniciar la aplicación:

Código (vbnet) [Seleccionar]
   Private Sub Recovery()

       If IO.File.Exists("Recovery.tmp") Then

           For Each Line As String In IO.File.ReadAllLines("Recovery.tmp")
               ListView_Monitor.Items.Add(TryCast(Line, ListViewItem))
           Next

       End If

   End Sub


Pero claro... al contener tantas comas los valores, no puedo hacer un Split, ni se me ocurre nada que hacer.
#8290
Pues si, una lista de tuplas xD:

Código (vbnet) [Seleccionar]
Private Recovery_Items As New List(Of Tuple(Of Integer, String, String))()

y luego...
Código (vbnet) [Seleccionar]
Recovery_Items.Add(Tuple.Create(item.Index, item.SubItems(1).Text, item.SubItems(2).Text))

Gracias a los dos.