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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 [864] 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 ... 1258
8631  Programación / Scripting / Re: hola bat que modifique el nombre de archivos de un directorio o carpeta en: 7 Agosto 2013, 20:39 pm
Hola

Te has debido confundir al decir que los nombres contienen los caracteres "/" y "\" ya que son caracteres prohibidos por Windows, no pueden contenerlos.

quiero un bat u otro tipo ce archivo que me renombre todos los archivos eliminando los simbolos y colocando todas las letras en minuscula y la primera letra de las palabras en mayusculas.

Quieres y pides, ¿Pero has intentado hacerlo por ti mismo?, ¿Donde está el código?.

Ya que dejas libre la elección del lenguaje entonces yo te propongo VisualBasicScript porque es soportado natívamente por Windows, ya que Batch es fácil pero muy lento para estas cosas y además se queda corto en características obligando a escribir mucho código de más el cual se podría hacer de forma mucho más simple en cualquier otro lenguaje,
de todas formas si prefieres hacerlo en Batch puedes esperar la respuesta de algún otro Batchero o usar el buscador del foro donde encontrarás esta misma pregunta repetida 1000 veces con soluciones mías y de otros compañeros.


Te doy la mitad del trabajo hecho, la parte fácil de listar los archivos y renombrarlos puedes intentar hacerlo por ti mismo documentándote con ejemplos aquí -> Top Secret

Código
  1. str = "LA_++L+UC+HA_P+OR_EL_AMOR"
  2. str = FormatString(str)      ' Llamamos a la función que formatea el String.
  3. str = ConvertToWordCase(str) ' Llamamos a la función que convierte el String a ProperCase.
  4. Wscript.Echo str             ' Mostramos el String.
  5. Wscript.Quit()               ' Terminamos la ejecución del script.
  6.  
  7. ' Funcs:
  8. ' ------
  9. Function FormatString(ByVal String)
  10. String = replace(String, "+","")  ' Reemplazo el caracter "+" por NADA.
  11. String = replace(String, "_"," ") ' Reemplazo el caracter "_" por ESPACIO.
  12. FormatString    = String          ' Devuelvo el String formateado.
  13. End Function
  14.  
  15. Function ConvertToWordCase(ByVal String)
  16. words = split(String," ") ' Parto el String en varios tokens delimitados por el caracter ESPACIO y lo guardo en un Array.
  17.  
  18. For i = 0 to ubound(words) ' Recorro cada valor del Array, es decir, cada palabra.
  19. ' Convierto la primera letra a UpperCase.
  20. words(i) = ucase(left(words(i),1)) _
  21. & lcase(mid(words(i),2)) ' Y convierto las demás letras a LowerCase.
  22. Next ' Prosigo con la siguiente palabra.
  23.  
  24. ConvertToWordCase = join(words," ") ' Junto el Array (Lo convierto a String) y lo devuelvo.
  25. End Function

Output:
Código:
La Lucha Por El Amor


PD: Si muestras algún intento de proseguir con el código de arriba no tendré ningún inconveniente en ayudarte a completarlo.

