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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 [819] 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 ... 1236
8181  Programación / Scripting / Re: [BATCH] Duda en: 17 Septiembre 2013, 20:11 pm
Cito:
Lee acerca del comando Setlocal EnableDelayedExpansion y su utilización.

Pon un poco de tu parte, Google it! :P: http://ss64.com/nt/delayedexpansion.html

La explicación del operador "!" la encontrarás en el mismo enlace de arriba, y aquí tienes más explicaciones sobre los ops que comentas:

By Elektro H@cker: Tutorial extendido de aprendizaje Batch
3.7 Memorizar


By Elektro H@cker: Tutorial extendido de aprendizaje Batch
4.8 Otros operadores


By Elektro H@cker: Tutorial extendido de aprendizaje Batch
6.3 Variables expandidas


saludos
8182  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets) en: 17 Septiembre 2013, 19:52 pm
Pues yo echo mano de este hilo de vez en cuando, hay cosas muy útiles.

se agradece también!





·  Devuelve la conversión de bytes a la unidad de tamaño más aproximada

Por ejemplo, si le pasamos "60877579" bytes, nos devuelve este string: "58,06 MB"

Código
  1.  #Region " Round Bytes "
  2.  
  3.    ' [ Round Bytes Function ]
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    '
  9.    ' MsgBox(Round_Bytes(1023))             ' Result: 1.023 Bytes
  10.    ' MsgBox(Round_Bytes(80060, 1))         ' Result: 78,2 KB
  11.    ' MsgBox(Round_Bytes(60877579))         ' Result: 58,06 MB
  12.    ' MsgBox(Round_Bytes(4485888579))       ' Result: 4,18 GB
  13.    ' MsgBox(Round_Bytes(20855564677579))   ' Result: 18,97 TB
  14.    ' MsgBox(Round_Bytes(990855564677579))  ' Result: 901,18 PB
  15.    ' MsgBox(Round_Bytes(1987464809247272)) ' Result: 1,77 PB
  16.  
  17.    Enum xByte As Long
  18.        kilobyte = 1024L
  19.        megabyte = 1024L * kilobyte
  20.        gigabyte = 1024L * megabyte
  21.        terabyte = 1024L * gigabyte
  22.        petabyte = 1024L * terabyte
  23.    End Enum
  24.  
  25.    Private Function Round_Bytes(ByVal bytes As Long, _
  26.                                  Optional ByVal decimals As Integer = 2 _
  27.                                  ) As String
  28.  
  29.        Select Case bytes
  30.  
  31.            Case Is >= xByte.petabyte
  32.                Return String.Format("{0} PB", (Convert.ToDouble(bytes) / xByte.petabyte).ToString("n" & decimals))
  33.  
  34.            Case Is >= xByte.terabyte
  35.                Return String.Format("{0} TB", (Convert.ToDouble(bytes) / xByte.terabyte).ToString("n" & decimals))
  36.  
  37.            Case Is >= xByte.gigabyte
  38.                Return String.Format("{0} GB", (Convert.ToDouble(bytes) / xByte.gigabyte).ToString("n" & decimals))
  39.  
  40.            Case Is >= xByte.megabyte
  41.                Return String.Format("{0} MB", (Convert.ToDouble(bytes) / xByte.megabyte).ToString("n" & decimals))
  42.  
  43.            Case Is >= xByte.kilobyte
  44.                Return String.Format("{0} KB", (Convert.ToDouble(bytes) / xByte.kilobyte).ToString("n" & decimals))
  45.  
  46.            Case Is >= 0
  47.                Return String.Format("{0} Bytes", Convert.ToDouble(bytes).ToString("n0"))
  48.  
  49.            Case Else
  50.                Return String.Empty
  51.  
  52.        End Select
  53.  
  54.    End Function
  55.  
  56. #End Region
8183  Programación / Scripting / Re: [BATCH] Ejecutar si la impresora está imprimiendo? en: 17 Septiembre 2013, 18:29 pm
En el hipotético caso de que la impresora active algún servicio de forma automática justo antes de imprimir entonces sería una tarea sencilla de realizar, monitorizando el estado del servicio (Started/Stopped) filtrando la salida del comando SC con un scrpit Batch.

No me cuesta nada mostrarte un ejemplo, pero es que lo de que la impresora active por si mismo el servicio de cola de impresión u otros servicios de terceros es solo una hipótesis, así que no quiero codear en vano :P.

Puedes hacer una prueba, en el panel de servicios de Windows (services.msc) busca servicios instalados por tu software de impresora (si es que utilizas algun software de terceros) y detén esos servicios, además detén estos dos servicios:

· Cola de impresión
· Extensiones y notificaciones d eimpresora

Cuando los hayas detenido todos, intenta hacer una impresión, si no funciona, activa el servicio de "cola de impresión" (porque me parece que la impresora no puede activar el servicio de forma automática) y prueba con el resto de servicios detenidos.

En fín lo suyo es comprobar si alguno de los servicios se activa por si solo para realizar la impresión, con eso sería suficiente para codear el Batch.

Saludos!
8184  Programación / .NET (C#, VB.NET, ASP) / [SOURCE] ShellInfo,una herramienta para el menú contextual de archivos y carpeta en: 17 Septiembre 2013, 17:34 pm


Descripción:

ShellInfo es una aplicación command-line que devuelve información específica de un archivo o de un directorio:

· Ruta absoluta
· Directorio
· Nombre de archivo
· Nombre de carpeta
· Tamaño (en bytes)
· Fecha de creación
· Fecha de Modificación
· Fecha de último acceso
· Lista de archivos

La aplicación está pensada para integrarla en el menú contextual de Windows, aunque también se puede usar de forma manual desde la consola para automatizar otro tipo de tareas.


Demostración:

( ATENCIÓN, ESTE VIDEO ES DE LA ANTIGUA VERSIÓN V1.0 )




Descarga:

Código fuente:

Instalador con integración en el menú contestual de Windows:
8185  Sistemas Operativos / Windows / [APORTE] Menu en cascada para Windows 8 - Copiar Información en: 17 Septiembre 2013, 17:27 pm
Menu en cascada para Windows 8 - Copiar Información



Imágenes:




Opción "Reporte completo" para carpetas:

Código:
Nombre de carpeta: Debug

Ruta completa...: C:\Visual Studio Projects\CopyPath\CopyPath\bin\Debug
Letra de unidad.: C:\

Fecha de creación.....: 15/09/2013 16:03:19
Fecha de modificación.: 17/09/2013 8:40:55
Fecha de último acceso: 17/09/2013 8:40:55

Longitud de ruta completa....: 53
Longitud de nombre de carpeta: 5

Tamaño en Bytes....: 155.002 Bytes
Tamaño en Kilobytes: 151,37 KB
Tamaño en Megabytes: 0,15 MB
Tamaño en GigaBytes: 0,00 GB
Tamaño en TeraBytes: 0,00 TB


Opción "Reporte completo" para archivos:

Código:
Nombre de archivo: CopyInfo.exe

Ruta completa...: D:\Utilidades\Registros\Menú contextual\CopyInfo.exe Setup\{sys}\CopyInfo.exe
Directorio......: D:\Utilidades\Registros\Menú contextual\CopyInfo.exe Setup\{sys}
Letra de unidad.: D:\

Extensión de archivo: exe
Atributos de archivo: Archive, NotContentIndexed
Versión de archivo..: 1.0.0.0

Fecha de creación.....: 16/09/2013 21:39:42
Fecha de modificación.: 17/09/2013 8:33:01
Fecha de último acceso: 16/09/2013 21:39:42

Longitud de ruta de acceso...: 85
Longitud de directorio.......: 72
Longitud de nombre de archivo: 12

Tamaño en Bytes....: 35.840 Bytes
Tamaño en Kilobytes: 35,00 KB
Tamaño en Megabytes: 0,03 MB
Tamaño en GigaBytes: 0,00 GB
Tamaño en TeraBytes: 0,00 TB


También pueden aprovecharse de su utilización para automatizar otro tipo de tareas, por consola:

Citar
Código:
 ______                      _______         ___
|      |.-----.-----.--.--. |_     _|.-----.'  _|.-----.
|   ---||  _  |  _  |  |  |  _|   |_ |     |   _||  _  |
|______||_____|   __|___  | |_______||__|__|__|  |_____|
              |__|  |_____| By Elektro H@cker


[+] Syntax:

    CopyInfo.exe [Switch] [FILE or FOLDER]


[+] Switches:

    /?            | Display this help
                  |
    /fullname     | Return Full path
    /filename     | Return Filename (including extension)
    /Dir          | Return Directory name
    /Size         | Return Size (In bytes)
    /Attrib       | Return Attributes
    /CreationTime | Return Creation date
    /ModifyTime   | Return Modification date
    /AccessTime   | Return Last access date
    /FullnameLen  | Return Full path length
    /FilenameLen  | Return Filename  length
    /DirLen       | Return Directory length
    /FileList     | Return directory file list
    /FileListRec  | Return directory file list (recursive)
    /Report       | Return a report with all of this and additional info.
                  |
    /C            | Send the info to Clipboard.
                  | NOTE: Use this switch as last argument.


[+] Usage examples:

    Program.exe /fullname ".\File.txt"
    # Returns the full path. (Ex: C:\File.txt)

    Program.exe /fullname ".\File.txt" /C
    # Returns the full path and copy it into Clipboard. (Ex: C:\File.txt)

    Program.exe /drive "C:\File.txt"
    # Returns the drive letter. (Ex: C:\)

    Program.exe /size "C:\File.txt"
    # Returns the size in bytes. (Ex: 100024)



Demostración:





Instrucciones:

1. Descargar el siguiente archivo:

-> Para Windows 8 64 Bit

2. Descomprimirlo, acceder a la carpeta que se llama "Installer", y ejecutar el archivo.



Que lo disfruten!
8186  Programación / Programación General / Re: Ayuda xcopy batch en: 17 Septiembre 2013, 15:04 pm
quiero no tener q apretar la "N" cada ves q pregunta si deseo remplazar un archivo...

como seria /?

Es algo tan sencillo como redirigir la pulsación de la tecla "N" al UserInput del comando XCopy:

Código:
Echo N| XCOPY /E /-Y ".\Dir1\*" ".\Dir2\"

Saludos!





EDITO:

Tema aparte...

Citar

...Por dios!!!

Permíteme que corrija tremenda catástrofe con toda mi buena intención:

TODOS LOS ARCHIVOS HAN SIDO COPIADOS SATISFACTÓRIAMENTE

Saludos!
8187  Programación / .NET (C#, VB.NET, ASP) / Re: Desactivar un adaptador de red desde C# en: 17 Septiembre 2013, 06:31 am
Citar
Código
  1. "NetConnectionStatus=2 and AdapterType='" + adapterType + "'")

Debes especificar el keyword "WHERE", y luego concatenar con "AND".

Código
  1. "WHERE NetConnectionStatus='2' and AdapterType='" + adapterType + "'")

Por lo demás lo veo bien, si estás usando Windows 8 entonces deberías usar la Class MSFT_NetAdapter.

Te muestro como lo hice en VB.NET:



Código
  1.        Dim QueryFormat As String = _
  2.            String.Format( _
  3.            "SELECT {0} FROM Win32_NetworkAdapter WHERE AdapterType = '{1}' And NetConnectionStatus = '{2}'", _
  4.            "AdapterType,NetConnectionID,NetConnectionStatus", _
  5.            "Ethernet 802.3", _
  6.            "2" _
  7.            )
  8.  
  9.        Dim Query As New ObjectQuery(QueryFormat)
  10.        Dim Searcher As New ManagementObjectSearcher(Query)
  11.  
  12.        For Each result As ManagementObject In Searcher.Get
  13.  
  14.  
  15.            MsgBox(String.Format(" NetConnectionID: {1}{0} NetConnectionStatus: {2}{0} AdapterType: {3}{0}", _
  16.                                 Environment.NewLine & Environment.NewLine, _
  17.                                 result.Item("NetConnectionID"), _
  18.                                 result.Item("NetConnectionStatus"), _
  19.                                 result.Item("AdapterType")))
  20.  
  21.            Try
  22.                result.InvokeMethod("Disable", Nothing)
  23.            Catch ex As Exception
  24.                MessageBox.Show(ex.Message)
  25.            End Try
  26.  
  27.        Next



Traducción a C# (No lo he testeado):

Código
  1. string QueryFormat = string.Format("SELECT {0} FROM Win32_NetworkAdapter WHERE AdapterType = '{1}' And NetConnectionStatus = '{2}'", "AdapterType,NetConnectionID,NetConnectionStatus", "Ethernet 802.3", "2");
  2.  
  3. ObjectQuery Query = new ObjectQuery(QueryFormat);
  4. ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Query);
  5.  
  6.  
  7. foreach (ManagementObject result in Searcher.Get) {
  8.  
  9. Interaction.MsgBox(string.Format(" NetConnectionID: {1}{0} NetConnectionStatus: {2}{0} AdapterType: {3}{0}", Environment.NewLine + Environment.NewLine, result.Item("NetConnectionID"), result.Item("NetConnectionStatus"), result.Item("AdapterType")));
  10.  
  11. try {
  12. result.InvokeMethod("Disable", null);
  13. } catch (Exception ex) {
  14. MessageBox.Show(ex.Message);
  15. }
  16.  
  17. }
  18.  
  19. //=======================================================
  20. //Service provided by Telerik (www.telerik.com)
  21. //Conversion powered by NRefactory.
  22. //Twitter: @telerik
  23. //Facebook: facebook.com/telerik
  24. //=======================================================


Saludos!
8188  Programación / Scripting / Re: Personalizar Batch en: 17 Septiembre 2013, 05:08 am
@Pedrín-2

Porfavor vuelve a leer los comentarios que te dejé escritos en el script,
Te comenté cual es el problema exacto aquí:

Código:
START EXPLORER %cadena%

La variable, es decir, el argumento de la ruta de acceso, debes encerrarlo usando comillas dobles:

Código
  1. Explorer.exe /select,"%cadena%"





Supongamos que el valor de la variable cadena es este:
Código
  1. Set "Cadena=C:\Carpeta con espacios"

Entonces si tu haces esto:
Código
  1. Explorer.exe %Cadena%
(Que es lo mismo que hacer esto:)
Código
  1. Explorer.exe C:\Carpeta con espacios

Estás pasándole 3 argumentos al proceso:
Código:
1. C:\Carpeta
2. con
3. espacios

Como el explorer.exe no puede encontrar el directorio especificado (Primer argumento: "C:\Carpeta") entonces por defecto te redirige a la localización de "mis documentos".

Pero si tu haces esto otro:
Código
  1. Explorer.exe "%cadena%"
(Que es lo mismo que hacer esto:)
Código
  1. Explorer.exe "C:\Carpeta con espacios"

Ahora le estás pasando un único argumento y te va a abrir la localizión del directorio especificado (siempre que el directorio exista):
Código:
C:\Carpeta con espacios



NOTA: Lo de las comillas dobles debes aplicarlo a "TODO".



un saludo
8189  Programación / Scripting / Re: [BATCH] Duda en: 17 Septiembre 2013, 04:54 am
porque no funciona el "set m=%t:~0,x%" (Es decir, porque  
la x no actua como variable)

Lo primero de todo es que en ese ejemplo estás escribiendo una x literal, no una variable.

Una x:
Código:
x

Una variable:
Código:
%x%

Entonces añadiendo los caracteres que faltan, nos quedaría así la sintaxis:

Código:
%t:~0,%x%%

Pero de todas formas los caracteres "%" de inicio y fin de variable de la variable "%X%" entrarían en conflicto con los caracteres "%" de la otra variable "%T%", y esto es lo que conseguirías:

%t:~0,%x%%

Lo que he marcado en rojo es lo que Batch tomaría como la primera variable, desde el primer caracter "%" hasta el segundo "%",
lo que he resaltado en en verde se tomaría como un string,
y lo que he resaltado en amarillo es lo que se tomaría como otra variable, o en este caso como un escape del operador "%".

Como puedes entender a simple vista eso no podría funcionar jamás porque como resultado se habrán parseado mal los datos, obteniendo más datos y variables de las que en realidad tenemos.

Entonces al intentar realizar el substring (var:~0,1) y al intentar mostrar el resultado con "echo %m%", esto es lo que Batch te mostraría:
Código:
x%

El string (x) y el operador escapado % (%%), eso es lo que Batch ha podido entender.

Es por esa razón que se deben expandir las variables en tiempo de ejecución en lugar de parsearlas,
o en su defecto también podemos usar la recursividad con el comando Call para parsear las variables.

Lee acerca del comando Setlocal EnableDelayedExpansion y su utilización.

Te muestro dos alternativas funcionales:

Código
  1. @Echo OFF
  2. setlocal enabledelayedexpansion
  3. set /A "x=0"
  4. set "t=Bienvenido"
  5. set /a "x+=1"
  6. set "m=!t:~0,%x%!"
  7. echo %m%
  8. Pause&Exit

Código
  1. @Echo OFF
  2. set /A "x=0"
  3. set "t=Bienvenido"
  4. set /a "x+=1"
  5. call set "m=%%t:~0,%x%%%"
  6. echo %m%
  7. Pause&Exit

Saludos.
8190  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets) en: 16 Septiembre 2013, 20:20 pm
Este post, parece medio viejito, pero EXCELENTE APORTE. OJALA  LO HUBIERA VISTO ANTES....SAlu2s

Se agradece, pero es una pena que los .NETeros no estén muy interesados por mis publicaciones en este hilo :P

Un saludo!
Páginas: 1 ... 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 [819] 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines