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

#8741
Hola

A ver, me estoy volviendo bastante loco con esto...

Hace unos pocos días me descargué una Class de VB para examinarla, el caso es que al usar el Intellisense sobre una de las funciones que contenia la Class, la información XML de los parámetros de dicha función aparecía debajo del tag de la descripción, en un color azúl cielo brillante, este tag precísamente:
Código (xml) [Seleccionar]
''' <param name="Number">Description of the Number parameter</param>

Lo que sale en rojo pues en el Intellisense aparecia en color azul junto a la descripción en el color grisaceo ese de la IDE, pero el parámetro destacaba mucho vaya! y junto a la descripción del parámetro hacia el entendimiento de la función mucho más sencilla...

...en fín, el caso es que me gustó mucho ese efecto azulado (además de poder añadir descripción para un parámetro) así que hice un Copy/Paste de esa línea para agregarlo a una de mis funciones...

...Y el problema es que por más que lo intento no consigo que el intellisense me muestre nada, solo me muestra la descripción, a pesar de tener varias líneas escritas incluyendo la del parámetro:

Código (xml) [Seleccionar]
   ''' <summary>
   ''' Function to pause a thread.
   ''' </summary>
   '''
   ''' <param name="Process_Name">The name of the process, ex: cmd.exe</param>
   ''' <param name="Thread_Number">The thread to pause, ex: 0</param>
   ''' <param name="Recursive"> <value name="True">Pause the thread in all processes recursively</value></param>
   ''' <returns>True if the process is found; otherwise, False.</returns>
   Public Shared Function Pause_Thread(ByRef Process_Name As String, _
                             Optional ByVal Thread_Number As Int32 = 0, _
                             Optional ByVal Recursive As Boolean = False) As Boolean


Y esto es lo que me muestra el Intellisense:



Según lo que ví en la Class que me descargué, me debería mostrar el parámetro en un color azúl, debajo de la descripción,
...es decir, justo debajo de "Function to pause a thread" debería salir "Process_Name" en azúl brillante, y a la derecha debería poner "The name of the process, ex: cmd.exe" en color blanco.

¿Alguien sabe en que estoy fallando?

PD: Por desgracia no guardé la Class, copié lo único que me interesaba ...que era el ejemplo de la documentación XML en azul brillante, y no recuerdo que Class era ni de donde la saqué ni nada.

PD2: Tengo activado el archivo de configuración XML en las propiedades del proyecto en la pestaña de Compilar.
#8742
Cita de: Akise en  9 Junio 2013, 20:17 PMLo que yo estoy entendiendo es que la "h", se remplazará por la "a" de abajo, y eso no es verdad,

Si, si que es así, si que es "verdad".

A ver, la función se puede usar de dos maneras, se puede usar para codificar de forma "normal" (la parte que ves comentada con cada caracter), o se puede usar de una manera alternativa en la que se codifican incluso los caracteres especiales.

...Como te dije, los caracteres los puse aleatoriamente, así que la única diferencia es que de la primera manera los caracteres de la variable "Replacements" están escritos en un orden, y de la otra manera pues ...están escritos en otro orden aleatorio, aparte, como a mi no me interesa nada codificar los caracteres especiales pues no me molesté en comentar los caracteres, pero vas bien encaminado y ya sabes el orden que tiene la cosa.

Un saludo!
#8743
Cita de: Ikillnukes en  9 Junio 2013, 19:27 PM
A ver aquí dejo un vídeo mostrando lo que me pasa con el Scroll

"Y el flickering tampoco va" xD

...Si hubieras tenido en cuenta el panel que posteé un poco más arriba de este post entonces no estarías preguntando... (al menos no por el problema del Flickering) : http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1858625#msg1858625

Reemplaza la ***** de panel que estás usando, por el mío.

PD: Lo de "***** de panel" no lo digo por el código de Black Master, sinó porque estás usando el panel por defecto del Framework.

PD2: Lee las propiedades nuevas de mi panel extendido o te vas a quedar iwal xD.

PD3: La imágen del splash con tu logo de IKillNukes se ve bien en tu video, pero se puede ver mal en los demás pc's (al menos en el mio) se ve blanco, con bordes grandes y muy blancos, se ve una imágen "engorrosa", te lo digo para que lo sepas, no se ve bien.

PD4: El problema es que estás usando una "vertical scrollbar" pero no tienes ni idea deutilizarla, tienes dos opciones:
1. Usa el autoscroll del panel para mover las imágenes.
2. Aprender a utilizar una VScroll:

https://www.google.com/search?q=vbnet+how+to+use+vscroll&ie=utf-8&oe=utf-8&lr=lang_en

https://www.google.com/search?q=vbnet+how+to+add+scrollbar+panel&ie=utf-8&oe=utf-8&lr=lang_en

Básicamente tienes que ajustar corréctamente las propiedades de los valores: "value", "maximum" "smallchange" y "largechange" de la Scrollbar para adaptarla al tamaño de tu panel... ...de hecho en uno de mis comentarios más arriba en este post publiqué un video con una Class donde tienes un ejemplo de todo lo que acabo de comentar, sabrias hacerlo, si leyeras, claro.

Saludos!
#8744
Cita de: Akise en  9 Junio 2013, 15:27 PM
De momento me quedaré con el código ''largo''

A = q
B = w

a = &q
b = &w


1. ¿Eres consciente de que si usas 2 caracteres entonces mi código requiere de ciertas modificaciones, verdad?, deberías recorrer el string en bloques de 2 caracteres,
...Pero si además para las letras mayúsculas vas a usar 1 caracter (A = q) y para las minusculas 2 (a = &q), entonces no puedes recorrer el string ni por caracteres de "1" longitud ni de "2", a menos que ese caracter especial (&) lo dejes sin cifrar.

2. Creo que estás intentando reinventar la rueda sin saberlo, porque si estás siguiendo un orden en concreto "qwerty...blablabla" entonces lo que estás haciendo es una especie de variante del método "Caesar", y entonces diréctamente puedes usar el código "corto": http://crypo.in.ua/tools/eng_caesar.php

3. Si te fijas bien en mi código "largo" los caracteres son todos aleatórios, si quieres seguir un orden en concreto mejor no lo uses, hay cosas más fáciles xD.

Salu2
#8745
Resalta en colores la sintaxis de un script.
(Lo convierte a código HTML)

http://colorcode.codeplex.com/releases/view/103657



Código (vbnet) [Seleccionar]
#Region " [ColorCode] Color Code "

   ' [ColorCode] Color Code
   '
   ' // By Elektro H@cker
   '
   ' Instructions:
   ' 1. Add a reference to ColorCode.dll
   '
   ' Examples:
   ' HtmlTextBox1.Text = Color_Code(IO.File.ReadAllText("c:\Code.vb"), ColorCode.Languages.VbDotNet)
   ' HtmlTextbox1.Text = Color_Code(IO.File.ReadAllText("c:\Code.cs"), ColorCode.Languages.CSharp)

   Private Function Color_Code(ByVal Code As String, ByVal Language As ColorCode.ILanguage) As String
       Return New ColorCode.CodeColorizer().Colorize(Code, Language)
   End Function

#End Region






Randomizar el contenido de un Array de tipo String:

Código (vbnet) [Seleccionar]
#Region " Randomize String Array "

   ' [ Randomize String Array Function ]
   '
   ' Examples :
   ' Dim MyArray As Array = Randomize_String_Array({"a", "b", "c", "d", "e"}) ' Result: {"d", "a", "c", "e", "b"}

   Dim Array_randomizer As New Random

   Private Function Randomize_String_Array(ByVal array() As String) As Array
       Return array.OrderBy(Function() Array_randomizer.Next).ToArray
   End Function

#End Region






Randomizar el contenido de cualquier tipo de Array:

Código (vbnet) [Seleccionar]
#Region " Randomize Array "

   ' [ Randomize Array ]
   '
   ' Examples :
   ' Dim strarray() As String = {"a", "b", "3"}
   ' Dim IntArray As Array = {1, 2, 3}
   ' Randomize_Array(strarray)
   ' Randomize_Array(IntArray)

   Dim Array_Randomizer As New Random

   Public Sub Randomize_Array(ByVal array As Array)

       For i As Int64 = array.Length To 1 Step -1
           Dim j As Int64 = Array_Randomizer.Next(i)
           Dim tmp As Object = array(j)
           array(j) = array(i - 1)
           array(i - 1) = tmp
       Next

   End Sub

#End Region






Une el contenido de un Array de cualquier tipo
(hace unos días posteé un código parecido, pero solo funcionaba para arrays de string)

Código (vbnet) [Seleccionar]
#Region " Join Array "

    ' [ Join Array Function ]
    '
    ' Examples :
    '
    ' Dim StrArray() As String = {"a", "b", "c"} ' String array
    ' Dim IntArray As Array = {1, 2, 3}          ' Integer array
    ' MsgBox(Join_Array(StrArray, " "))          ' Result: a b c
    ' MsgBox(Join_Array(IntArray, " "))          ' Result: 1 2 3

    Private Function Join_Array(ByVal array As Array, ByVal Separator As String)
        Return String.Join(Separator, array.Cast(Of Object).Select(Function(x) x.ToString))
    End Function

#End Region






cifrar-descifrar un string de manera selectiva (usando los caracteres que nos de la gana, por eso el código es así de largo)

Código (vbnet) [Seleccionar]
#Region " Encrypt-Decrypt String Selective "

   ' [ Encrypt-Decrypt String Selective Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   '
   ' MsgBox(Encrypt_Text("Hello world"))           ' Result: à`336 L6ë3m
   ' MsgBox(Decrypt_Text("à`336 L6ë3m"))           ' Result: Hello world
   ' MsgBox(Encrypt_Text("¡ Hello world !", True)) ' Result: = <ÁÍÍÀ cÀ,Í3 Ï
   ' MsgBox(Decrypt_Text("= <ÁÍÍÀ cÀ,Í3 Ï", True)) ' Result: ¡ Hello world !

   Public Shared Function Encrypt_Text(ByVal str As String, _
                                       Optional ByVal Include_Special_Characters As Boolean = False) As String

       Dim Temp_String As String = String.Empty
       Dim Replacement_Found As Boolean = False
       
       Static Characters As Char()
       Static Replacements As Char()

       If Include_Special_Characters Then
           Characters = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray
           Replacements = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"}
       Else
           Characters = _
           "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray
           ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _

           Replacements = _
           {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"}
           '  a,   b,   c,   d,   e,   f,   g,   h,   i,   j,   k,   l,   m,   n,   ñ,   o,   p,   q,   r,   s,   t,   u,   v,   w,   x,   y,   z,   A,   B,   C,   D,   E,   F,   G,   H,   I,   J,   K,   L,   M,   N,   Ñ,   O,   P,   Q,   R,   S,   T,   U,   V,   W,   X,   Y,   Z,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   á,   é,   í,   ó,   ú,   Á,   É,   Í,   Ó,   Ú,   à,   è,   ì,   ò,   ù,   À,   È,   Ì,   Ò,   Ù,   ä,   ë,   ï,   ö,   ü,   Ä,   Ë,   Ï,   Ö,   Ü,   ç,   Ç,   º,   ª,   ¡,   ¿,   ·,   ¬,   `,   ´,   ¨,   €
       End If

       For Each character As Char In str

           For x As Int32 = 0 To Characters.Length - 1

               If character = Characters(x) Then
                   Replacement_Found = True
                   Temp_String &= Replacements(x)
                   Exit For
               End If

           Next

           If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False
           Application.DoEvents()

       Next

       Return Temp_String

   End Function

   Public Shared Function Decrypt_Text(ByVal str As String, _
                                       Optional ByVal Include_Special_Characters As Boolean = False) As String

       Dim Temp_String As String = String.Empty
       Dim Replacement_Found As Boolean = False

       Static Characters As Char()
       Static Replacements As Char()

       If Include_Special_Characters Then
           Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"}
           Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray
       Else
           Characters = _
           {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"}
           '  a,   b,   c,   d,   e,   f,   g,   h,   i,   j,   k,   l,   m,   n,   ñ,   o,   p,   q,   r,   s,   t,   u,   v,   w,   x,   y,   z,   A,   B,   C,   D,   E,   F,   G,   H,   I,   J,   K,   L,   M,   N,   Ñ,   O,   P,   Q,   R,   S,   T,   U,   V,   W,   X,   Y,   Z,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   á,   é,   í,   ó,   ú,   Á,   É,   Í,   Ó,   Ú,   à,   è,   ì,   ò,   ù,   À,   È,   Ì,   Ò,   Ù,   ä,   ë,   ï,   ö,   ü,   Ä,   Ë,   Ï,   Ö,   Ü,   ç,   Ç,   º,   ª,   ¡,   ¿,   ·,   ¬,   `,   ´,   ¨,   €

           Replacements = _
            "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray
           ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _
       End If

       For Each character As Char In str

           For x As Int32 = 0 To Characters.Length - 1

               If character = Characters(x) Then
                   Replacement_Found = True
                   Temp_String &= Replacements(x)
                   Exit For
               End If

           Next

           If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False
           Application.DoEvents()

       Next

       Return Temp_String

   End Function

#End Region


#8746
Ya lo pude solucionar (bueno, más bien me lo solucionaron):

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
      <Title>
         Regex match htm html
      </Title>
      <Author>Elektro H@cker</Author>
      <Description>
         Expresión regular para encontrar urls.htm
      </Description>
      <HelpUrl>
      </HelpUrl>
      <Shortcut>
      </Shortcut>
    </Header>
    <Snippet>
      <Declarations>
        <Literal Editable="true">
          <ID>aaaaaaaaa</ID>
          <ToolTip>sfsdf</ToolTip>
          <Default>
          </Default>
          <Function>sdfsdf</Function>
        </Literal>
        <Literal Editable="false">
          <ID>cdataend</ID>
          <ToolTip>Part of the CDATA end tag.</ToolTip>
          <Default>&gt;</Default>
        </Literal>
      </Declarations>
      <Code Language="vb"><![CDATA[

#Region " RegEx Match htm-html "

    ' [ RegEx Match htm-html Function ]
    '
    ' // By Elektro H@cker
    '
    ' Examples :
    ' Dim str As String = <a><![CDATA[href="http://www.mp3crank.com/the-rolling-stones/deluxe-edition.htm"]]$cdataend$</a>.Value
    ' MsgBox(RegEx_Match_htm_html(str)) ' Result: http://www.mp3crank.com/the-rolling-stones/deluxe-edition.htm

    Private Function RegEx_Match_htm_html(ByVal str As String, Optional ByVal Group As Int32 = 0) As String

        ' Match criteria:
        '
        ' http://text.htm
        ' http://text.html
        ' https://text.htm
        ' https://text.html
        ' www.text.htm
        ' www.text.html

        Dim RegEx As New System.Text.RegularExpressions.Regex( _
        <a><![CDATA[(http://|https://|www).*\.html?]]$cdataend$</a>.Value)

        Return RegEx.Match(Str).Groups(Group).ToString

    End Function

#End Region

]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>


Saludos
#8747
Necesito ayuda con este xml para escapar el CDATA de la variable del RegEx (No quiero usar comillas dobles porque en otros códigos no puedo hacerlo),
no sé nada de XML y estoy perdido, muy perdido, no sé si esto tiene solución, ¿Que puedo hacer?:

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
   <Header>
     <SnippetTypes>
       <SnippetType>Expansion</SnippetType>
     </SnippetTypes>
     <Title>
        Regex match htm html
     </Title>
     <Author>Elektro H@cker</Author>
     <Description>
        Expresión regular para encontrar urls.htm
     </Description>
     <HelpUrl>
     </HelpUrl>
     <Shortcut>
     </Shortcut>
   </Header>
   <Snippet>
     <Declarations>
       <Literal Editable="true">
         <ID>aaaaaaaaa</ID>
         <ToolTip>sfsdf</ToolTip>
         <Default>
         </Default>
         <Function>sdfsdf</Function>
       </Literal>
     </Declarations>
     <Code Language="vb"><![CDATA[


 


       Dim RegEx As New System.Text.RegularExpressions.Regex( _
       <a><![CDATA[(http://|https://|www).*\.html?]]></a>.Value)





]]></Code>
   </Snippet>
 </CodeSnippet>
</CodeSnippets>



Según esto al final del comentario a mi no me ha quedado muy claro si hay algún "trick" para mezclar los CDATA y que funcione :S : http://stackoverflow.com/questions/223652/is-there-a-way-to-escape-a-cdata-end-token-in-xml

...¿Alguna ayuda?
#8748
Hola

Lo primero, no hagas duplicados, porfavor.

Cita de: EleKtro H@cker en  7 Junio 2013, 17:14 PM
Tu pregunta no tiene nada que ver con Batch, sinó con el instalador.

Hay varios tipos de instaladores, al igual que varios tipos de móviles y varios tipos de sistemas operativos,
debes informarte con cual InstallBuilder ha sido creado ese installer, y luego buscar sus opciones desatendidas (Silent switches).

EDITO:

Además, en caso de ser un WindowsInstaller (MSI), se pueden programar de muchas maneras, se puede nombrar cada opción (paquete) como al programador del instalador le haya dado la gana nombrarlos, solo vas a saber como se llaman buscando en Google para visitar la documentación de soporte del fabricante, y leer, o usando el editor de MSI Orca para saber los nombres de los atributos y las "opciones" de ese installer,
reálmente lo que estás pidiendo es lo mismo que pedir que te lea el futuro un adivino, porque es imposible saberlo sin que des los datos necesarios.

Si se trata de un MSI y es un instalador de algún programa conocido, segúramente la información que necesites ya está por los rincones de Google.

...El archivo bat sería algo así:
@Echo off
Instalador-InnoSetup.exe /silent
Instalador-WindowsInstaller.msi /qn /norestart INSTALLDIR="C:\Ruta" ADDLOCAL=Nombre-de-paquete-a-instalar
Pause&Exit


Saludos.








Cita de: overrider en  5 Junio 2013, 17:28 PMPor poner un ejemplo, que al instalar un Office se instale el word pero no el excel.

Poder, se puede, pero Batch no es la manera ni te va a ayudar en nada para realizar esa tarea.

Los productos de Microsoft son los más dificiles a la hora de instalarlos de forma desatendida, pues tienen un sin fin de componentes para instalar, son dificiles en el sentido de que hay que saber o entenderse con el lenguaje XML, y que primero hay que informarse sobre los parámetros de ese instalador en específico, y configurarlo, porque para hacer una instalación desatendida de un producto de Microsoft se requiere crear un archivo de configuración escrito en XML, de esta manera:

http://technet.microsoft.com/en-us/library/dd630736.aspx

Pero tienes la suerte de que para Office existe la aplicación "OCT" que te lo hará todo el trabajo que he comentado casi de forma automática y sin esfuerzo: http://technet.microsoft.com/en-us/library/cc179097.aspx

Saludos.
#8749
A pesar de la bonita Class de _katze_ (por cierto, gracias), y después de mucho buscar la manera más óptima ...al final me quedo con esta función:

Código (vbnet) [Seleccionar]
Private Function Get_Files(ByVal Path As String, ParamArray exts() As String) As List(Of IO.FileInfo)
   Return New IO.DirectoryInfo(Path).GetFiles.Where(Function(o) exts.Contains(o.Extension)).ToList
End Function


Código (vbnet) [Seleccionar]
For Each file In Get_Files("C:\Windows", {".dll", ".ini"}) : MsgBox(file.Name) : Next

Más sencillo y eficaz creo que sería imposible!

Lo malo es que no se me ocurre como hacer para que la función me permita buscar de manera recursiva,
me gustaría poder implementar la recursividad en esa función, preservando su maravillosa sencillez, elegancia y eficacia, es decir...que no quiero llenar la función de Fors para hacer largos recorridos en los subdirectorios estropeando la performance de la función.

¿Alguien tiene idea de que modificaciones necesita la función para hacerla recursiva?
#8750
@XResh
La verdad es que no quería comentar nada acerca de "Mid" para no molestarte y para no desviar el tema, pero me he fijado en tu insistencia sobre la función Mid y lo cierto es que no me gusta ver que se promueva el uso de Mid cuando estamos en .NET,
Lo digo porque "Mid" al igual que "left" "right" son funciones de VisualBasic 6 (usables en .NET), ...¿pero para que usarlas si tenemos clases y métodos de todo tipo que son obviamente mucho más rápidos y eficaces que los de VB6?

Un saludo!




@Akise
Se puede apreciar cláramente que en tu código quieres definir tus própios caracteres cifrados (O al menos eso ha dado a entender), de ahí mi código algo largo, pero si prefieres algo reálmente corto puedes usar esto:

Código (vbnet) [Seleccionar]
#Region " Encrypt-Decrypt String "

   ' [ Encrypt-Decrypt String Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   '
   ' MsgBox(Encrypt_Decrypt_String("Test")) ' Result: «šŒ‹
   ' MsgBox(Encrypt_Decrypt_String("«šŒ‹")) ' Result: Hello

   Public Function Encrypt_Decrypt_String(ByVal Input As String) As String

       Dim Output As String = String.Empty

       For Each Ch As Char In Input
           Output &= Asc(Ch)
           ' Application.DoEvents()
       Next

       Return Output

   End Function

#End Region


EDITO:
Si prefieres la versión larga donde puedes definir perféctamente los caracteres que tu quieras, aquí tienes:

Código (vbnet) [Seleccionar]
#Region " Encrypt-Decrypt Text "

   ' [ Encrypt-Decrypt Text Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   '
   ' MsgBox(Encrypt_Text("Hello world"))           ' Result: à`336 L6ë3m
   ' MsgBox(Decrypt_Text("à`336 L6ë3m"))           ' Result: Hello world
   ' MsgBox(Encrypt_Text("¡ Hello world !", True)) ' Result: = <ÁÍÍÀ cÀ,Í3 Ï
   ' MsgBox(Decrypt_Text("= <ÁÍÍÀ cÀ,Í3 Ï", True)) ' Result: ¡ Hello world !

   Public Shared Function Encrypt_Text(ByVal str As String, _
                                       Optional ByVal Include_Special_Characters As Boolean = False) As String

       Static Characters As Char()
       Static Replacements As Char()

       If Include_Special_Characters Then
           Characters = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray
           Replacements = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"}
       Else
           Characters = _
           "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray
           ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _

           Replacements = _
           {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"}
           '  a,   b,   c,   d,   e,   f,   g,   h,   i,   j,   k,   l,   m,   n,   ñ,   o,   p,   q,   r,   s,   t,   u,   v,   w,   x,   y,   z,   A,   B,   C,   D,   E,   F,   G,   H,   I,   J,   K,   L,   M,   N,   Ñ,   O,   P,   Q,   R,   S,   T,   U,   V,   W,   X,   Y,   Z,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   á,   é,   í,   ó,   ú,   Á,   É,   Í,   Ó,   Ú,   à,   è,   ì,   ò,   ù,   À,   È,   Ì,   Ò,   Ù,   ä,   ë,   ï,   ö,   ü,   Ä,   Ë,   Ï,   Ö,   Ü,   ç,   Ç,   º,   ª,   ¡,   ¿,   ·,   ¬,   `,   ´,   ¨,   €
       End If


       Dim Temp_String As String = String.Empty
       Dim Replacement_Found As Boolean = False

       For Each character As Char In str

           For x As Int32 = 0 To Characters.Length - 1

               If character = Characters(x) Then
                   Replacement_Found = True
                   Temp_String &= Replacements(x)
                   Exit For
               End If

           Next

           If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False
           Application.DoEvents()

       Next

       Return Temp_String

   End Function

   Public Shared Function Decrypt_Text(ByVal str As String, _
                                       Optional ByVal Include_Special_Characters As Boolean = False) As String

       Static Characters As Char()
       Static Replacements As Char()

       If Include_Special_Characters Then
           Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"}
           Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray
       Else
           Characters = _
           {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"}
           '  a,   b,   c,   d,   e,   f,   g,   h,   i,   j,   k,   l,   m,   n,   ñ,   o,   p,   q,   r,   s,   t,   u,   v,   w,   x,   y,   z,   A,   B,   C,   D,   E,   F,   G,   H,   I,   J,   K,   L,   M,   N,   Ñ,   O,   P,   Q,   R,   S,   T,   U,   V,   W,   X,   Y,   Z,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   á,   é,   í,   ó,   ú,   Á,   É,   Í,   Ó,   Ú,   à,   è,   ì,   ò,   ù,   À,   È,   Ì,   Ò,   Ù,   ä,   ë,   ï,   ö,   ü,   Ä,   Ë,   Ï,   Ö,   Ü,   ç,   Ç,   º,   ª,   ¡,   ¿,   ·,   ¬,   `,   ´,   ¨,   €

           Replacements = _
            "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray
           ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _
       End If


       Dim Temp_String As String = String.Empty
       Dim Replacement_Found As Boolean = False

       For Each character As Char In str

           For x As Int32 = 0 To Characters.Length - 1

               If character = Characters(x) Then
                   Replacement_Found = True
                   Temp_String &= Replacements(x)
                   Exit For
               End If

           Next

           If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False
           Application.DoEvents()

       Next

       Return Temp_String

   End Function

#End Region


Saludos!