Saludos!
8632  Programación / .NET (C#, VB.NET, ASP) / Re: Fuga de memória en una función :( en: 7 Agosto 2013, 19:50 pm
Pero en principio te puedes fijar si tiene un evento, solo es poner punto en el nombre de instancia de clase y buscar el que tiene un "rayito" :xD
Si pero si el evento fuese privado por cualquier motivo pues no me iba a salir en el intellisense, es que en la class hay muchos "Tests" como cosas de prueba y cosas por mejorar, no está del todo perfeccionado así que tenía que usar el buscador de la IDE para examinar la class a fondo xD.


Citar
¿No hay un evento en esa clase para detectar el cambio de estado?
No, ninguno, hay que crear el evento o detectar el estado a lo cutre, mediante condiciones (if's).


En fín Novlucker he seguido tus indicaciones para lo del proceso:

En la class del winamp:
Código
  1.    Private Sub waProcess_Exited(ByVal sender As Object, ByVal e As EventArgs) Handles waProcess.Exited
  2.        RaiseEvent WinampExited()
  3.    End Sub

En la class de mi form:
Código
  1.    Private Sub Exited() Handles Winamp.WinampExited
  2.        Winamp_IsRunning = False
  3.    End Sub
  4.  
  5.    Private Sub Monitor_Timer_Tick(sender As Object, e As EventArgs) Handles Monitor_Timer.Tick
  6.        If Not Winamp_IsRunning Then Winamp_IsRunning = Winamp.Bind()
  7.    End sub
  8.  

Se nota mucho el cambio, gracias, aunque como ya digo la función Bind de esa class tiene algún problema así que por mucho que yo intente perfeccionar estas minucias no va a dejar de subir la RAM xD, aunque ahora he conseguido que suba reálmente muy poco a poco, el consumo de ram hace subidas y bajadas que no me gustan nada, pero bueno parece estar equilibrado, sube un poco y al rato como que el GC hace su trabajo, lo libera y vuelve a bajar el consumo, y vuelve a subir, en fin xD. (Todo esto dejando el proceso en "StandBy")

Saludos
8633  Programación / .NET (C#, VB.NET, ASP) / Re: Fuga de memória en una función :( en: 7 Agosto 2013, 18:08 pm
¿Por que ese necesario buscar cada 50 ms la ventana y el proceso de Winamp? Está claro que es algo muy costoso

Aún así ese trozo de código de la Class genera memoria sin cesar, aunque se use un Timer que tickee cada 10 segundos que llame a la función Bind, la cantidad de memoria en ese caso será minima pero al fin y al cabo incesante, hay algo que está mal en ese code.

¿No hay un evento en esa clase para detectar el cambio de estado?

En cuanto al proceso por ejemplo. Lo obtienes todas las veces y seteas EnableRaisingEvents en true, lo que hay que hacer es obtener el proceso, setear EnableRaisingEvents en true, suscribirse al evento Exited, y dejar de buscar el proceso. Cuando se dispara el evento Exited, entonces volvemos a buscar.

la Class del Winamp son 2000 o 3000 lineas de código, no me lo he mirado todo, eso es lo próximo que haré y ya te cuento.
8634  Media / Multimedia / Re: Alternativa a DVDFab en: 7 Agosto 2013, 17:43 pm
Supongo que has probado "Format Factory" y "Avidemux"...

Si, además el Avidemux lo uso desde siempre y solo sirve para convertir videos

También he probado con el StaxRip, pero solo sirve para convertir a otro formato

Por que no creas un iso con la peli bajada y cargas dicho iso en una unidad virtual para asi poder usar el anydvd?.

Podría decirte que me da mucha pereza crear una ISO de 30-50 GB para luego montarla y comprobar si el AnyDVD u otro programa hace lo que necesito o no lo hace xD... pero es que además de eso, no puedo estar perdiendo el tiempo creando las ISO'S de todos los DBRips que me descargo, si fuese solo para un BR pues vale, pero no es el caso, y se pierde mucho tiempo solo en eso ...sabiendo que hay programas como DVDFab que permiten extraer la película principal desde una carpeta que contenga un BR, y sin reconversión de ningún tipo... tiene que existir otro programa parecido!

Un saludo.
8635  Programación / .NET (C#, VB.NET, ASP) / Re: Error: No es posible crear una nueva página de seguridad para la pila en: 7 Agosto 2013, 17:34 pm
Gracias Novlucker.
8636  Programación / .NET (C#, VB.NET, ASP) / Re: Fuga de memória en una función :( en: 7 Agosto 2013, 17:29 pm
Hay algo que no entiendo y es ... ¿Por que ese necesario buscar cada 50 ms la ventana y el proceso de Winamp? Está claro que es algo muy costoso

La intención de repetirlo cada 50 ms es para detectar cuando el Winamp está en modo "Pausa" o en "Detenido", o para detectar si el proceso sigue activo o si ya no se está ejecutando el Winamp, si se te ocurre una forma más eficiente plz dímelo.

EDITO:


Para que entiendas lo que hago, tengo algo así:

Código
  1. Dim WinampIsRunning = winamp.bind() ' Esto devuelve True si el proceso de Winamp se está ejecutando
  2.  
  3. If WinampIsRunning then
  4.  
  5.    if winamp.state = winamp.state.Paused then...
  6.    ' actualizar posición del trackbar, labels, textboxes, etc...
  7.  
  8.    elseif winamp.state = winamp.state.Paused then...
  9.  
  10.    elseif winamp.state = winamp.state.Stoped then...
  11.  
  12. end if

PD: ¿Entonces tu tampoco encuentras el problema en el code de arriba?

Saludos
8637  Informática / Hardware / Re: Ralentización máxima en la velocidad de transfernecia de un HDD en: 7 Agosto 2013, 16:49 pm
pon cada disco en un alimentador diferente , sin que se doble , me refiero a una conexión directa de la fuente no que del cable salgan dos.

Gracias por la recomendación Imoen pero me es imposible hacer lo que pides, la fuente solo trae 2 alimentadores para conectar un total de 5 dispositivos SATA, luego trae otro alimentador que es para conectar dispositivos IDE's.

Así que tengo 4 HDD's, hay 3 entradas en la fuente, pero solo 2 alimentadores SATA, así que sólo puedo ocupar 2 entradas de la fuente.

Tengo un alimentador conectado al disco principal, y el otro alimentador alimentando (xD) al resto de HDD's.

Ahora el problema es que a veces hay "hangs" en el sistema que duran sobre 30-60 seg en el disco principal, como ya digo esto sucede incluso aunque el resto de HDD's se desconecten de la fuente...

No le doy mucha caña al PC, no sé que puede ser, cualquier otro consejo es bienvenido.

EDITO: He probado a disminuir el performance del disco principal desactivando las opciones de la caché de escritura y el vaciado de caché de escritura, imagino que sabrás que esto vuelve lentísimo a un HDD, pero aún así el problema de los cuelgues temporales persiste. Y por si sirve de algo, dichas opciones siempre las tengo desactivadas en los HDD's secundarios por precaución de pérdida de datos, solo activo la opción de la caché de escritura en el disco principal.

Saludos
8638  Programación / .NET (C#, VB.NET, ASP) / Re: Error: No es posible crear una nueva página de seguridad para la pila en: 7 Agosto 2013, 16:34 pm
@WarZ0n3 espero impaciente tu ayuda (o la de quien sea xD)

A mi me interesa saber una cosa, para descartar opciones e intentar aislar la raiz del problema...

¿El motivo de un stackoverflow sólo puede ser la recursividad de los metodos? ¿Existen otros motivos que puedan causar un overflow de la pila?

y...bueno, vuelvo al principio, ¿Se puede aumentar el tamaño del stack del main thread?, ví que se podían usar algunos comandos de compilación para aumentar el tamaño del stack de la aplicación, pero iba escaso de tiempo y ya no tengo la información, creo que había que usar la aplicación BinEdit.exe u otra manera era especificar un parámetro "/Stack" en el compilador del framework, ¿Me podeis verificar esto?.

Saludos
8639  Media / Multimedia / Re: Alternativa a DVDFab en: 7 Agosto 2013, 16:30 pm
"Magic DVD Ripper"

Si lo dices como recomendación te hago saber que ya lo he probado pero no sirve :(.

Si lo dices porque deberiamos intuir que sólamente funcionan con DVD's te equivocas,
DVDFab sel llama DVDFab pero funciona con BD's... al igual que otros programas que he nombrado que se llamana "DVD" pero sirven para BD's también...
...En fín tenía que probarlo todo.

Saludos
8640  Media / Multimedia / Re: Alternativa a DVDFab en: 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)
Páginas: 1 ... 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 [864] 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 ... 1258
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines