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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 ... 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [95] 96 97 98 99 100 101 102 103 104 105
941  Programación / Scripting / Interfaces gráficas en: 12 Marzo 2012, 10:39 am
Hola

Me gustaría saber que interfaces gráficas existen para usar con un lenguaje Scripting.

Y a ser posible, La que piensen que es la más fácil de codear, Y la más documentada...

Solo conozco GTK, Pero debe haber más.

saludos
942  Informática / Software / ¿Limitar velocidad de descarga en Firefox? en: 9 Marzo 2012, 01:54 am
No se si esta es la sección adecuada para esta pregunta jeje

Necesito limitar la velocidad de descarga solamente en las descargas de Firefox...

He buscado y lo único que encuentro es el plugin Firefox Throttle, Que ya no es compatible, Y el "Compatibility reporter" (Para instalar addons incompatibles en Firefox) támpoco es compatible ya...

Y programas como NetLimiter...  No me hacen mucha gracia.

También he buscado sobre los parámetros del "about:config" en firefox, y según he leido solo se puede limitar las máximas conexiones pero nada que ver...

¿Alguien sabe como puedo hacerlo entonces?
943  Foros Generales / Dudas Generales / OpenDNS, ¿Es cierto que conviene usarlo? en: 8 Marzo 2012, 13:00 pm
Según he leido en esta página, al utilizar openDNS se debería poder navegar mucho más rápido por las cosas que explican...

http://tweaks.com/windows/39287/speed-up-web-browsing-with-opendns/


¿Es cierto?
¿Vale la pena?


944  Programación / Scripting / [Ruby] Obtener el nombre de un proceso mediante el HWND? en: 7 Marzo 2012, 01:58 am
Hola...

Necesito obtener el nombre de un proceso sabiendo unicamente el "Window Handle" (HWND) de su ventana principal o de una de sus ventanas.

Sé que esto se puede hacer con la Win32API, Pero en todo el MSDN no encuentro info acerca de esos parámetros tan raros que usa...
Y además ya me he visto varios ejemplos por Google , En C, VB, y Ruby, que hacen algo parecido, Pero no me entero de nada la verdad...

Agradecería una ayuda por aqui

saludos!!

EDITO: ah por cierto, el HWND lo obtengo con la win32/api (no win32api), es un número integro, No es hexadecimal, pero me sirve en los dos casos, es muy fácil convertirlo en ruby...
945  Programación / Scripting / [APORTE] Ruby 1.9.3 portable auto-instalable para Windows by Elektro H@cker en: 4 Marzo 2012, 20:32 pm
Ruby 1.9.3 portable auto-instalable para Windows        

by Elektro H@cker





No hay mucho más que decir :P, Se instala en "C:\Archivos de programa\" (Tanto en x64 como x86) y lleva un desinstalador.

Lleva algunas gemas:
Ocra
Colored

Y 2 o 3 que no recuerdo xD

Funciona todo igual que una instalacion normal de ruby:

En consola:
Código
  1. gem install NOMBRE
Código
  1. ruby script.rb
Código
  1. Ocra script.rb
Código
  1. irb
etc...

Además le he agregado un icono personalizado para los archivos .rb y .rbw, y una opción en el menú contextual, esta:

946  Programación / Scripting / (solucionado) [Ruby] Comprobar si un archivo está abierto por un proceso ??? en: 4 Marzo 2012, 15:31 pm
Hola amigos

A ver, se abrir una instancia de la CMD de 3 maneras y se recibir el código de salida

Código
  1. puts %x[Tasklist /v | Find "%tmp:~0,30%" >NUL]
  2. response = $?.exitstatus

Eso me funciona.

Pero ahora necesito abrir la consola en modo oculto (Y solo se hacerlo con el modulo Win32ole), y entonces el exitstatus me manda error , no se porque:(:

Código
  1. require 'win32ole'
  2. shell = WIN32OLE.new('Shell.Application')
  3.  
  4. shell.ShellExecute('CMD', '/K Tasklist /v | Find "%tmp:~0,30%" >NUL', '', '', 0)
  5. response = $?.exitstatus
  6. if response == 0
  7.  puts "hola"
  8.  end

Código:
undefined method `exitstatus' for nil:NilClass (NoMethodError)


EDITO: Esto tampoco me funciona:

Código
  1. require 'win32ole'
  2. $shell = WIN32OLE.new('Shell.Application')
  3. $shell.ShellExecute('CMD', '/c echo aaaa & pause', '', '', 1)
  4. $!.is_a?(win32ole)
  5. puts $!.exited?

Código:
`is_a?': class or module required (TypeError)

EDITO2: esto támpoco xD

Código
  1. require 'win32ole'
  2. $shell = WIN32OLE.new('Shell.Application')
  3. output = $shell.ShellExecute('CMD', '/c echo aaaa & echo %errorlevel%', '', '', 1)
  4. p output

(El caso es que con "system" si funciona  :-( )
947  Programación / Scripting / [RUBY] (APORTE) MoveIt (Complemento para el menú SendTo de Windows) en: 4 Marzo 2012, 15:25 pm
MoveIt     By Elektro H@cker

 SO: Windows

 Agradecimientos para "kicasta" y "RyogiShiki".


Descripción:
 Mueve archivos desde un punto de origen hasta un punto de destino.
 Está pensado para usarlo como complemento del "SendTo" de Windows, El cual no mueve archivos de un disco duro a otro.



Instrucciones:

 1º Crear un acceso directo a una carpeta.





 2º Abrir las propiedades del aceso directo.




 3º Añadir la ruta de este script a la propiedad "Destino".



 Ejemplo destino:                                       Ruby C:\Windows\MoveIt.rb "C:\Nueva carpeta"
 Ejemplo destino (Script compilado a .exe): C:\Windows\System32\MoveIt.exe "C:\Nueva carpeta"


 4º (Opcional) Guardar el acceso directo modificado en la carpeta "SendTo" (C:\Users\USUARIO\AppData\Roaming\Microsoft\Windows\SendTo)







NOTAS:

 Este script requiere el uso de argumentos. (Uno para la ruta de destino y el otro para el/los archivo(s) a mover.)

 Si la carpeta de destino no existe, se pregunta para crearla o no. (Si no se crea, no se pueden copiar los archivos y se cancelará el programa xD)



 Si el archivo de destino ya existe, Se pregunta por su reemplazamiento.



 Si el archivo está siendo usado por el sistema, Se da lugar a reintentar o cancelar la operación.



Si el archivo de origen contiene el caracter ilegal "–" (u2013) se reemplaza por el caracter "-"

 En equipos de 64 Bit,Hay que copiar el compilado (.exe) tanto a la carpeta "System32" como "SysWOW64" Si se quiere usar la propiedad "Destino" de la siguiente forma en el acceso directo:




El script compilado (No muestra la consola):

EDITADO: 07/03/2012

http://www.mediafire.com/?clyzd39xxlxzn0d



El script:

EDITADO: 07/03/2012


Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3.  
  4. # MoveIt   v1.0  By Elektro H@cker
  5. #
  6. # SO: Windows
  7. # Agradecimientos para "kicasta" y "RyogiShiki".
  8.  
  9.  
  10. # Descripción:
  11. # Mueve archivos desde un punto de origen hasta un punto de destino.
  12. # Está pensado para usarlo como complemento del "SendTo" de Windows, El cual no mueve archivos de un disco duro a otro.
  13.  
  14.  
  15. # Modo de empleo:
  16. #
  17. # 1º Crear un acceso directo a una carpeta.
  18. # 2º Abrir las propiedades del aceso directo.
  19. # 3º Añadir la ruta de este script a la propiedad "Destino".
  20. #
  21. # Ejemplo destino: Ruby C:\\MoveIt.rb "E:\Nueva carpeta"
  22. # Ejemplo destino (Script compilado a .exe): C:\MoveIt.exe "E:\Nueva carpeta"
  23. #
  24. # 4º (Opcional) Guardar el acceso directo modificado en la carpeta "SendTo" (C:\Users\USUARIO\AppData\Roaming\Microsoft\Windows\SendTo)
  25. #
  26.  
  27.  
  28. # Notas:
  29. #
  30. # Este script requiere el uso de argumentos. (Uno para la ruta de destino y el otro para el/los archivo(s) a mover.)
  31. #
  32. # Si la carpeta de destino no existe, se pregunta para crearla o no. (Si no se crea, no se pueden copiar los archivos xD)
  33. # Si el archivo de destino ya existe, Se pregunta por su reemplazamiento.
  34. # Si el archivo está siendo usado por algún proceso abierto, Se da lugar a reintentar o cancelar la operación.
  35. #
  36. # En equipos de 64 Bit,Hay que copiar el compilado (.exe) tanto a la carpeta "System32" como "SysWOW64" Si se quiere usar la propiedad "Destino" de la siguiente forma en el acceso directo:
  37. # MoveIt "C:\Nueva carpeta"
  38.  
  39.  
  40. # RECORDATORIO
  41. #
  42. # Caracteres ilegales
  43. #
  44. # á : .gsub("ß", "á")
  45. # é : .gsub("Ú", "é")
  46. #  í : .gsub("Ý", "í")
  47. # ó : .gsub("¾", "ó")
  48. # ú : .gsub("·", "ú")
  49. # ¿ : .gsub("┐", "\u00BF")
  50. # – : .gsub("\û", "\u2013")
  51. #  ´ : .gsub("\┤", "\u00B4")
  52. #  · : .gsub("\À", "\u00B7")
  53. # ¬ : .gsub("\¼", "\u00AC")
  54. #  º : .gsub("\║", "\u00BA")
  55. #  ª : .gsub("\¬", "\u00AA")
  56. #
  57. #  ¡  : FAIL    :(
  58. #   ' : FAIL    :(
  59. #
  60. # Convertir Handle a Hex
  61. # puts 1272.to_s 16
  62. # 0x + HandleHEX
  63.  
  64.  
  65.  
  66. # Modulos
  67.  
  68. require 'dl'
  69. require "FileUtils"
  70. require 'win32ole'
  71. require 'win32/api'
  72. include Win32
  73.  
  74. exit if Object.const_defined?(:Ocra)
  75.  
  76.  
  77.  
  78. # Variables globales y constantes
  79.  
  80. if ARGV.empty? == false
  81. $DIR = (ARGV[0].encode('utf-8').gsub("ß", "á").gsub("Ú", "é").gsub("Ý", "í").gsub("¾", "ó").gsub("·", "ú").gsub("┐", "\u00BF").gsub("", "\u2013").gsub("┤", "\u00B4").gsub("", "\u00B7").gsub("", "\u00AA").gsub("", "\u00AC").gsub("\║", "\u00BA"))
  82. $DIRMSG = (ARGV[0].encode('utf-8').gsub("", "-").gsub("ß", "a").gsub("Ú", "e").gsub("Ý", "i").gsub("¾", "o").gsub("·", "u").gsub("┐", "?"))
  83. end
  84.  
  85. EnumWindows = API.new('EnumWindows', 'KP', 'L', 'user32')
  86. GetWindowText = API.new('GetWindowText', 'LPI', 'I', 'user32')
  87.  
  88. KILOBYTE = 1024.0
  89. MEGABYTE = 1024.0 * 1024.0
  90.  
  91. BUTTONS_OKCANCEL = 1
  92. BUTTONS_YESNO = 4
  93. CLICKED_CANCEL = 2
  94. CLICKED_YES = 6
  95. CLICKED_NO = 7
  96.  
  97.  
  98.  
  99. # Metodos
  100.  
  101. def help()
  102.  print "\nSe requiere al menos 1 archivo de origen.\n\n\n"
  103.  print "Modo de empleo: \n\n"
  104.  print ' MoveIt.rb [Destino] [Archivo de origen 1] [Archivo de origen 2] [etc...]' + "\n\n\n"
  105.  print ' Ejemplo: (Mover tres archivos al directorio de destino "C:"' + "\n\n"
  106.  print ' MoveIt.rb "C:\" "D:\Archivo1.txt" "E:\Archivo2.jpg" "F:\Archivo3.mp3"' + "\n\n"
  107.  Process.exit
  108. end
  109.  
  110. def bytesToUnit size1, size2
  111.  $Kilos1 = (size1 /  KILOBYTE).to_s
  112.  $Megas1 = (size1 /  MEGABYTE).to_s
  113.  $Kilos2 = (size2 /  KILOBYTE).to_s
  114.  $Megas2 = (size2 /  MEGABYTE).to_s
  115.  
  116.  if ($Megas1[0]).eql? '0' or $Megas1["-"]
  117.     if ($Kilos1[0]).eql? '0'
  118.       $finalsize1 = size1.to_s + ' Bytes'
  119.      elsif
  120.        $finalsize1 = $Kilos1.split('.').first + "." + $Kilos1.split('.').last[0,1] + " Kb"
  121.    end
  122.  else
  123.      $finalsize1 = $Megas1.split('.').first + "." + $Megas1.split('.').last[0,1] + " Mb"
  124.   end # size1
  125.  
  126.  if ($Megas2[0]).eql? '0' or $Megas2["-"]
  127.     if ($Kilos2[0]).eql? '0'
  128.       $finalsize2 = size2.to_s + ' Bytes'
  129.      elsif
  130.        $finalsize2 = $Kilos2.split('.').first + "." + $Kilos2.split('.').last[0,1] + " Kb"
  131.    end
  132.  else
  133.      $finalsize2 = $Megas2.split('.').first + "." + $Megas2.split('.').last[0,1] + " Mb"
  134.  end # size2
  135. end
  136.  
  137. def date (file1, file2)
  138.  $CDate1 = (File.ctime(file1)).to_s
  139.  $CDate2 = (File.ctime(file2)).to_s
  140.  $MDate1 = (File.mtime(file1)).to_s
  141.  $MDate2 = (File.mtime(file2)).to_s
  142. end
  143.  
  144. def message_box(txt, title='', buttons='')
  145.  user32 = DL.dlopen('user32')
  146.  msgbox = DL::CFunc.new(user32['MessageBoxA'], DL::TYPE_LONG, 'MessageBox')
  147.  r, rs = msgbox.call([0, txt, title, 3].pack('L!ppL!').unpack('L!*'))
  148.  return r
  149. end
  150.  
  151. def reintentar(source_file, dest_file)
  152.  
  153.  $seguro = 'si'
  154.  
  155.  if $proceso == nil
  156.    $proceso = 'DESCONOCIDO'
  157.  end # if
  158.  
  159.  response = message_box("\n" +
  160.    "El proceso '" + $proceso + "' Tiene abierto el archivo: \n\n" + $archivo  + "\n\n\n" +
  161.    "Reintentar?",
  162.    "Reintentar?",
  163.    BUTTONS_OKCANCEL)
  164.    if response == CLICKED_YES
  165.   Access($archivoUTF8, $DIR)
  166.    elsif response == CLICKED_NO
  167.      $no = "si"
  168.      nil
  169.    elsif response == CLICKED_CANCEL
  170.      exit
  171.    end # response
  172.  
  173. end
  174.  
  175. def moverlo()
  176.  @EnumWindowsProc = API::Callback.new('LP', 'I'){ |handle, param|
  177.   buf = "\0" * 200
  178.   GetWindowText.call(handle, buf, 200);
  179.  
  180.  if (!buf.index(param).nil?)
  181.    $seguro = 'no'
  182.    0
  183.  else
  184.    $seguro = 'si'
  185.    1
  186.  end # if
  187. }
  188. EnumWindows.call(@EnumWindowsProc, $archivo.split('\\').last[0..-6])
  189.  if $seguro == 'si'
  190.    FileUtils.mv $archivoUTF8, $DIR
  191.  elsif
  192.    reintentar($archivoUTF8, $DIR)
  193.  end # seguro
  194. end
  195.  
  196.  
  197. def Access(source_file, dest_file)
  198. begin
  199.  wmi = WIN32OLE.connect("winmgmts://")
  200.  processes = wmi.ExecQuery("select * from win32_process")
  201.  
  202.  for process in processes do
  203.    caption = (process.Commandline).to_s
  204.      if not caption['ruby'] and not caption['MoveIt.exe']
  205.        if caption.include? $archivo.split('\\').last[0..-6]
  206.           $proceso = process.Name
  207.            reintentar($archivoUTF8, $DIR)
  208.        end # caption.include?
  209.      end # if not ruby
  210.      $proceso = nil
  211.    end # for
  212.  if not $no == "si"
  213.    moverlo()
  214.  end # no
  215.  rescue
  216.    if File.exist?($archivoUTF8) == true
  217.      reintentar($archivoUTF8, $DIR)
  218.  end  # rescue
  219. end # begin
  220. end
  221.  
  222.  
  223.  
  224. # Control de errores
  225.  
  226. if ARGV.empty? == true
  227.  help()
  228. elsif ARGV.length < 2
  229.  help()
  230. elsif File.directory?($DIR) == false
  231.  print "\n El directorio de destino no existe: " + $DIR + "\n"
  232.    response = message_box("\n" +
  233.      "El directorio de destino no existe: "  + "\n\n" +  $DIRMSG + "\n\n\n" +
  234.      "Crear el directorio?",
  235.      "Crear el directorio?",
  236.      BUTTONS_YESNO)
  237.    if response == CLICKED_YES
  238.      Dir.mkdir $DIR
  239.    elsif response == CLICKED_NO
  240.      abort
  241.    elsif response == CLICKED_CANCEL
  242.      exit
  243.    end # response
  244. end
  245.  
  246.  
  247.  
  248. # Proceso
  249.  
  250. for $archivo in ARGV[1..ARGV.length].each
  251. $archivoUTF8 = ($archivo.encode('utf-8').gsub("ß", "á").gsub("Ú", "é").gsub("Ý", "í").gsub("¾", "ó").gsub("·", "ú").gsub("&#9488;", "\u00BF").gsub("", "\u2013").gsub("&#9508;", "\u00B4").gsub("", "\u00B7").gsub("", "\u00AA").gsub("", "\u00AC").gsub("\&#9553;", "\u00BA"))
  252.  
  253.    if File.exist?($archivoUTF8) == false
  254.      print "\n El archivo a mover no existe: " + $archivoUTF8 + "\n"
  255.    end # File not exist
  256.  
  257.    if File.exist?($DIR + "\\" + $archivoUTF8.split('\\').last)
  258.      bytesToUnit(File.size($archivoUTF8), File.size($DIR + "\\" + $archivoUTF8.split('\\').last))
  259.      date($archivoUTF8, $DIR + "\\" + $archivoUTF8.split('\\').last)
  260.      response = message_box(
  261.        " Origen             :  " + $archivo.split($archivo.split('\\').last).first + "\n" +
  262.        " Archivo           :  " +  $archivo.split('\\').last + "\n" +
  263.        " Tamano          :   " + $finalsize1 + "\n" +
  264.        " Creacion         :   " + $CDate1.split('+').first + "\n" +
  265.        " Modificacion :   " + $MDate1.split('+').first + " \n\n\n" +
  266.        " Destino           :  " + $DIRMSG.split($archivo.split('\\').last).first + "\n" +
  267.        " Archivo           :  " +  $archivo.split('\\').last + "\n" +
  268.        " Tamano          :   " + $finalsize2 + "\n" +
  269.        " Creacion         :   " + $CDate2.split('+').first + "\n" +
  270.        " Modificacion :   " + $MDate2.split('+').first + " \n\n\n" +
  271.        " El archivo de destino ya existe. Reemplazar archivo?",
  272.        " Reemplazar archivo?",
  273.        BUTTONS_YESNO)
  274.      if response == CLICKED_YES
  275.        Access($archivoUTF8, $DIR)
  276.      elsif response == CLICKED_NO
  277.        nil
  278.      elsif response == CLICKED_CANCEL
  279.        exit
  280.      end # response
  281.    else
  282.      Access($archivoUTF8, $DIR)
  283.    end # File exist
  284. end # for
  285.  
  286.  
  287.  
  288. # Fin
  289. exit
948  Programación / Scripting / [Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos) en: 3 Marzo 2012, 12:36 pm
Hello world!

Estaba cansado de tener que usar "assoc" para buscar si existe una estenxion, Y luego "ftype" para buscar la asociacion de esa extensión... bah!

He creado mi propia utilidad, ASSOC7.



Muchos conocerán la utilidad "Associate.exe" de mierd@soft Microsoft, Pues hace basicamente CASI lo mismo que mi utilidad, Pero "Associate.exe" no funciona correctamente (Crea mal las asociaciones).

El modo de usar este script es parecida a la utilidad "Associate"...

Código:
ASSOC7[OPCIÓN] [Extension] [Programa]

Pero mejorado!  ;D

Código:
- Opciones:

  -a    (Asociar una extensión)
  -c    (Crear una extension y una asociación para esa extensión)
  -d    (Desasociar una asociación)

Ejemplo para asociar:
Código
  1. ASSOC7.exe -a .url notepad.exe
(Ftype urlfile="C:\windows\system32\notepad.exe" "%1")

Ejemplo para crear:
Código
  1. ASSOC7.exe -c .elektro "%Windir%\notepad.exe"
(Reg add "HKCR\.elektro\.elektro.file"
Ftype .elektro.file="C:\windows\system32\notepad.exe" "%1")

Ejemplo para desasociar:
Código
  1. ASSOC7.exe -d .elektro
(Ftype .elektro.file="")



Comparaciones:

                                                                         ASSOC7       Associate
Funciona en Windows 7                                              SI                             NO

Crea asociaciones                                                      SI                             NO

Modifica asociaciones                                                 SI                             SI (...Las jode en Windows 7, Menos la del notepad, Todas las demás.)

Elimina asociaciones                                                  SI                             SI

Se pueden usar nombres cortos para los programas      SI                             SI (Solamente si la instalación del programa está registrada en "AppPaths")


No tengo nada más que añadir.

Espero que a alguien le sirva como me servirá a mi  ;D

Salu2!



El code:

Código
  1. @Echo OFF
  2. Title Associate 7     v1.0
  3. REM| ASSOC7 v1.0
  4. REM|
  5. REM| By Elektro H@cker
  6.  
  7. REM| Herramienta para asociar y desasociar extensiones de archivos.
  8. REM|
  9. REM| Nota:
  10. REM| Si una extensión no tiene una asociación, Se creará una nueva añadiendo el sufijo ".file" al nombre de la extensión.
  11. REM| Por ejemplo, Si existe la extensión ".Elektro" Pero no está asociada. La nueva asociación se llamará ".Elektro.File".
  12.  
  13.  
  14.  
  15.  
  16. REM Control de errores
  17.  
  18. If  "%1" EQU "/?" (Goto :AYUDA)
  19. If  "%1" EQU "" (Goto :AYUDA)
  20. If  "%2" EQU "" (Goto :AYUDA)
  21. If /I "%~1" EQU "-d" (Goto :Buscar_clave)
  22. If  "%3" EQU "" (Goto :AYUDA)
  23.  
  24. Echo %1 | Findstr /I /R "\-a \-c \-d" >NUL
  25. If NOT %Errorlevel% EQU 0 (Goto :ERROR.SWITCH)
  26.  
  27.  
  28. set num=0
  29. If NOT Exist "%Windir%\System32\%~3" (
  30. If NOT Exist "%~3" (
  31. call :Buscar_programa "%~1" "%~2" "%~3"
  32. )  ELSE (Set "Program=%~3")
  33. ) ELSE (
  34. Set "Program=%Windir%\System32\%3"
  35. )
  36. If "%NUM%" EQU "3" (Goto :ERROR.PATH)
  37.  
  38.  
  39. Reg query "HKCR\%~2" >NUL 2>&1
  40. If NOT %Errorlevel% EQU 0 (
  41. If /I "%~1" EQU "-c" (Goto :Comprobar_crear) ELSE (Goto :ERROR.EXT)
  42. )
  43.  
  44.  
  45. Goto :ASSOC7
  46.  
  47.  
  48. :Buscar_clave
  49. Reg query "HKCR\%~2" >NUL 2>&1
  50. If NOT %Errorlevel% EQU 0 (Goto :ERROR.EXT) ELSE (Goto :Comprobar_desasociar)
  51.  
  52.  
  53. :Buscar_programa
  54.  
  55. Echo "%~3" | Find "\" >NUL 2>&1
  56.  
  57. Set /a num+=1
  58. If NOT %Errorlevel% EQU 0 (
  59. For /F "Tokens=*" %%a in ('Dir /B /S "%PROGRAMFILES(X86)%\%~3" 2^>nul') do (
  60. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  61. )
  62. )
  63.  
  64. If NOT %Errorlevel% EQU 0 (
  65. For /F "Tokens=*" %%a in ('Dir /B /S "%PROGRAMFILES%\%~3" 2^>nul') do (
  66. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  67. )
  68. )
  69. Set /a num+=1
  70. If NOT %Errorlevel% EQU 0 (
  71. For /F "Tokens=*" %%a in ('Dir /B /S "%WINDIR%\SYSWOW64\%~3" 2^>nul') do (
  72. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  73. )
  74. )
  75. Set /a num+=1
  76. Goto :EOF
  77.  
  78.  
  79. :ERROR.SWITCH
  80. Echo: No existe la opcion "%~1"
  81. Exit /B 1
  82.  
  83. :ERROR.EXT
  84. Echo: No existe la extension "%~2"
  85. Exit /B 1
  86.  
  87. :ERROR.PATH
  88. Echo: No se ha podido encontrar el programa "%~nx3"
  89. Exit /B 1
  90.  
  91. :ERROR.DESA
  92. Echo: La extension no estaba asociada a ningun programa. "%~2"
  93. Exit /B 1
  94.  
  95.  
  96. :AYUDA
  97. Echo: Assoc7     (By Elektro H@cker)
  98. Echo+  Herramienta para asociar tipos de archivos.
  99. Echo+ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  100. Echo: Modo de empleo:
  101. Echo: %~n0 [Opcion] [Extension] [Ruta de la aplicacion]
  102. Echo: [OPCIONES]
  103. Echo; -a     [Asocia una extension a un programa
  104. Echo: -c     [Crea una extension con su asociacion, Y la asocia a un programa]
  105. Echo: -d     [Desasocia una asociacion existente]
  106. Echo: Ejemplo:
  107. Echo: %~n0 -a .url Notepad.exe
  108. Exit /B 1
  109.  
  110.  
  111.  
  112.  
  113.  
  114. REM ASSOC7
  115.  
  116. :ASSOC7
  117.  
  118.  
  119. :Comprobar_asociar
  120. For /F "Tokens=1,2* delims= " %%a in ('Reg query "HKCR\%~2" ^| find "Predeterminado"') do (
  121. If "%%c" EQU "" (Goto :Crear "%~1" "%~2") ELSE (Set "Tipo=%%c" && Goto :Asociar)
  122. )
  123.  
  124. :Comprobar_desasociar
  125. For /F "Tokens=1,2* delims= " %%a in ('Reg query "HKCR\%~2" ^| find "Predeterminado"') do (
  126. If "%%c" EQU "" (Goto :ERROR.DESA) ELSE (Set "Tipo=%%c" && Goto :Desasociar)
  127. )
  128.  
  129. :Comprobar_crear
  130. Reg query "HKCR\%~2"  >nul 2>&1
  131. If "%errorlevel%" EQU "1"  (Goto :Crear0 "%~1" "%~2") ELSE (Set "Tipo=%%c" && Goto :Asociar)
  132.  
  133.  
  134. :Crear
  135. Reg add "HKCR\%~1" /d "%~2.File" /F  >nul 2>&1
  136. Set "Tipo=%~1.File"
  137. Goto :Asociar
  138.  
  139.  
  140. :Crear0
  141. Reg add "HKCR\%~2" /F  >nul 2>&1
  142. Reg add "HKCR\%~2" /d "%~2.File" /F  >nul 2>&1
  143. Set "Tipo=%~2.File"
  144. Goto :Asociar
  145.  
  146.  
  147. :Asociar
  148. Ftype %Tipo%="%PROGRAM%" "%%1" | MORE
  149. Echo: CORRECTO
  150. Exit /B 0
  151.  
  152.  
  153. :Desasociar
  154. Ftype %Tipo%="" | MORE
  155. Echo: CORRECTO
  156. Exit /B 0
949  Programación / Scripting / (Solucionado) [Ruby] Exportar una variable a la shell del SO? en: 3 Marzo 2012, 00:27 am
No consigo hacerlo de ninguna de las maneras xDD

¿Alguien sabe como?

muchas gracias...

Mi intento:

Código
  1. $archivo="1.mp3"
  2.  
  3. system ('cmdow.exe | Find "($archivo)"')
  4. puts $?.exitstatus
  5.  
  6. Process.exit
950  Programación / Scripting / (Solucionado) [Batch] Randomizar lineas en un txt? en: 1 Marzo 2012, 18:57 pm
¿Como randomizar el contenido de un txt?  :huh:

Es lo único que me falta para acabar este script :P

PD: Acepto cualquier utilidad externa
PD2: Si existiera algún parámetro para iniciar Winamp con la opcion "Activar modo aleatorio de lista" activada, también me serviría...

un saludo

Código
  1. @Echo OFF
  2.  
  3. Set Carpeta=%~n0
  4.  
  5. Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
  6. For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo %%$>>"%Temp%\Lista Winamp.m3u")
  7. REM Aqui iría el randomizado
  8. Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"
Páginas: 1 ... 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [95] 96 97 98 99 100 101 102 103 104 105
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines