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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 [699] 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 ... 1236
6981  Programación / Scripting / Re: [Ayuda](Batch) 10 Numeros random del 1 al 10 en: 18 Julio 2014, 00:39 am
La cosa es así, Batch es tan... tan... ¡manco! que un programador deberá recurrir a la utilización de otros lenguajes (porque Batch, cuesta calificarlo como "Lenguaje") para llevar a cabo ciertas tareas, o bien porque Batch no ofrece los medios, o bien porque en otro lenguaje va a resultar más cómodo el desarrollo y el rendimiento resultante será mucho mejor ...que sin duda, lo es.  


De todas maneras Eleкtro, aunque logre entender la gran mayoria del codigo, no termino de entender como pasar los 'combos' a un archivo de texto, o mostrarlos en la pantalla; desconozco el tema de los VBS, ahora mismo pienso leer rapidamente el tutorial que esta rondando por acá.

Añade este método al script de arriba:

Código
  1. Sub WriteTextFile(ArrayCollection, FilePath, Delimiter)
  2.  
  3.    Set ObjTxt = CreateObject("Scripting.FileSystemObject"). _
  4.                 OpenTextFile(FilePath, 2, True)
  5.  
  6.    For Each arr In ArrayCollection
  7.  
  8.        ObjTxt.Writeline(Join(arr, Delimiter))
  9.  
  10.    Next
  11.  
  12.   ObjTxt.Close
  13.  
  14. End Sub

Y luego, antes de finalizar la ejecución del Script, justo después de la instrucción "DoCombos()", añades esto:
Código
  1. WriteTextFile Combos, ".\Combos.txt", ";"

El resultado será un archivo de texto plano con este contenido:

Código:
3;0;5;6;4;9;7;2;8;1
1;7;6;8;5;0;9;2;3;4
3;0;2;4;7;1;8;6;5;9
1;2;5;9;6;8;3;7;4;0
4;2;1;6;5;3;0;8;9;7
0;3;4;6;7;2;8;9;5;1
0;1;4;5;3;9;7;6;2;8
1;3;5;0;2;7;9;4;6;8
4;9;6;0;3;2;7;8;1;5
4;8;6;5;7;9;0;3;1;2
etc...
(No habrá combinaciones repetidas)

PD: El formato del delimitador lo puedes modificar en el parámetro "Delimiter" al llamar al método.



He modificado el método "DoCombos" (ahora lo llamé "FillWithCombos") ya que el control de errores estaba incompleto y provocaba que algunos elementos del Array quedasen vacíos, ya no es necesario un error-handling (otra cosa de la que Batch carece, y VBS en parte también).

Aquí tienes la modificación del código:

Nota: Le añadí el parámetro "AllowDuplicates" al método "FillWithCombos" para hacerlo más liviano, ya que un Array de 100.000 combinacions sin repetición tarda unos pocos segundos en generarse (en Batch eso sería una eternidad, 5-10 min), pero sin repetición tardará muchísimo más ya que tiene que hacer iteraciones al array para comprobar si existe la combinación, esto en un lenguaje como VBS sigue siendo imperfecto, como ya dije tampoco es muy potente, está falto de recursos.
Mi sugerencia, si no te importa que hayan combinaciones duplicadas, puedes hacer las que quieras, será bien rápido, pero si quieres que no hayan duplicados, no sobrepases las 2.000 combinaciones en el Array o irá muy lento.

Código
  1. ' El máximo número de combinaciones posibles con un rango de '0-9' y sin repetición son '3.628.800',
  2. ' Fuente: www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html
  3. '
  4. ' Pero ese colosal valor disminuiría el rendimiento del código,
  5. ' y no creo que un jugador pueda llegar a hacer más de '1.000' partidas por sesión.
  6. Dim Combos(999)
  7.  
  8. ' Un Array con los valores que permutar.
  9. CharSet = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  10.  
  11. ' Llamo al método principal.
  12. Main()
  13.  
  14. ' El método principal.
  15. Sub Main
  16.  
  17.    On Error Resume Next
  18.  
  19.    ' Lleno el Array con combos.
  20.    Call FillWithCombos(Combos, CharSet, 0, False)
  21.  
  22.    ' Escribo las combinaciones generadas del Array, en un archivo de texto.
  23.    Call WriteTextFile(Combos, ".\Combos.txt", ";")
  24.  
  25.    ' Si hubo algún error...
  26.    If Err.Number <> 0 Then
  27.        ' Envio el código de error a la consola,
  28.        ' el cual puedes procesar checkando la variable dinámica %ERRORLEVEL%.
  29.        WScript.Echo "ExitCode: " & Err.Number & vbNewLine & _
  30.                     "Source: " & Err.Source & vbNewLine & _
  31.                     "Description: " &  Err.Description
  32.        WScript.Quit(Err.Number)
  33.  
  34.    Else ' Si no hubo ningún error...
  35.        ' Envio un código de salida satisfactorio a la consola,
  36.        ' el cual puedes procesar checkando la variable dinámica %ERRORLEVEL%.
  37.        WScript.Quit(0)
  38.  
  39.    End If
  40.  
  41. End Sub
  42.  
  43. ' Función que desordena los elementos de un array.
  44. Randomize
  45. Function RandomizeArray(ByVal arr)
  46.  
  47.   tmpArray   = arr
  48.   firstIndex = LBound(tmpArray)
  49.   itemCount  = (UBound(tmpArray) - LBound(tmpArray)) + 1
  50.  
  51.   For index = UBound(tmpArray) To (LBound(tmpArray) + 1) Step -1
  52.  
  53.       ' evaluate a random index from LBound to INDEX
  54.       newIndex = (firstIndex + Int(Rnd * itemCount))
  55.  
  56.       ' swap the two items
  57.       tmpValue           = tmpArray(index)
  58.       tmpArray(index)    = tmpArray(newIndex)
  59.       tmpArray(newIndex) = tmpValue
  60.  
  61.       ' prepare for next iteration
  62.       itemCount = itemCount - 1
  63.  
  64.   Next
  65.  
  66.   RandomizeArray = tmpArray
  67.  
  68. End Function
  69.  
  70. ' Método que rellena un Array con combinaciones elatorias,
  71. ' sin repetición de combinaciones.
  72. Sub FillWithCombos(Byref Arr, _
  73.                   Byval Values, _
  74.                   Byval StartIndex, _
  75.                   Byval AllowDuplicates)
  76.  
  77.    ' Recorro los elementos del Array para llenarlos.
  78.    For X = StartIndex To (UBound(Arr))
  79.  
  80.       ' Un flag Booleano que determina si una combinación está repetida en el Array.
  81.       IsRepeated = False
  82.  
  83.       ' Gerero la siguiente combinación aleatoria.
  84.       Combo = RandomizeArray(Values)
  85.  
  86.  
  87.       ' Si no está permitido añadir combinaciones duplicadas...
  88.        If Not AllowDuplicates Then
  89.  
  90.           ' Si el primer elemento del Array no está vacio...
  91.           If Not IsEmpty(Arr(0)) Then
  92.  
  93.              ' Determino si ya existe la combinación generada en el Array.
  94.              For Y = 0 To (X - 1)
  95.  
  96.                  If Join(Arr(Y), "") = Join(Combo, "") Then
  97.                     IsRepeated = True
  98.                     Exit For
  99.                  End If
  100.  
  101.              Next 'Y
  102.  
  103.           End If 'IsEmpty(Arr(0))
  104.  
  105.           ' Si la combinación no está repetida...
  106.           If Not IsRepeated Then
  107.              ' Añado la combinación al Array de combinaciones.
  108.              Arr(X) = Combo
  109.  
  110.            ' Si la combinación está repetida...
  111.            Elseif IsRepeated Then
  112.              call FillWithCombos(Combos, Values, X, AllowDuplicates)
  113.  
  114.            End If 'Not IsRepeated
  115.  
  116.        Else ' Si está permitido añadir combinaciones duplicadas...
  117.            ' Añado la combinación al Array de combinaciones.
  118.            Arr(X) = Combo
  119.  
  120.        End If ' Not AllowDuplicates
  121.  
  122.    Next 'X
  123.  
  124. End Sub
  125.  
  126. ' Método que escribe los Arrays de un Array, en un archivo de texto.
  127. Sub WriteTextFile(ByVal ArrayCollection, _
  128.                  ByVal FilePath, _
  129.                  ByVal Delimiter)
  130.  
  131.    Set ObjTxt = CreateObject("Scripting.FileSystemObject"). _
  132.                 OpenTextFile(FilePath, 2, True)
  133.  
  134.    For Each arr In ArrayCollection
  135.        ObjTxt.Writeline(Join(arr, Delimiter))
  136.    Next
  137.  
  138.   ObjTxt.Close
  139.  
  140. End Sub

Como ya te dije esto lo puedes usar desde Batch, solo tienes que escribir el contenido del script VBS dede tu Batch-Script a un archivo externo, y ejecutarlo.

Código
  1. @Echo OFF
  2.  
  3. (
  4.  
  5. Echo Dim Combos^(999^)
  6. Echo CharSet = Array^(0, 1, 2, 3, 4, 5, 6, 7, 8, 9^)
  7. Echo Main()
  8. Echo Sub Main
  9. Echo     Call FillWithCombos^(Combos, CharSet, 0, False^)
  10. Echo     Call WriteTextFile^(Combos, ".\Combos.txt", ";"^)
  11. Echo     WScript.Quit^(0^)
  12. Echo End Sub
  13. Echo etc...
  14. Echo etc...
  15. Echo etc...
  16.  
  17. )>"%TEMP%\Script.vbs"
  18.  
  19. CScript.exe /NoLogo "%TEMP%\Script.vbs"
  20. If %ErrorLevel% EQU 0 (
  21.  Echo Todo OK.
  22.  REM Procesar las combinaciones del archivo de texto resultante...
  23. )

Saludos.
6982  Programación / Scripting / Re: Editar archivo de windows con VBS en W7 en: 17 Julio 2014, 21:01 pm
espero su ayuda , recien ando aprendiendo esto del VBS

Puedes hacer una query a WMI para obtener la versión NT del Windows operativo actual.

San-Google está lleno de ejemplos como este, y como este otro:

Código
  1. Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
  2. strComputer = "."
  3. Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  4. Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
  5.  
  6. For Each os in oss
  7.    Wscript.Echo "Caption: " & os.Caption
  8.    Wscript.Echo "Version: " & os.Version
  9. Next

+ List of Microsoft Windows versions

Así pues, si la versión NT empieza por "5.1" o "5.2", será XP, si empieza por "6.1" será Win7, y si empieza por "6.2" o "6.3" será Windows 8/8.1.

+ VBScript Left Function
Código
  1. If Left(os.Version, 2) = "5.1" Then ...

PD: El nombre a mostrar del OS puede variar, pero la versión NT no, por eso te sugiero evitar parsear el Caption.

Saludos
 
6983  Programación / .NET (C#, VB.NET, ASP) / Re: Problema al abrir puerto serie virtual con .NET en: 17 Julio 2014, 19:44 pm
Pues solo hay 2 posibles causas:
IOException   
The port is in an invalid state.
- or -
An attempt to set the state of the underlying port failed. For example, the parameters passed from this SerialPort object were invalid.

Según MSDN, la propiedad "StopBits" y/o "Parity" pueden lanzar una excepción de tipo IOException.

En lugar de asignar los valores de los parámetros (y por ende de esas propiedades) mediante el Constructor, usa el constructor por defecto (sin parámetros): http://msdn.microsoft.com/en-us/library/system.io.ports.serialport%28v=vs.110%29.aspx

Y asigna el valor a las propiedades manualmente, quizás no sirva de nada, pero por probar, ya que en los ejemplos que veo en el MSDN siempre asignan la propiedad Handshake y los Timeouts también, y no he verificado cuales serán sus valores por defecto con el ctor que usaste.

Algo así (VB.NET):
Código
  1.     Dim _serialPort As New SerialPort()
  2.  
  3.     With _serialPort
  4.  
  5.    .PortName = "COM2"
  6.    .BaudRate = 9600I
  7.    .Parity = Parity.None
  8.    .DataBits = 8I
  9.    .StopBits = StopBits.One
  10.    .Handshake = Handshake.None
  11.  
  12.    .ReadTimeout = 500I
  13.    .WriteTimeout = 500I
  14.  
  15.     End With
  16.  
  17.    _serialPort.Open()

PD: ¿Te sirvió?

Saludos
6984  Programación / Scripting / Re: indetectable en: 17 Julio 2014, 16:56 pm
La ofuscación/cifrado del código es algo que te podría ser de utilidad, puedes utilizar la herramienta Windows Script Encoder en caso, y solo en caso de que tuvieras un windows antiguo cuyo motor WHS (WindowsScriptHost) no disponga del objeto "Scripting.Encoder" de forma natural:
http://download.microsoft.com/download/0/0/7/0073477f-bbf9-4510-86f9-ba51282531e3/sce10en.exe

Código
  1. Option Explicit
  2.  
  3. dim oEncoder, oFilesToEncode, file, sDest
  4. dim sFileOut, oFile, oEncFile, oFSO, i
  5. dim oStream, sSourceFile
  6.  
  7. set oFilesToEncode = WScript.Arguments
  8. set oEncoder = CreateObject("Scripting.Encoder")
  9. For i = 0 to oFilesToEncode.Count - 1
  10.    set oFSO = CreateObject("Scripting.FileSystemObject")
  11.    file = oFilesToEncode(i)
  12.    set oFile = oFSO.GetFile(file)
  13.    Set oStream = oFile.OpenAsTextStream(1)
  14.    sSourceFile=oStream.ReadAll
  15.    oStream.Close
  16.    sDest = oEncoder.EncodeScriptFile(".vbs",sSourceFile,0,"")
  17.    sFileOut = Left(file, Len(file) - 3) & "vbe"
  18.    Set oEncFile = oFSO.CreateTextFile(sFileOut)
  19.    oEncFile.Write sDest
  20.    oEncFile.Close
  21. Next

Ejemplo de uso:
Código
  1. WScript.exe "Crypter.vbs" "ToEncrypt.vbs"

+ http://blog.nanomuelle.com/2013/09/17/vbscript-encoded-obfuscated/
(ese no lo he probado)

Saludos.
6985  Programación / Scripting / Re: Editar archivo de windows con VBS en W7 en: 17 Julio 2014, 16:24 pm
lo que quiero es borrar todo el contenido del archivo hosts y añadir recien mis lineas

Cuando instancies el objeto, asigna el valor correcto para el parámetro IOmode (ForWriting).
http://msdn.microsoft.com/en-us/library/314cz14s%28v=vs.84%29.aspx

Ejemplo:
Código
  1. CreateObject("Scripting.FileSystemObject").OpenTextFile(HostsFile, 2, True)

Entonces, cuando uses el método Write/WriteLine, se reemplazará el contenido existente del archivo, y podrás seguír utilizando dicho método para continuar escribiendo, hasta que liberes el objeto con el método Close.

Ejemplo:
Código
  1. Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  2. Set objHosts     = CreateObject("Scripting.FileSystemObject"). _
  3.                   OpenTextFile(HostsFile, 2, True)
  4.  
  5. With objHosts
  6.  
  7.    .Writeline(vbNewLine)
  8.    .Writeline("127.0.0.1" & vbtab & "www.1.com")
  9.    .Writeline("127.0.0.2" & vbtab & "www.2.com")
  10.    .Writeline("127.0.0.3" & vbtab & "www.3.com")
  11.  
  12.    .Close
  13.  
  14. End With

Saludos.
6986  Programación / .NET (C#, VB.NET, ASP) / Re: Milisegundos en: 17 Julio 2014, 16:14 pm
Buenas

· ¿Donde está tu código?

· ¿Puedes describir con mayor calidad de detalles lo que pretendes hacer, para que se entienda?.

Saludos.
6987  Programación / Scripting / Re: [Ayuda](Batch) 10 Numeros random del 1 al 10 en: 17 Julio 2014, 16:08 pm
¿Tiene que ser puro Batch, o se permite la utilización de un script-Batch hibrido que genere un código VBS?

Sincéramente, en mi opinión, deberías ir al profesor y decirle que has preferido evitar el uso de una herramienta simplista como Batch para generar la lógica del algoritmo de aletoriedad, ya que Batch es ineficiente y carece de lógica en ese aspecto, y aparte de quedar como un "Pro", estarías haciendo lo mejor, aunque yo directamente te diría que lo hicieras en Python, Ruby, u otros xD pero entiendo que eso ya es pedir demasiado (porque la clase es de Batch).

Digo esto porque la lógica aleatoria de Batch no permite seleccionar una serie de números distintos dentro de un rango, y que el número elegido sea distinto cada vez, mucho menos permite la utilización de Arrays, así que lo más propable es que el mismo numero aleatorio se repita varias veces y debas corregirlo, es decir, seguir obteniendo otro dígito aleatorio hasta que sea distinto al dígito anterior, y esto, medido en tiempo de ejecución puede tardar bastante para conseguir un 0, y luego un 1, dígitos distintos y que no se repitan entre si.

No merece la pena realizar esa cutrez en Batch, pero si quieres hacerlo, puedes utilizar la variable dinámica %Random%, y hacerle un Substring al String resultante para quedarte con un valor que tenga una longitud de un dígito, y luego hacer las comparaciones necesarias (¿es un 0?, ¿es un 1?, etc),
también se podría hacer de otra forma relacionada, que sería simulando un Array como parámetro de un For ("1 2 3 4 5 6 7 8 9 0"), o como parámetro de un For /L (0, 1, 9), y desordenar las posiciones de los elementos recurriendo a los resultados de la variable %Random%, sea como sea cualquiera de esas técnicas es una completa cutrez.

Te muestro un ejemplo en VBS (el cual puedes llamar/usar desde Batch), VBS tampoco ofrece demasiada libertad, no es un lenguaje muy potente ni muy eficiente pero sin duda es mucho más liviano de lo que sería en Batch.

Código
  1. Randomize
  2.  
  3. ' El máximo número de combinaciones posibles con un rango de '0-9' y sin repetición son '3.628.800',
  4. ' Fuente: www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html
  5. '
  6. ' Pero ese colosal valor disminuiría el rendimiento del código,
  7. ' y no creo que un jugador pueda llegar a hacer más de '1.000' partidas por sesión.
  8. Dim Combos(1000)
  9.  
  10. ' Un Array con los valores que permutar.
  11. Values = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  12.  
  13. ' Gerero y asigno la primera combinación aleatoria.
  14. Combos(0) = RandomizeArray(Values)
  15.  
  16. ' Genero el resto de combos.
  17. DoCombos()
  18. ' Escribir los combos en un archivo de texto
  19. ' O enviarlos a la salida de la consola para procesarlos con un For en Batch.
  20. ' Como se prefiera.
  21. WScript.Echo("Fin")
  22.  
  23. Sub DoCombos()
  24.  
  25. ' Recorro los espacios vaciós del Array para llenarlos.
  26. For X = 0 To (UBound(Combos) - 1)
  27.  
  28. IsRepeated = False
  29.  
  30.    ' Gerero la siguiente combinación aleatoria.
  31.    Combo = RandomizeArray(Values)
  32.  
  33.    ' Compruebo que la combinación no existe en el Array de combos.
  34.    For Y = 0 To (X)
  35.  
  36.     On Error Resume Next
  37.  
  38.        If Join(Combos(Y), "") = Join(Combo, "") Then
  39.           IsRepeated = True
  40.           Exit For
  41.        End If
  42.  
  43.    Next
  44.  
  45.    ' Añado la combinación al Araay de combinaciones.
  46.    If Not IsRepeated Then
  47.       Combos(X + 1) = Combo
  48.    End If
  49.  
  50. Next
  51.  
  52. End Sub
  53.  
  54. ' Función que desordena los elementos de un array.
  55. Function RandomizeArray(arr)
  56.  
  57.    tmpArray   = arr
  58.    firstIndex = LBound(tmpArray)
  59.    itemCount  = (UBound(tmpArray) - LBound(tmpArray)) + 1
  60.  
  61.    For index = UBound(tmpArray) To (LBound(tmpArray) + 1) Step -1
  62.  
  63.        ' evaluate a random index from LBound to INDEX
  64.        newIndex = (firstIndex + Int(Rnd * itemCount))
  65.  
  66.        ' swap the two items
  67.        tmpValue           = tmpArray(index)
  68.        tmpArray(index)    = tmpArray(newIndex)
  69.        tmpArray(newIndex) = tmpValue
  70.  
  71.        ' prepare for next iteration
  72.        itemCount = itemCount - 1
  73.  
  74.    Next
  75.  
  76.    RandomizeArray = tmpArray
  77.  
  78. End Function
6988  Programación / Scripting / Re: bash o vbs en: 17 Julio 2014, 12:56 pm
¿Bash, o quisiste decir Batch?, ya que son dos lenguajes muy distintos y no le veo mucho sentido la comparación que hiciste...

Si vas a trabajar el código en Windows pues ...obviamente VBS, antes que Batch y/o Cygwin-Bash.

SI tu entorno es Linux pues no se para que querrías aprender VisualBasicScript, la verdad.

Saludos
6989  Media / Multimedia / Re: cual es el mejor reproductor multiformatos en: 16 Julio 2014, 15:22 pm
como se que codec instalar para cada extensión de video?

Si tienes dudas sobre el codec usado en un video especifico, puedes utilizar la herramienta MediaInfo Lite, la cual te indicará todos los detalles del video en cuestión.
http://fileforum.betanews.com/detail/MediaInfo-Lite/1183386892/1
http://www.codecguide.com/download_other.htm#mediainfo

lo instalo en Windows y se adhiere al reproductor o se actualiza cada reproductor por separado?

Si te bajas un codec Directshow este se instalará en tu sistema, y si el reproductor en cuestión soporta playback mediante DirectShow entonces buscará el codec instalado, y bastará con eso.

Queda a tu libre elección si instalar un pack de codecs, o solamente los codecs necesarios, etc... pero si quieres conocer mi opinión:

Instálate el FFDShow y olvídate de problemas:
http://sourceforge.net/projects/ffdshow/ o también http://ffdshow-tryout.sourceforge.net/

Citar

Y si tienes problemas para reproducir QT o RMV:

+ QuickTime: http://www.free-codecs.com/download/qt_lite.htm
+ RealMedia: http://www.free-codecs.com/download/real_alternative.htm

PD: Si has instalado algún pack de codecs, desinstalalo antes de instalar cualquier cosa de las que te he sugerido, ya que podrían surgir conflictos debido a esos packs que tuvieras instalados.
6990  Programación / Scripting / Re: Editar archivo de windows con VBS en W7 en: 16 Julio 2014, 15:06 pm
estuve leyendo y es con Set.FileSystemObject

FileSystemObject es un objeto:
http://msdn.microsoft.com/en-us/library/aa242706%28v=vs.60%29.aspx

El cual proporciona métodos para crear un archivo, escribir, etc... basicamente son métodos para llevar a cado tareas relacionadas con el FileSystem de Windows:
http://msdn.microsoft.com/en-us/library/6tkce7xa%28v=vs.84%29.aspx

Por lo tanto si, te sirve para la tarea, usando los métodos de escritura, ya que el archivo HOSTS no es más que un archivo de texto plano.

PD: Creo que deberías estudiar los conceptos básicos, la sintaxis del lenguaje, y demás, si realmente estás interesado en desarrollar códigos propios:
http://msdn.microsoft.com/en-us/library/0ad0dkea%28v=vs.84%29.aspx


quisiera saber un codigo donde tenga el manifest, osea para que edite en Windows 7 alguna ayuda ?

No he entendido tu pregunta, no debes interactuar con ningún ".manifest" para editar un archivo de texto.

Respecto a proporcionarte un código, la verdad es que no se si buscas un set completo de edición que te permita eliminar, modificar, y añadir entradas, o que es lo que buscas exactamente, así que te haré dos ejemplos básicos:

Código
  1. Sub AddEntry(ByVal Ip, Byval Alias)
  2.  
  3.    Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  4.    Set   objHosts   = CreateObject("Scripting.FileSystemObject"). _
  5.                       OpenTextFile(HostsFile, 8, True)
  6.  
  7.    objHosts.Writeline(vbNewLine & Ip & vbtab & Alias)
  8.    objHosts.Close
  9.  
  10. End Sub

Código
  1. Function GetAliases(ByVal Ip)
  2.  
  3.    Dim Aliases
  4.    Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  5.    Set   objHosts   = CreateObject("Scripting.FileSystemObject"). _
  6.                       OpenTextFile(HostsFile, 1)
  7.  
  8.    Do Until objHosts.AtEndOfStream
  9.  
  10.        HostEntry = Split(Replace(objHosts.Readline, vbTab, " "), " ")
  11.        HostIP    = Trim(HostEntry(0))
  12.        HostAlias = Trim(HostEntry(1))
  13.  
  14.        On Error Resume Next
  15.  
  16.        If HostIP = Ip Then
  17.            Aliases = Aliases & HostAlias & vbNewLine
  18.        End If
  19.  
  20.    Loop
  21.  
  22.    objHosts.Close
  23.  
  24.    GetAliases = Split(Aliases, vbNewLine)
  25.  
  26. End Function

Ejemplos de uso:
Código
  1. AddEntry("LOCALHOST", "www.test.com")
  2. MsgBox(GetAliases("LOCALHOST")(0))

Saludos.

EDITO: Una Helper Class gigantesca con todos los métodos que puedas llegar a necesitar:
www.codeproject.com/Articles/11354/VBScript-for-reading-and-writing-to-the-Windows-ho
Páginas: 1 ... 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 [699] 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines