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 - Meta

#541
Hola:

En este enlace del mismo foro http://forums.microsoft.com/MSDN-ES/ShowPost.aspx?PostID=3836544&SiteID=11
Puedo enviar datos de un byte al puerto serie de esta manera:

Este código dentro de un Button

byte[] miBuffer = new byte[1];

            miBuffer[0] = 0x74; // Letra "t" del ASCII.

            this.serialPort1.Write(miBuffer, 0, miBuffer.Length);


Me gustaría recibir un byte, pero no se como se hace.
Por ejemplo:
Tengo 8 Button o botones en el formulario o Form1 para enviar datos de un bytes como muestra el código de ahí arriba. Otros 8 Button de sólo lectura, es decir, que sólo detecta activado o desactivado, 1 ó 0, True o False. Si recibe un bytes para un button, que lo reconozca.

Creo que con un if else me basta.

Un cordial saludo.

EDIT:
Tal vez no me expresé bien.

¿Cómo se recibe un byte al puerto serie serialPort1?

Por ejemplo:
Un 0x61 en haxadecimal en ASCII es la letra a. Desde que reciba el 0x61 al puerto serie del ordenador o PC que el botón que se muestra en la imagen de abajo, se lea un 1 o un 0. En este caso un 1.

0x61 = 1 // button1.Text = "1";
0x60 = 0 //button1.Text = "0";




Si recibe un 0x61 se ejecuta la instrucción // button1.Text = "1";
Si recibe un 0x60 se ejecuta la otra instrucción // button1.Text = "0";

Esto solo es para saber el estado.
#542
Electrónica / Manual IC-Prog en PDF
20 Octubre 2008, 04:21 AM
Hola:

Presento un manual del programador de PIC IC-Prog más usado y popular. Pueden dejar cualquier comentario si ven algún fallo, alguna sugerencia para mejorarlo, etc.

Descarga

Más manuales aquí.

Un cordial saludos.
#543
Scripting / Manejar el regedit con el batch
16 Octubre 2008, 21:17 PM
Hola:

Me gustaría modificar el editor de registro de Windows con los archivos batch. Tengo el ic-prog ya configurado y esa configuración se guarda en el editor de registro de Windows (regedit).

Al configurar el ic-prog se queda guardado la configuración completa que en el regedit lo exporta a un archivo llamado *.reg donde se encuentra la información de la configuración.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\IC-Prog]

[HKEY_CURRENT_USER\IC-Prog\Settings]
"Programmer"="0"
"ExtProgrammer"="0"
"Api"="1"
"InvertDataOut"="0"
"InvertDataIn"="0"
"InvertSCK"="0"
"InvertMCLR"="0"
"InvertVCC"="0"
"InvertVPP"="0"
"IODelay"="10"
"Port"="Com2"
"Device"="138"
"Progging"="1"
"Erasing"="0"
"Overwrite"="0"
"IDCheck"="0"
"ConfigCheck"="0"
"Verify"="1"
"Priority"="0"
"VerDurProg"="0"
"EnableMCLR"="0"
"ByteWrite"="0"
"PowerControl"="0"
"Warning"="0"
"Device1"="0"
"Device2"="0"
"Device3"="0"
"Device4"="0"
"CodeType"="0"
"DataType"="0"
"DragDrop"="0"
"SmartWiz"="0"
"Shell"="0"
"SmartMouse"="0"
"OutHigh"="0"
"Language"="1"
"Freq"="0"
"SmartPort"="1"
"I2CAddress"="0"
"Protocol"="0"
"Development"="0"
"DTRasVCC"="1"
"SelectDevice"="0"
"UsesDriver"="1"
"Smart"="0"



Se puede perfectamente borrar esta configuración desde el regedit, cuya zona hay que tener cuidado. ¿Cuál es el código de bat para borrar la configuración completa que se llama ic-prog y que ese archivo bat antes que nada te pregunte que si quieres borrar y cuando borras salga el mensaje borrado?

Supongamos que no hay nada guardado. Para no tener que configurar de nuevo ya que lo tengo guardado en un archivo *.reg y ya con eso tengo la configuración otra vez.

Un cordial saludo.
#544
Hola:

Me gustaría entre todos nosotros, encontrar los grabadores de microcontroladores PIC de cualquier tipo, incluido los antiguos del MS-DOS. Tengo la idea de hacer manuales cada uno de ellos. Los programadores más usados son el famoso ic-prog y el más moderno winpic800, en el cual, sólo he hecho un manual de todos los programadores que hay que es el winpic800 donde lo puedes descargar en PDF pinchando aquí y verás la calidad como hago esos manuales y lo que pienso hacer.

Actualmente estoy haciendo el manual del ic-prog ya que muchos me han pedido que lo hiciera en el cual ya les daré aviso con un tema nuevo cuando lo acabe.

Recuerdo que los programas da igual que sean del MS-DOS que venían en diskette antiguo, al menos que se pueda programar el PIC-16C54, 16F84, 16F84A...

Según vaya encontrando enlaces los ponen aquí mientras estoy haciendo el manual del ic-prog con todo detalle.

Un cordial saludos.
#545
Electrónica / Pasar un micro a otro micro
15 Octubre 2008, 22:53 PM
Hola:

Tengo en mente pasar el código de abajo de un PIC a otro PIC diferente para aprender bien las adaptaciones. Me gustaría aquellas personas que saben adaptar muy bien el código mostrado abajo en ensamblador (ASM) a otro PIC. Al menos los que están en azúl me interesa verlo aquí adaptado.

Citar
Por ejemplo:
16F84A a 16F628A
16F84A a 16F88
16F84A a 16F876A
16F84A a 16F886
16F84A a 16F877A
16F84A a 16F887
16F84A a 18F1220
16F84A a 18F2550
16F84A a 18F4550

El código a adaptar:
;************************************** Ensam_03.asm ************************************
;
; Por el Puerto B se obtiene el dato de las cinco líneas del Puerto A al que está conectado
; un array de interruptores. Por ejemplo, si por el Puerto A se introduce "---11001", por
; el Puerto B aparecerá "xxx11001" (el valor de las tres líneas superiores no importa).
;
; ZONA DE DATOS **********************************************************************

__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC ; Configuración para el
; grabador.
LIST P=16F84A ; Procesador.
INCLUDE <P16F84A.INC> ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0 de memoria de
Inicio ; programa.
bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salidas.
movlw b'11111111'
movwf TRISA ; Las líneas del Puerto A se configuran como entradas.
bcf STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
Principal
movf PORTA,W ; Lee el Puerto A.
movwf PORTB ; El contenido de W se visualiza por el Puerto B.
goto Principal ; Crea un bucle cerrado.

END ; Fin del programa.


Espero que no sea complicado, sobre todo adaptarlo del 16F al 18F en ASM.

Un cordial saludo.
#546
Hola:

En un puerto del que sea por ejemplo el puerto A del PIC18F2550, quiero solo modificar un bit. Son 8 pin de salida del RA0 al RA7 y quiero modificar el RA7 con una instrucción que no se cual es en el lenguaje C, pero en ensamblador (ASM) son el BCF y BSF.

¿Cómo es en C y con el compilador CCS?

O si no, ¿cómo agrego en ASM lo que quiero en C del CCS?

Un cordial saludos.
#547
.NET (C#, VB.NET, ASP) / MonoDevelop C#
14 Octubre 2008, 15:14 PM
Hola:

Tengo el openSUSE 11.0 y utilizo el MonoDevelop que tiene en el DVD. En el Visual C# Express 2008 de Windows, creo un nuevo proyecto y elijo "Aplicación de Windows Form". En Linux veo que tiene varias cosas y no se cual es su equivalente.

En la barra de herramientas, arriba, pulso Archivo, Nueva solución..., sale un ventana y en ella elijo, C#, entre ellas hay 4 cosas:

- Proyecto de consola
- Proyecto vacío
- Proyecto Gtk# 2.0
- Librería


Aquí sólo se que debo utilizar uno de estos dos:

- Proyecto vacío
- Proyecto Gtk# 2.0


¿Cuál de los dos es el equivalente de Visual C# Express para empezar hacer un proyecto?

Un cordial saludos.
#548
Hola:

Tengo un portaltil en el cual ni se cual  es (por ahora) que me regalaron. Tiene puerto paraleo y 2 puerto serie. Arranca según me dijeron el MS-DOS. Se que es de la época cuando casi nadie sabía que es eso desde entonces. (Algunos ni saben lo que es hoy en día).

Estoy buscando en estos momentos un MPLAB de MS-DOS que fue el primero que se creó. Cuiadado una cosa, hay varias versiones, la primera que vi sino recuerdo mal es del 1999, vi otro por ahí del 2001 y el máximo que he visto la versión más actual fue la 2003. Me gustaría encontrar la última posible.

¿Alguien posee ese baúl de los recuerdos?

Un cordial saludos.
#549
PHP / Cuenta descarga
27 Septiembre 2008, 01:42 AM
Hola:

En una web html sencillo, cambiando la extensión a .php. Quiero incluir esta frase: Descargar Manual WinPic800 PDF XPS.

En la palabra PDF que tenga un enlace a un archivo llamado Winpic800.pdf guardado en un directorio llamado manuales. Con el formato XPS lo mismo. La extensiones también podrían ser .zip si me interesa que se lo descarguen comprimido.

Subo estos archivos al servidor de Lycos y funciona. Lo que no se hacer es un cuenta click de descarga con PHP y MySQL.

Bueno, en un lado del texto "Descargar Manual WinPic800 PDF XPS" debe aparecer el número de descargas tanto en el enlace de PDF como en XPS ya que los datos descargados o que en cada click se guarda en la base de datos. Lo mismo que cuando visitamos un foro, al hacer click en un tema, se cuenta el números de visitas.

Me bajé el manual de php aquí, pero no se nada ni buscar en él.

Eso si, incluye el phpmyadmin para crear tablas  de MySQL que es donde se va a guardar los datos descargados.

Un cordial saludos.
#550
Hola:

Estoy usando el mono c# del openSUSE 11.0 y me sale un mensaje como muestra la imagen.

Quiero colocar bien el botón o cualquier componente en el form1 y que no oupe todo el espacio ¿Cómo se hace?



Un cordial saludos.
#551
Electrónica / RS232 con PIC-16F84A y Visual C# .net
16 Septiembre 2008, 06:06 AM
Hola:

¿Qué opinan de controlar un PIC con tu propia interfaz en vez de utilizar el Hyperterminal de Windows?

Con el tiempo haré un manual paso a paso y a PDF desde 0 con C# y quizás haga lo mismo con VB y C++ sobre la edición Express.

[youtube=425,350]http://es.youtube.com/watch?v=niWAbQ-HVnY[/youtube]

Saludos.
#552
.NET (C#, VB.NET, ASP) / Manejar puerto serie
12 Septiembre 2008, 17:47 PM
Hola:

He probado el HyperTerminal de Windows y la entrada de datos funciona muy bien. Me dio por probarlo con Visual C# .net Express 2008. En modo consola funciona muy bien y aquí hay un ejemplo.
http://msdn.microsoft.com/es-es/library/system.io.ports.serialport.aspx

Hice un proyecto pequeño en modo Visual y no me leen bien la entrada del puerto serie con el componente textBox1, el ejemplo del modo consola si funciona.

PC-A PC-B
2 - 3 (Rx de A con Tx del B)
3 - 2 (Rx de B con Tx del A)
5 - 5 (Comun o GND)

En resumen, quiero recibir datos como lo hace el HyperTerminal del Windows Xp. Por lo que he hecho ahora no es nada.

El código fuente del programa no he hecho nada y espero que me puedan ayudar. Sólo en la parte de recibir datos.




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;     // No se olviden de poner using System.IO.Ports;

namespace Chat
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}


Un cordial saludos.
#553
Hola:

Estoy trabajando con el objeto serialPort1 utilizando COM1, paridad NONE, 9600 baudios, bits de datos 8 y bit de stop 2.

Utilizando un textBox para recibir datos. ¿Cómo recibo los datos que me envían en un puerto serie RS232 desde el otro ordenador o PC?

PC-A   PC-B
   2    -    3    (Rx de A con Tx del B)
   3    -    2    (Rx de B con Tx del A)
   5    -    5    (Comun o GND)

Uso el Visual C# 2008 Express

Saludos
#554
.NET (C#, VB.NET, ASP) / ASCII a Hex
5 Septiembre 2008, 06:31 AM
Hola:

Uso el Visual C# 2008 Express, quiero pasar de ASCII o String a Hexadecimal para enviarlo al puerto RS232 y el PIC 16F84A lo entienda.

Quiero enviar en ASCII la letra t que en hexadecimal es 0x74 o si prefieren la T su hexadecimal es 0x54.
t = 0x74
T = 0x54
¿Cómo envío este carácter en hexadecimal?

private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("0x74"); // No creo que así funcione, quizás sea sin las comillas.
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}

label1.Text = "A";
}


¿Cómo lo hago?

Un cordial saludos.
#555
.NET (C#, VB.NET, ASP) / Enviar datos al puerto db9
4 Septiembre 2008, 23:14 PM
Hola:

Estoy intentado enviar datos por el puerto serie con el Visual C# 2008 Express con la configuración puerto COM1.
6400-N-8-1.

Quiero lograr que en cada botón, envíe un carácter al puerto serie db9 o RS232, por ejemplo:

Abrir:
Puerta A: Que envíe este caracter apa
Puerta B: apb
.
.
Puerta E: ape

Lo mismo para cerrar puerta.
Cerrar:
Puerta A: cpa
Puerta B: cpb
.
.
Puerta E:cpe

Espero que se entienda. Al menos quiero probar con el primer botón Puerta A para aprender como se hace.



Un cordial saludos.
#556
Hola:



No se que pasa, pero cualquier poryecto que tengo guardado o al crear alguno al ejecutarlo me sale este error.



Error 1 No se puede escribir en el archivo de resultados 'C:\Documents and Settings\Hunter\Mis documentos\Visual Studio Codename Orcas\Projects\X10\X10\obj\Debug\X10.exe' -- 'Could not execute CVTRES.EXE.' X10


Lo reinstalé de nuevo y el SP1 ya lo tenía instalado desde hace un tiempo. Reinicio y nada de nada.

Este mensaje busqué en la ayuda y pone esto abajo que para mi ni significa nada.

Mensaje de error
No se puede escribir en el archivo de resultados 'archivo' — 'causa'
Could not write to output file 'file' ù 'reason'

El compilador no pudo escribir en un archivo de resultados. Compruebe la ruta de acceso al archivo para asegurarse de que existe. Si ya hay un archivo generado anteriormente en esa ubicación, asegúrese de que es modificable y de que ningún proceso tiene bloqueado el archivo actualmente. Por ejemplo, asegúrese de que su archivo ejecutable no está cargado en memoria cuando intente generarlo.


Al ejecutarlo, me pregunta que si ejecuto lo anterior, le doy que si y me sale este mensaje:



¿Hay alguna solución?

Un cordial saludos.
#557
Electrónica / No me compila el MPLAB 8.14
3 Septiembre 2008, 21:00 PM
Hola:

No se que pasa pero desde que empecé a compilar cualquier .asm me da el mismo error y nunca compila.

Desinstalé el MPLAB y lo volví a instalar, reinicio y sigue igual. ¿Qué le pasa ahora el MPLAB  que cuanto más me hace es cuando más me da problemas?

[quote]
Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 19:39:53 2008
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "ejem_1_2.asm" /l"ejem_1_2.lst" /e"ejem_1_2.err" /d__DEBUG=1
Could not spawn language tool.  Check command-line options.  (5)
A language-plugin exception occurred and was logged.
----------------------------------------------------------------------
Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 19:39:53 2008
----------------------------------------------------------------------
[color=red][b]BUILD FAILED[/b][/color][/quote]

El programa que estoy haciendo es este:

[code];Tres valores están almacenados en la memoria, A, B y C. Y en las
;direcciones 10, 11 y 12h. Resolver ecuación (A + B) - C.
;Velocidad d ereloj; 4MHz
LIST p=16F84A ;Tipo de procesador.
INCLUDE <P16F84A.INC> ;Definiciones de registros internos.
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
;*****************************************************************
DATO_A EQU 0x10 ;Define la posición del dato A
DATO_B EQU 0x11 ;Define la posición del dato B
DATO_C EQU 0x12 ;Define la posición del dato C
RESULTADO EQU 0x13 ;Define la posición del dato RESULTADO
;*****************************************************************
ORG 0x00 ;Vector de reset
goto INICIO
ORG 0x05 ;Salva el vector de interrupción
INICIO:
movlw .1
movwf DATO_A
movlw .9
movwf DATO_B
movlw 0Ah
movwf DATO_C
;
movf DATO_A,W ;Carga el 1er sumando
addwf DATO_B,W ;Suma 2º operando
movwf RESULTADO ;Almacena resultado parcial
movf DATO_C,W ;Carga el sustraendo
subwf RESULTADO,F ;Resta el minuendo y almacena
STOP
goto $
END ;Fin del programa


Saludos.[/code]
#558
Electrónica / Manual básico WinPic800 en PDF.
3 Septiembre 2008, 12:57 PM
Hola:

Presento un manual básico sobre el WinPic800 en PDF para personas nóveles en este tema que sea capaz realizar sus primeras pruebas paso por paso con el grabador TE20x o similares.

Descargar

Un cordial saludos.
#559
.NET (C#, VB.NET, ASP) / Puerto serie con C#
6 Agosto 2008, 18:43 PM
Hola:

Me gustaría encontrar toda información sobre el puerto serie controlado con Visual C#. Controlar un PIC-16F84A o lograrlo comunicar.

Por ahora no he encontrado mucha información.

Pueden buscar cualquier información de lo que sea sobre el puerto serie con Visual C# y PIC. Según hayan apareciendo Web las pongo aquí, en el primer post.

http://msdn.microsoft.com/es-es/library/system.io.ports.serialport.aspx

http://personales.ya.com/cepalacios/Proteus.htm#Proteus_Capitulo_20
Contraseña: D.P.E.

[youtube=425,350]http://es.youtube.com/watch?v=7GGcXw_Kvmk[/youtube]

[youtube=425,350]http://es.youtube.com/watch?v=z5K9UBlOdTo[/youtube]

Un cordial saludos.
#560
Electrónica / Mejorar el Mod8 para PS2
13 Julio 2008, 02:46 AM
Hola.

Me gustaría contactar con el que documentó este ASM del PIC12C508 si tiene un diagrama de flujo para entenderlo mejor. Ya que utiliza retardos y para verlo en el MPLAB es un tostón. Su e-mail abajo no funciona.


;+-------------------------------------------------------------------------+
;¦ MYC.ASM ¦ DESENSAMBLADO DE 8MODCHIP.HEX PARA PSX2 POR MANOLO Y COMPAÑIA ¦
;+-------------------------------------------------------------------------+

;  NOTA:
;* Para visualizar este fichero correctamente, usa el edit del dos
;  o el bloc de notas del windows con el tipo de fuente 'terminal'
;* El objeto de realizar el desensamblado y comentado del código fuente,
;  del 8modchip.hex es con el fin de que todos conozcamos como funciona
;  y podamos perfeccionarlo y modificarlo entre todos a nuestro antojo.
;* Espero que al publicarlo en el foro, las mentes pensantes colaboren.
;* Desconozco quien es el autor del hex original pero le felicito por su
;  programa.
;* Según aparezcan nuevas versiones del modchip se irán desensamblando
;  y publicando.
;* Por favor poner vuestras experiencias en el foro para que lo vea todo
;  el mundo.
;* los tiempos de las rutinas son muy críticos.
;* El codigo está más ordenado que en el 8modchip.hex pero es el mismo
;  únicamete se han suprimido los caracteres de la tabla que no se usan
;  para la versión europea.
;* Sugerencias de assembler o hard: jiglesias@arrakis.es
;--------------------------------------------------------------------------

;                   +----------------------------------+
;                   ¦ ESQUEMA DE CONEXIONES PIC12C509A ¦
;                   +----------------------------------+
;
;                            +------+  +------+
;                            ¦      +--+      ¦
;                       +5V ¦¦1  PIC12C509A  8¦¦ MASA
;                            ¦                ¦
;                     SWAPX ¦¦2 GPIO5  GPIO0 7¦¦ DVDIN=0                     
;                            ¦                ¦
;                  DVDOUT=1 ¦¦3 GPIO4  GPIO1 6¦¦ TXSCEE   
;                            ¦                ¦
;                  /RESET=0 ¦¦4 GPIO3  GPIO2 5¦¦ SWAPY     
;                            ¦                ¦
;                            +----------------+
;           
; 1 - +5VCC  - SIN COMENTARIOS
; 2 - SWAPX  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
; 3 - DVDOUT - ES IGUAL A 1 CUANDO LA BANDEJA DEL DVD ESTA SALIENDO
; 4 - /RESET - ES IGUAL A 0 CUANDO PULSAMOS EL RESET DE LA PS2
; 5 - SWAPY  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
; 6 - TXSCEE - ES POR DONDE TRANSMITE VIA SERIE "SCEE"
; 7 - DVDIN  - ES IGUAL A 0 CUANDO LA BANDEJA DEL DVD ESTA ENTRANDO
; 8 - MASA   - SIN COMENTARIOS
;--------------------------------------------------------------------------

;+---------------------------------+
;¦ PROCESADOR A EMPLEAR PIC12C509A ¦
;+---------------------------------+
P509A EQU 1          ;0=PIC12C508A 1=PIC12C509A
IF        P509A
list      p=12c509A
include   "p12c509A.inc"
ELSE
list      p=12c508A
include   "p12c508A.inc"
ENDIF

;+-----------------------------------+
;¦ FUSIBLES, WASDOG, OSCILADOR ETC.. ¦
;+-----------------------------------+
__FUSES _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

;+------------------+
;¦ NOTACION DECIMAL ¦
;+------------------+
radix   dec
;--------------------------------------------------------------------------

;+--------------------------+
;¦ VARIABLES DE RAM INTERNA ¦
;+--------------------------+
cblock 0x0B
        RAM_0B  ;CONTADOR PAUSA
        RAM_0C  ;CONTADOR CARGA DEL DVD
        RAM_0D  ;CONTADOR PAUSA
        RAM_0E  ;CANTIDAD DE BYTES A ENVIAR DE LA TABLA
        RAM_0F  ;CANTIDAD DE BITS A ENVIAR DEL BYTE
        RAM_10  ;NO UTILIZADA
        RAM_11  ;CONTADOR W EN PAUSA Wx199
        RAM_12  ;CONTADOR 199 EN PAUSA Wx199
        RAM_13  ;BYTE LEIDO DE LA TABLA
        RAM_14  ;PUNTERO DEL BYTE DE LA TABLA
        RAM_15  ;MASCARA ESTADO DE LOS BIT DEL PUERTO
endc
;--------------------------------------------------------------------------

;+-----------------+
;¦ VECTOR DE RESET ¦
;+-----------------+
org 0x00
        movwf   OSCCAL          ;CALIBRA EL OSCILADOR INTERNO
        goto    COMIENZO        ;SALTA LA COMIENZO DEL PROGRAMA
;--------------------------------------------------------------------------

;+--------------------------------------+
;¦ VERSION DEL PROGRAMA (CODIGO INUTIL) ¦
;+--------------------------------------+
        retlw   'M'
        retlw   'A'
        retlw   'N'
        retlw   'O'
        retlw   'L'
        retlw   'O'
        retlw   ' '
        retlw   'Y'
        retlw   ' '
        retlw   'C'
        retlw   'O'
        retlw   'M'
        retlw   'P'
        retlw   'A'
        retlw   'Ñ'
        retlw   'I'
        retlw   'A'
;--------------------------------------------------------------------------

;+-----------------------+
;¦ COMIENZO DEL PROGRAMA ¦
;+-----------------------+
COMIENZO
        movlw   b'11000010'     ;CONFIGURA TMR0 PRESCALER = 1:8
        option                  ;OSCILADOR = 4MHZ

        movlw   255             ;INICIALIZA TODOS LOS PUERTOS
        movwf   RAM_15          ;EN ALTO Y RAM_15
tris GPIO ;
;--------------------------------------------------------------------------

;+----------------------------------------+
;¦ PAUSA DE ENCENDIDO DE 414 MILISEGUNDOS ¦
;+----------------------------------------+
        movlw   2               ;100 MILISEGUNDOS
        movwf   RAM_0D          ;
ETI_107 call    PAUSA50MSG      ;       +
        decfsz  RAM_0D,F        ;
        goto    ETI_107         ;
        movlw   6               ;300 MILISEGUNDOS
        movwf   RAM_0D          ;
ETI_10C call    PAUSA50MSG      ;       +
        decfsz  RAM_0D,F        ;
        goto    ETI_10C         ;
        movlw   14              ;14 MILISEGUNDOS
        call    PAUSAWX1MSG     ;
;--------------------------------------------------------------------------

;+------------------------------------------------------------------+
;¦ LECTURA DE LAS 3 OPCIONES CON EL PULSADOR DE RESET DE LA CONSOLA ¦
;+------------------------------------------------------------------+
;OPCION1 EL RESET NO HA SIDO PULSADO
;-----------------------------------
        btfsc   GPIO,3          ;SI EL RESET NO ESTA PULSADO
        goto    OPCION1         ;SALTA A OPCION1

;OPCION2 EL RESET HA SIDO PULSADO Y SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
;----------------------------------------------------------------------
        movlw   150             ;
        movwf   RAM_0D          ;
ETI_115 btfsc   GPIO,3          ;
        goto    OPCION2         ;SALTA A OPCION2 AL LEVANTAR EL RESET
        call    PAUSA50MSG      ;
        decfsz  RAM_0D,F        ;
        goto    ETI_115         ;

;OPCION3 EL RESET HA SIDO PULSADO Y NO SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
;-------------------------------------------------------------------------
        goto    OPCION3         ;SI CONTINUA PULSADO SALTA A OPCION3
;--------------------------------------------------------------------------

;+---------------------------------------------------+
;¦ OPCION 1 (RESET NO PULSADO) EL MODCHIP SE         ¦
;¦ DESHABILITA Y SOLO PODEMOS USAR JUEGOS ORIGINALES ¦
;+---------------------------------------------------+
OPCION1
        movlw   b'00111111'     ;INICIALIZA TODOS LOS
        tris    GPIO            ;PUERTOS EN ALTO Y
        sleep                   ;DESHABILITA EL MODCHIP
;--------------------------------------------------------------------------

;+------------------------------------------------------------------------+
;¦ OPCION 2 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO ANTES DE 7,5 SEG.) ¦
;¦ JUEGOS (PSX1 DIRECTOS) Y (PSX2 SIN PROTECCION ANTIMODCHIP CON AR1.3)   ¦
;+------------------------------------------------------------------------+
OPCION2
        bcf     GPIO,1          ;INICIALIZA PUERTO TXSERIE EN ALTO
        bcf     RAM_15,1        ;
        movf    RAM_15,W        ;
tris GPIO ;

        call    PAUSA50MSG      ;PAUSA CADA 100 TRANSMISIONES

        movlw   100             ;100 VECES
        movwf   RAM_0C          ;REPETIRA LA TRANSMISION
ETI_122
        btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
        goto    ETI_04C         ;DVD YA ESTA DENTRO TRANSMITE SCEE

        clrf    RAM_14          ;INICIALIZA PUNTERO A TABLA Y
        call    ENVIASCEE       ;TRANSMITE VIA SERIE 100 VECES 'SCEE'
        call    SUB_04C         ;LUEGO ESPERARA A QUE METAMOS OTRO JUEGO
        goto    ETI_122         ;ANTES DE VOLVER A TRANSMITIR 100 VECES
SUB_04C
ETI_04C
        btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
        goto    ETI_050         ;DVD AUN NO ESTA DENTRO SALE
        decfsz  RAM_0C,F        ;SI YA ESTA DENTRO RETORNA HASTA
        retlw   3               ;TRANSMITIR LAS 100 VECES 'SCEE'

ETI_050 movlw   b'00111111'     ;INICIALIZA TODOS PUERTOS
        tris    GPIO            ;COMO ENTRADAS
ETI_052
        btfss   GPIO,4          ;ESPERA A QUE PULSEMOS LA APERTURA
        goto    ETI_052         ;DE LA BANDEJA DEL DVD

        movlw   250             ;ESPERAMOS UN TIEMPO A LA CONSOLA PARA
        call    PAUSAWX1MSG     ;QUE TERMINE DE ABRIR LA BANDEJA DEL DVD

        btfss   GPIO,4          ;SI LA BANDEJA DEL DVD TODAVIA NO ESTA
        goto    ETI_052         ;ABRIENDOSE REPITE LA OPERACION

ETI_058
        btfsc   GPIO,4          ;SI LA BANDEJA DEL DVD ESTA ABRIENDOSE
        goto    ETI_058         ;SE ASEGURA A QUE SE ABRA DEL TODO

        movlw   24              ;PAUSA DE 6 SEGUNDOS PARA QUE
        movwf   RAM_0B          ;PONGAMOS EL JUEGO EN LA BANDEJA Y
ETI_05C movlw   250             ;PULSEMOS EL BOTON PARA INTRIDUCIRLO
        call    PAUSAWX1MSG     ;EN LA CONSOLA
        decfsz  RAM_0B,F        ;
        goto    ETI_05C         ;

        btfsc   GPIO,0          ;SI LA BANDEJA DEL DVD ESTA TODAVIA FUERA
        goto    ETI_052         ;REPITE LA OPERACION

        goto    OPCION2         ;CUANDO EL DVD YA ESTA DENTRO SALTA OPCION2
                                ;Y COMIENZAN LAS TRANSMISIONES DE 'SCEE'
;--------------------------------------------------------------------------

;+--------------------------------------------------------------------------+
;¦ OPCION 3 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO DESPUES DE 7,5 SEG.) ¦
;¦ JUEGOS PSX2 CON PROTECCION ANTIMODCHIP CON AR1.3                         ¦
;+--------------------------------------------------------------------------+
OPCION3
        btfss   GPIO,3          ;ESPERA A QUE SOLTEMOS EL
        goto    OPCION3         ;BOTON DE RESET

        movlw   255             ;INICIALIZA RAM_15 Y TODOS
        movwf   RAM_15          ;LOS PUERTOS
        tris    GPIO            ;EN ALTO

        movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
        movwf   RAM_0B          ;PARA QUE EXPULSE LA BANDEJA DEL DVD
ETI_132 movlw   b'00100100'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11011011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        movlw   b'00100000'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'00011011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_132         ;                 "
        movlw   b'00111111'     ;                 "
        tris    GPIO            ;                 "

        movlw   16              ;PAUSA PARA QUE LA BANDEJA DEL DVD
        movwf   RAM_0B          ;ESTE 4 SEGUNDOS ABIERTA Y NOS DE
ETI_144 movlw   250             ;TIEMPO A PONER EL JUEGO EN ELLA
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_144         ;                 "

        movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
        movwf   RAM_0B          ;PARA QUE INTRODUZCA LA BANDEJA DEL DVD
ETI_14A movlw   b'00010100'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11101011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        movlw   b'00010000'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11101011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_14A         ;                 "
        movlw   b'00111111'     ;                 "
        tris    GPIO            ;                 "

        goto    OPCION1         ;DESHABILITA AL MODCHIP Y YA PODEMOS
                                ;EJECUTAR EL JUEGO CON EL MENU DEL AR1.3
;--------------------------------------------------------------------------

;+---------------------------------------------------------------------+
;¦ TRANSMITE VIA SERIE 'SCEE' CON 8 BIT DE DATOS Y 2 DE STOP A 250 BPS ¦
;+---------------------------------------------------------------------+
ENVIASCEE
        movwf   RAM_0D          ;SALVA W EN RAM_0D (INUTIL PUES NO LO USA)

        movlw   72              ;72 MILISEGUNDOS DE ESPACIO ENTRE BYTES
        call    PAUSAWX1MSG     ;

        movlw   4               ;ENVIAREMOS 4 BYTES
        movwf   RAM_0E          ;DE LA TABLA
ETI_068
        movf    RAM_14,W        ;LEEMOS 1 BYTE DE
        call    TABLA           ;LA TABLA
        movwf   RAM_13          ;EN RAM_13
        comf    RAM_13,F        ;

        movlw   8               ;ENVIAREMOS 8
        movwf   RAM_0F          ;BITS DE CADA BYTE

        bsf     RAM_15,1        ;ENVIA EL BIT DE START VIA SERIE
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT DE START
        call    PAUSAWX1MSG     ;

ETI_073
        rrf     RAM_13,F        ;ENVIA 1 BIT DEL BYTE VIA SERIE
        movlw   b'11111000'     ;
movwf GPIO ;
        btfsc   STATUS,0        ;
        bsf     RAM_15,1        ;
        btfss   STATUS,0        ;
        bcf     RAM_15,1        ;
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT
        call    PAUSAWX1MSG     ;

        decfsz  RAM_0F,F        ;CONTINUAMOS HASTA
        goto    ETI_073         ;ENVIAR LOS 8 BITS DEL BYTE

        bcf     RAM_15,1        ;ENVIA 2 BITS DE STOP
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   8               ;8 MILISEGUNDOS DEL ANCHO DE
        call    PAUSAWX1MSG     ;LOS 2 BITS DE STOP

        incf    RAM_14,F        ;INCREMENTA PUNTERO DE LA TABLA

        decfsz  RAM_0E,F        ;CONTINUA HASTA
        goto    ETI_068         ;ENVIAR LOS 4 BYTES DE LA TABLA
        retlw   3               ;RETORNA CON W=03H
TABLA   addwf   PCL,F           ;TABLA PARA LA PS2 EUROPEA
        retlw   'S'
        retlw   'C'
        retlw   'E'
        retlw   'E'
;--------------------------------------------------------------------------

;+--------------------------+
;¦ PAUSA DE 50 MILISEGUNDOS ¦
;+--------------------------+
PAUSA50MSG
        movlw   50             
;+------------------------------+
;¦ PAUSA DE (W x 1 MILISEGUNDO) ¦
;+------------------------------+
PAUSAWX1MSG
        movwf   RAM_11         
ETI_042 movlw   199             
        movwf   RAM_12         
ETI_044 nop                     
        clrwdt                 
        decfsz  RAM_12,F       
        goto    ETI_044         
        nop                     
        decfsz  RAM_11,F       
        goto    ETI_042         
        retlw   3               
;--------------------------------------------------------------------------

end


Saludos.
#561
Hola:

¿Alguien tiene a estas alturas el .asm del chip de PSX de cualquier versión?

Quiero analizar el código por curiosidad. La verdad me cuesta encontrar ese sea .hex o .asm.

Saludos.
#562
http://cursodemicro.blogspot.com/

hay tres archivos de PIC con winrar que no consigo descargar.

¿Alguien lo puede conseguir?
#563
Electrónica / Interruptor de Luz
30 Marzo 2008, 23:25 PM
Hola:

Estoy diseñando un pequeño proyecto sobre sensor de luz y de movimiento. Para lo que lo voy a usar me parece mucho usar el famoso 16F84A. Tengo pensado en usar el 12F509, ya que sólo en el proyecto voy a usar una LDR para un pin de entrada al PIC y otro sensor de movimiento o proximidad que también usa otro pin de entrada, en cambio a su salida, sólo una un pin para un relé.

Lo bueno del 12F509 es que usa un oscilador interno con lo que me ahorra componentes externos y su tamaño del PIC es de 8 pines.

Mi preocupación es, que mirando bien la hoja de datos o datasheet como que solo tiene un puerto. Con esto quiero decir que no se si se puede configurar como dos pines de entrada y una de salida del mismo puerto.

Sensor PIC que voy a usar:


http://ww1.microchip.com/downloads/en/DeviceDoc/41236D.pdf

¿Qué opinan?
#564
Alguien me envió un email que no se quién es con insultos. Me gustaría sacar información de quién es, para saber su origen al menos.

Uso gmail.
#565
.NET (C#, VB.NET, ASP) / HyperTerminal propio
23 Enero 2008, 17:55 PM
Alguien sabe hacer un HyperTerminal propio con Visual C# Express  o un programa similar que lea las entradas y salidas de un PIC 16F84A???????
#566
¿Han probado alguien este Pic School?

¿O lo han visto a alguien para que me digan sus impresiones.




ver características aquí abajo.
http://www.msebilbao.com/tienda/product_info.php?cPath=23_87&products_id=341
#567
Electrónica / Crear un circuito en 3D.
22 Noviembre 2007, 06:41 AM
 Hola, sólo conozco dos programas que son capaces de diseñar un esquema eléctrico, porbar su funcionamiento y luego crear un circuito en 3 Dimensiones.

¿Alguien puede hacer un pequeño ejemplo o saben algún tutorial como hacerlo?

- Proteus 7.x
- electronics work bench
#568
Electrónica / Rerevista electrónica
17 Noviembre 2007, 12:56 PM
...
#569
.NET (C#, VB.NET, ASP) / server mail .net
3 Noviembre 2007, 21:55 PM
estoy intentando hacer funcionar este programa apra enviar e-mail desde mi PC sin usar otros como hotmail y gmail, sino el mio propio...

http://www.argosoft.com/RootPages/MailServerNET/Default.aspx

Al ejecutar ese programa (el del 1.66 MB) me da este error.




Tengo isntalado el sQL express 2005 y el FW .net 2.0
#570
Java / Juegos Java para movil
15 Octubre 2007, 02:26 AM
Estoy como loco buscando en google como programar juegos java para moviles y la verdad es un suplicio. Cada vez que busco algo me salen juegos ya hecho y me lo quieren vender.

Me interesa buscar web o foros que te ayude a empezar ahcer pequeñas apliaciones de juegos o lo que sea apra moviles, tutoriales cosas asó

¿Alguien conoce algo?
#571
PHP / Crear encuesta php y mysql 5.x
12 Octubre 2007, 17:47 PM
¿Alguien sabe crear una encuesta sobre php5 y MySQL 5.x?

Por ejemplo dentro de una pequeña página llamada prueba.php

Dentro de ella encuentras una pregunta y tres opciones pare elegir, por ejemplo:

- ¿Crees que nuestro planeta es grande?

- Sí
- No
- No se.


Cuando voten estas encuestas se queden guardados en MySQL desde una web de php.

Espero que no sea complicado hacer uno. Al menos en lso foros phpbb viene un gran ejemplo.

Ahora mira este video por curiosidad:
http://es.youtube.com/watch?v=2lEhrS65BP4

http://es.youtube.com/watch?v=wxZOB8jino0
#572
Multimedia / Mejor formato de video.
1 Septiembre 2007, 12:39 PM
En el Camtasia 4.

¿Cuál es la formato adecuado para guardar los videos?

No hablo solo de extensión, también el tipo de compresión.

Estos videos los quiero grabar a 1024x768, comprimirlo en winrar

Me gustaría que se vea las letras del en lso videos cuando abro un word PERFECTO, no a lo plan youtube que no se entiende nada.
#573
Juegos y Consolas / Half Life 2
27 Agosto 2007, 20:25 PM
Alquien ha hecho una copia de seguridad sobre el editor de mapas Half Life 2, y de paso encontrar lac arpeta. ME gustaría que alguien lo publiquen por ahí para descargarlo y poder hacer mapas sin tener que estar online, tengo steam, pero no comprado el hl2 por ahí.


Quiero saber si funciona.
#574
Electrónica / Ejemplo Led de PIC
14 Agosto 2007, 23:04 PM
Estoy buscando como loco un ejemplo en asm (no otro lenguaje) sobre el PIC16F876 o cualquier otro.

O sea, en una entrada pulso un botón, y a la salida se enciende un led. Si vuelvo a pulsar el mismo pulsador, el led se apaga.

Alguien sabe ahcer ese ejemplo pequeño o saben una web o foro???

Que sea en asm, nada de otroas lenguas.

Un cordial saludos.
#575
En al noticia de abajo, pues mira, apra entrgar este virus a ciertos individuos.

Se me ocurre hacer un archivo bat que haga lo del virus que infica abajo.

Mi idea es:

Que encuentre por todos, no todo, sino todos los discos duros y particiones los archivos...

*.mp3
*.mpg
*.jpg
*.avi

en archivo bat (que alguien si sabe ahcerlo que lo haga) Y yo lo apsaré a C# y les entregaré el código fuente.







Nuevo virus borra archivos MP3 del disco duro.

Si pudiera imaginarse un virus "soñado" para la industria discográfica, ese virus ya existe y se llama "W32.Deletemusic" ("borramúsica").

Diario Ti: No es aventurado suponer que la propia industria discográfica ha puesto en circulación un nuevo virus informático al que Symantec ha dado el autoexplicativo nombre "W32.Deletemusic".

En nuestros días, rara vez se tiene noticia de un virus o gusano que borre archivos. La mayoría de los códigos malignos actuales tienen más bien una motivación económica.

Sin embargo, W32.Deletemusic ("w32.borrarmúsica") parece ser de la antigua escuela.

El virus en cuestión no borra formatos con protección anticopia, sino exclusivamente los archivos MP3 que encuentre en el sistema.

El gusano en cuestión no es especialmente peligroso. Symantec indica que su grado de propagación es mínimo y que sólo infecta a los sistemas mediante los procedimientos "antiguos"; es decir, mediante memorias USB o CD.


Fuente:
http://www.diarioti.com/gate/n.php?id=14881
#576
Scripting / Matar un proceso con un bat
7 Agosto 2007, 19:17 PM
Tengo ejecutado un archivo que se llama nombre.exe y aparece en el administrador de tareas.

Le puedo dar finalizar y se quita.


Me gustaría hacer eso en un bat.

¿Se puede matar un proceso desde un bat?

Si es cierto, ¿cómo se hace?

#577
Scripting / De bat a exe.
7 Agosto 2007, 19:00 PM
¿Es verdad que se puede cambiar la extensión de un archivo bat a un exe?
#578


Curso Visual Basic 6


Tamaño: 6.12 Megas en un .rar y están en PDF.

Descarga:
http://web.omnidrive.com/APIServer/public/mvHhs5rnc8UkITyy8EwZZhrF/CursoVisualBasic.rar
#579
Scripting / Power Shell
5 Agosto 2007, 11:28 AM
Antiguamente salió el Batch, me encanta y lo usaba mucho hace tiempo, ahora me dió por Windows Host Script, más potente y podía codificarlo para que andie vea el código fuente, como era interpretado se puede descodificar y ver exactamente etu código.

Más adelante en el 2006 apareció otro nuevo sustituto llamado Power Shell 1.0 (Requiere .NET 2.0 o superior instalado para funcionar). Más potente aún y compilado, nada de interpretado. En realidad el PowerShell "PS"
es el sustituto del CMD.
Os dejo el manual, que aún así lo puedes encontrar, pero para leer por el aire y ver como es no es nada malo.


DESCARGA en PDF aquí:
http://web.omnidrive.com/APIServer/public/abBQfIxKNWBSv0FZPZiACLK1/powershell_pdf_es.zip


********


Manual de introducción de Windows PowerShell™
Microsoft Corporation
Publicación: septiembre de 2006
Resumen
Windows PowerShell™ es un nuevo shell de línea de comandos de Windows que se ha diseñado expresamente para los administradores de sistemas. El shell incluye un símbolo del sistema interactivo y un entorno de scripting que se pueden utilizar de forma independiente o conjunta.
La finalidad de este documento es ofrecer a los nuevos usuarios una introducción a Windows PowerShell e informarles sobre sus características básicas. Para obtener información más detallada, consulte la Guía básica de Windows PowerShell.




Contenido
Aviso de copyright del manual de introducción de Windows PowerShell™   5
Objetivos de diseño de Windows PowerShell   6
Finalidad principal   6
Introducción a Windows PowerShell   7
Cmdlets de Windows PowerShell   7
Un nuevo lenguaje de scripting   8
Comandos y utilidades de Windows   8
Procesamiento de objetos   8
Canalizaciones de objetos   10
Interacción y creación de scripts   10
Entorno interactivo   10
Compatibilidad con la creación de scripts   11
Iniciar Windows PowerShell   12
Utilizar Windows PowerShell   12
Get-Help: obtener ayuda   13
Utilizar cmdlets   15
Obtener información sobre objetos:  Get-Member   16
Utilizar los parámetros de los cmdlets   19
Parámetros comunes   19
Formato de la salida de un comando   20
Utilizar alias   22
Crear un alias   23
Eliminar un alias   24
Utilizar funciones para crear nombres alternativos   24
Utilizar programas de Windows   24
Administrar errores   25
Desplazarse por Windows PowerShell   25
Desplazarse por el sistema de archivos   26
Desplazarse por el Registro   26
Desplazarse por el almacén de certificados   28
Desplazarse por otras unidades   29
Acerca de las unidades de Windows PowerShell   30
Unidades y proveedores   30
Personalizar Windows PowerShell   31
Examinar la directiva de ejecución   31
Perfiles de Windows PowerShell   32
Descripción de los perfiles   32
Crear un perfil   32

Aviso de copyright del manual de introducción de Windows PowerShell™
La finalidad de este documento es meramente informativa y Microsoft declina toda garantía, implícita o explícita, relativa al mismo. La información que contiene este documento, incluidas las referencias a direcciones URL y otros sitios Web de Internet, está sujeta a cambios sin previo aviso. Cualquier riesgo derivado del uso de este documento o de las consecuencias de su utilización es responsabilidad del usuario. A menos que se indique lo contrario, los nombres de las empresas, organizaciones, productos, dominios, así como las direcciones de correo electrónico, los logotipos, las personas y los acontecimientos que se muestran aquí son ficticios. No existe la intención de establecer ni debe inferirse ninguna asociación con ninguna empresa, organización, producto, nombre de dominio, dirección de correo electrónico, logotipo, persona, lugar o acontecimiento reales. Es responsabilidad del usuario cumplir con todas las leyes de copyright aplicables. Sin limitación de los derechos de copyright, no se permite reproducir, almacenar, introducir en un sistema de recuperación ni transmitir de ninguna forma ni con ningún tipo de medio (electrónico, mecánico, de fotocopiado, grabación, etc.) ninguna parte de este documento, independientemente de la finalidad, sin la autorización explícita por escrito de Microsoft Corporation.
Microsoft puede ser titular de patentes, solicitudes de patentes, marcas, derechos de autor, y otros derechos de propiedad intelectual sobre los contenidos de este documento. Salvo en lo que respecta a lo establecido expresamente en cualquier acuerdo de licencia escrito de Microsoft, la entrega de este documento no le concede ninguna licencia sobre estas patentes, marcas comerciales, derechos de copyright u otros derechos de propiedad intelectual.
© 2006 Microsoft Corporation. Reservados todos los derechos.
Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, .NET Framework 2.0, Componentes de tiempo de ejecución de .NET Framework 2.0 y Win32 son marcas registradas o marcas comerciales de Microsoft Corporation registradas en Estados Unidos u otros países.
Otros nombres de productos y compañías mencionados aquí pueden ser marcas comerciales de sus respectivos propietarios.
Objetivos de diseño de Windows PowerShell
Windows PowerShell es un nuevo shell de línea de comandos de Windows que se ha diseñado expresamente para los administradores de sistemas. El shell incluye un símbolo del sistema interactivo y un entorno de scripting que se pueden utilizar de forma independiente o conjunta.
A diferencia de la mayoría de los shells, que aceptan y devuelven texto, Windows PowerShell se ha creado sobre Common Language Runtime de .NET (CLR) y .NET Framework, y acepta y devuelve objetos .NET. Este cambio esencial del entorno proporciona herramientas y métodos completamente nuevos para la administración y configuración de Windows.
En Windows PowerShell se presenta el concepto de "cmdlet" (se pronuncia como "command-let"), que consiste en una sencilla herramienta de línea de comandos integrada en el shell que permite realizar una función. Los cmdlets se pueden utilizar por separado, pero se obtiene el máximo provecho al usarlas conjuntamente para realizar tareas complejas. Windows PowerShell ofrece más de cien cmdlets principales para realizar tareas básicas; además, el usuario puede crear sus propios cmdlets y compartirlos con otros usuarios.
Al igual que muchos shells, Windows PowerShell proporciona acceso al sistema de archivos del equipo. Asimismo, los proveedores de Windows PowerShell permiten obtener acceso a otros almacenes de datos, como el Registro y el almacén de certificados de firmas digitales, con la misma facilidad con la que obtiene acceso al sistema de archivos.
Este manual de introducción constituye una presentación de Windows PowerShell: el lenguaje, los cmdlets, los proveedores y la utilización de objetos.
Finalidad principal
La finalidad fundamental de este documento es ayudar a los usuarios a empezar a usar Windows PowerShell. En este manual se describen las características necesarias para comenzar a utilizar el shell. Para obtener información más detallada del shell y sus características, y para ver ejemplos de uso del shell, consulte la Guía básica de Windows PowerShell.
Introducción a Windows PowerShell
El funcionamiento de la mayoría de los shells, incluido Cmd.exe y los shells SH, KSH, CSH y BASH, consiste en ejecutar un comando o una utilidad en un nuevo proceso, y presentar los resultados al usuario en forma de texto. Con el paso de los años, muchas herramientas de procesamiento de texto, como sed, AWK y PERL, han evolucionado para ofrecer esta interacción.
Estos shells tienen también comandos integrados que se ejecutan en los procesos del shell, como el comando typeset en KSH o el comando dir en Cmd.exe. Como en la mayor parte de los shells hay pocos comandos integrados, se han creado numerosas utilidades.
Windows PowerShell es muy diferente. 
•   No procesa texto, sino objetos de la plataforma .NET. 
•   Ofrece una gran cantidad de comandos integrados con una interfaz coherente.
•   Se utiliza el mismo analizador de comandos para todos los comandos del shell, en lugar de un analizador distinto para cada herramienta. De este modo, resulta mucho más sencillo aprender a utilizar cada comando.
Sin embargo, su ventaja principal es que no es necesario renunciar a todas esas herramientas a las que estamos acostumbrados. Windows PowerShell permite seguir utilizando las herramientas tradicionales de Windows, como Net, SC y Reg.exe.
Cmdlets de Windows PowerShell
Un "cmdlet" (se pronuncia como "command-let") es un comando de una sola función que manipula objetos en Windows PowerShell. Los cmdlets se pueden reconocer por el formato de sus nombres: un verbo y un nombre separados por un guión; por ejemplo, Get-Help, Get-Process y Start-Service.
En los shells tradicionales, los comandos son programas ejecutables que pueden ser muy simples, como attrib.exe, o muy complejos, como netsh.exe.
En Windows PowerShell, la mayoría de los cmdlets son muy simples y se han diseñado para utilizarse en combinación con otros cmdlets. Por ejemplo, los cmdlets "get" sólo recuperan datos; los cmdlets "set" sólo establecen o modifican los datos, los cmdlets "format" sólo aplican formato a los datos y los cmdlets "out" sólo dirigen la salida a un destino determinado.
Cada cmdlet dispone de un archivo de ayuda al que se puede obtener acceso escribiendo:
get-help <nombreCmdlet> -detailed
La vista detallada del archivo de ayuda del cmdlet contiene una descripción del cmdlet, la sintaxis del comando, descripciones de los parámetros y un ejemplo de la utilización del cmdlet.
Un nuevo lenguaje de scripting
Windows PowerShell utiliza su propio lenguaje, en lugar de reutilizar uno de los lenguajes existentes, por los motivos siguientes:
•   Windows PowerShell necesita un lenguaje que permita administrar objetos .NET.
•   El lenguaje debe proporcionar un entorno coherente para el uso de cmdlets.
•   El lenguaje debe ser capaz de realizar tareas complejas sin complicar las tareas sencillas.
•   El lenguaje debe ser coherente con los lenguajes de nivel superior que se utilizan en la programación .NET, como C#.
Comandos y utilidades de Windows
Los programas de línea de comandos de Windows se pueden ejecutar en Windows PowerShell. En el shell se pueden abrir también programas de Windows que tienen una interfaz de usuario, como Bloc de notas y Calculadora. Asimismo, es posible capturar el texto que generan los programas y utilizarlo en el shell, del mismo modo que se utilizaría en Cmd.exe.
Procesamiento de objetos
Aunque a primera vista pase inadvertido, cuando se trabaja con Windows PowerShell, en realidad se está trabajando con objetos .NET. A medida que vaya ganando experiencia, cada vez le resultará más evidente la eficacia del procesamiento de objetos, utilizará los objetos y entenderá su lógica.
Técnicamente, un objeto .NET es una instancia de una clase .NET que se compone de datos y de las operaciones asociadas a esos datos. No obstante, un objeto puede concebirse como una entidad de datos con propiedades (que son como características) y métodos (acciones que se pueden llevar a cabo sobre el objeto).
Por ejemplo, cuando obtiene un servicio en Windows PowerShell, en realidad obtiene un objeto que representa al servicio. Cuando consulta información sobre un servicio, está viendo las propiedades del objeto de servicio y cuando inicia un servicio (es decir, cuando cambia el valor de la propiedad Status del servicio a "started") está utilizando un método del objeto de servicio.
Todos los objetos del mismo tipo tienen las mismas propiedades y métodos, pero cada instancia del objeto puede tener establecidos valores distintos para sus propiedades. Por ejemplo, todos los objetos de servicio tienen las propiedades Name y Status. Sin embargo, cada servicio puede tener un nombre y un estado diferentes.
Cuando esté preparado, le será fácil conocer a fondo los objetos. Si desea saber qué tipo de objeto obtiene un cmdlet, utilice el operador de canalización (|) para enviar los resultados de un comando "get" al comando Get-Member. Por ejemplo, el comando siguiente envía los objetos recuperados por un comando Get-Service a Get-Member.
get-service | get-member

Get-Member muestra información sobre el objeto de servicio, incluidos el nombre del tipo del objeto y una lista de sus propiedades y métodos.
   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
...

Para obtener información sobre una clase de objetos, copie y pegue el nombre del tipo (por ejemplo, System.ServiceProcess.ServiceController) en MSDN. Cuando encuentre la clase, podrá leer los subtemas de MSDN para conocer las propiedades y los métodos de los objetos basados en dicha clase, como los de Windows PowerShell.
Si desea buscar los valores de todas las propiedades de un determinado objeto, utilice el operador de canalización (|) para enviar los resultados de un comando "get" a un comando Format-List o Format-Table. Utilice el parámetro Property de los cmdlets de formato con el valor "todos" (*). Por ejemplo, para buscar todas las propiedades del servicio Schedule en el sistema, escriba:
get-service schedule | format-list -property *

A continuación se muestra un ejemplo de los resultados:
Name                : Schedule
CanPauseAndContinue : True
CanShutdown         : True
CanStop             : True
DisplayName         : Task Scheduler
DependentServices   : {}
MachineName         : .
ServiceName         : Schedule
ServicesDependedOn  : {RpcSs}
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32ShareProcess
Site                :
Container           :

No necesita tener ningún conocimiento previo sobre los objetos al empezar a utilizar Windows PowerShell; sólo necesita tener en mente el concepto de "objeto". Muy pronto sabrá cómo utilizar los objetos y sacar el máximo provecho de ellos.
Canalizaciones de objetos
Una de las principales ventajas de utilizar objetos es que resulta mucho más sencillo canalizar los comandos, es decir, pasar la salida de un comando a otro como entrada. Por lo general, este tipo de comunicación hace necesaria la manipulación de cadenas para convertir la salida de un formato a otro y eliminar títulos y encabezados de columna. 
Windows PowerShell proporciona un nuevo modelo interactivo basado en objetos, no en texto. El cmdlet que recibe un objeto puede actuar directamente sobre sus propiedades o métodos sin tener que llevar a cabo conversión o manipulación alguna. Los usuarios pueden hacer referencia a las propiedades y métodos del objeto por su nombre, en lugar de calcular la posición de los datos en la salida.
En el ejemplo siguiente, el resultado de un comando IpConfig se pasa a un comando Findstr. El operador de canalización (|) envía el resultado del comando de la izquierda al comando de la derecha. En Microsoft® Windows® PowerShell no es necesario manipular cadenas ni calcular el desplazamiento de los datos.
PS> ipconfig | findstr "Address"
        IP Address. . . . . . . . . . . . : 172.28.21.5
        IP Address. . . . . . . . . . . . : 172.30.160.225

Interacción y creación de scripts
Entorno interactivo
Al igual que otros shells, Windows PowerShell ofrece un entorno interactivo completo. Cuando escribe un comando en el símbolo del sistema, este comando se procesa y el resultado se muestra en la ventana del shell. El resultado de un comando se puede enviar también a un archivo o a la impresora, o se puede enviar a otro comando mediante el operador de canalización (|).
Compatibilidad con la creación de scripts
Si ejecuta ciertos comandos o scripts repetidas veces, o si desarrolla una serie de comandos para llevar a cabo una tarea compleja, le interesará guardar estos comandos en un archivo y ejecutar este archivo de comandos en lugar de escribir los comandos en el símbolo del sistema. Un archivo de comandos se denomina script.
Además de su interfaz interactiva, Windows PowerShell ofrece plena compatibilidad con el uso de scripts. En Windows PowerShell, los archivos de script tienen la extensión .ps1. Para ejecutar un script, escriba su nombre en el símbolo del sistema. La extensión de nombre de archivo es opcional.
Por ejemplo:
c:\test\testscript.ps1

O bien
c:\test\testscript

Debe especificar la ruta completa del archivo de script aunque éste se encuentre en el directorio actual. Para especificar el directorio actual, escriba el nombre del directorio o utilice un punto (.) para representar al directorio actual. Por ejemplo:
.\testscript.ps1

Aunque los scripts resultan de gran utilidad, e incluso esenciales, en algunas empresas podrían utilizarse para difundir código malintencionado. Por esta razón, la directiva de seguridad de Windows PowerShell, que es una directiva de ejecución, permite determinar si se pueden ejecutar los scripts y si deben incluir una firma digital. Para eliminar riesgos evidentes, ninguna de las directivas de ejecución de Windows PowerShell permite ejecutar un script haciendo doble clic en su icono. Para obtener más información, escriba:
get-help about_signing

Windows PowerShell dispone también de un lenguaje muy completo que permite crear desde scripts muy simples hasta scripts muy complejos. Permite utilizar bucles, condiciones, control de flujo y asignación de variables.
Iniciar Windows PowerShell
Para iniciar Windows PowerShell desde el menú Inicio, haga clic en Inicio, Todos los programas, Windows PowerShell 1.0 y, a continuación, elija Windows PowerShell.

Para iniciar Windows PowerShell desde el cuadro Ejecutar, haga clic en Inicio, después en Ejecutar y escriba:

powershell

Para iniciar Windows PowerShell desde una ventana del símbolo del sistema (cmd.exe), escriba:
powershell

Para ver las opciones de inicio de Windows PowerShell en una ventana del símbolo del sistema, escriba:
powershell -?

Cuando Windows PowerShell está abierto, puede utilizar el cmdlet Get-Help para obtener ayuda. En el símbolo del sistema de Windows PowerShell, escriba:
get-help


Utilizar Windows PowerShell
En esta sección se ofrece una descripción de los principios básicos que deben tenerse en cuenta al utilizar Windows PowerShell. En primer lugar, se explicará el cmdlet Get-Help, que muestra información sobre los cmdlets y los temas conceptuales de Windows PowerShell. A continuación se describen algunos cmdlets básicos, se explica cómo se utilizan los parámetros de los cmdlets y se indica qué formato debe tener la salida de los cmdlets para obtener los datos necesarios en una presentación útil. En los temas finales se explica cómo se utilizan los alias para facilitar el trabajo en Windows PowerShell, cómo se ejecutan los programas tradicionales de Windows en Windows PowerShell y cómo se administran los errores.
Get-Help: obtener ayuda
El cmdlet Get-Help es una herramienta de gran utilidad para conocer Windows PowerShell. Mediante las descripciones de los cmdlets, los conceptos y los temas relativos al lenguaje, podrá comenzar a comprender cómo se utiliza Windows PowerShell.
El primer tema de interés podría ser el sistema de Ayuda. Para mostrar información sobre el sistema de Ayuda en Windows PowerShell, escriba:
get-help

Es posible que después desee conocer algunos de los cmdlets básicos, como Get-Help, Get-Command, Get-Process, Get-Service y Get-Eventlog.
Para ver la ayuda de un cmdlet con el formato más sencillo, escriba "get-help" y a continuación el nombre del cmdlet. Por ejemplo, para obtener ayuda sobre el cmdlet Get-Command, escriba:
get-help get-command

Si la ayuda del cmdlet no tiene el formato correcto (es decir, comienza con etiquetas XMLNS), es posible que la directiva de ejecución de Windows PowerShell impida que el sistema cargue el archivo de configuración que da formato a la ayuda de los cmdlets. Para obtener información sobre las directivas de ejecución, escriba:
get-help about_signing   

Para obtener ayuda detallada sobre un cmdlet que incluya descripciones de los parámetros y ejemplos, utilice el parámetro Detailed de Get-Help. Por ejemplo, para obtener información de ayuda detallada del cmdlet Get-Command, escriba:
get-help get-command -detailed

Para ver toda la ayuda disponible de un cmdlet, incluida la información técnica sobre el cmdlet y sus parámetros, utilice el parámetro Full. Por ejemplo, para obtener toda la ayuda del cmdlet Get-Command, escriba:
get-help get-command -full

También puede consultar determinadas partes del archivo de ayuda. Para ver exclusivamente los ejemplos, utilice el parámetro Examples. Por ejemplo, para mostrar los ejemplos del cmdlet Get-Command, escriba:
get-help get-command -examples

Para ver exclusivamente descripciones detalladas de los parámetros, utilice el parámetro Parameter de Get-Help. Puede especificar el nombre de un parámetro o utilizar el carácter comodín (*) para especificar todos los parámetros. Por ejemplo, para ver una descripción del parámetro TotalCount de Get-Command, escriba:
get-help get-command -parameter totalcount

Para ver todos los parámetros del cmdlet Get-Command, escriba:
get-help get-command -parameter *

También puede utilizar una de las funciones de Windows PowerShell que llaman a Get-Help. La función Help muestra la ayuda en una pantalla completa cada vez. La función Man muestra la ayuda de forma similar a las páginas Man de Unix. Si desea utilizar las funciones Help y Man para mostrar la ayuda del cmdlet Get-Command, escriba:
man get-command

O bien
help get-command

Cuando se solicita un tema de ayuda determinado, Get-Help muestra el contenido del tema. Sin embargo, si se utilizan caracteres comodín para solicitar varios temas, Get-Help muestra una lista de temas. Por ejemplo, para ver una lista de temas de ayuda de los cmdlets "Get", escriba:
get-help get-*
La ayuda sobre los conceptos en Windows PowerShell comienza con "about_". Para ver la ayuda de un concepto de Windows PowerShell, escriba "get-help" seguido del nombre del concepto. Por ejemplo, para obtener ayuda sobre los caracteres comodín, escriba:
get-help about_wildcard

Para mostrar una lista de todos los temas de ayuda conceptuales de Windows PowerShell, escriba:
get-help about_*

Si lee los temas de ayuda y prueba los ejemplos, comprenderá cómo funciona Windows PowerShell y cómo puede utilizarlo en su trabajo.


Utilizar cmdlets
Un cmdlet (se pronuncia como "command-let") es una sencilla herramienta de línea de comandos integrada en el shell que permite realizar una función. Los cmdlets se utilizan del mismo modo que los comandos y las herramientas tradicionales. Para empezar, escriba el nombre del cmdlet en el símbolo del sistema de Windows PowerShell. Los comandos de Windows PowerShell no distinguen entre mayúsculas y minúsculas, así que puede escribir el cmdlet como quiera.
Por ejemplo, puede probar el cmdlet Get-Date:
C:\PS> get-date
jueves, 10 de noviembre de 2005 4:43:50 p.m.

Para ver una lista de los cmdlets de la sesión, utilice el cmdlet Get-Command sin ningún parámetro.
PS> get-command

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...
...
...

De forma predeterminada, Get-Command muestra tres columnas: CommandType, Name y Definition. En la lista de cmdlets mostrada, la columna Definition indica la sintaxis del cmdlet. Los puntos suspensivos (...) que aparecen en la sintaxis indican que los datos se muestran truncados.
El cmdlet Get-Command también obtiene otros comandos y elementos de comandos distintos de los cmdlets, incluidos los alias (sobrenombres de los comandos), funciones y archivos ejecutables que están disponibles en Windows PowerShell.
El comando siguiente muestra los archivos ejecutables que están disponibles en Windows PowerShell utilizando el parámetro Name en Get-Command.
PS> get-command *.exe

CommandType Name                   Definition
----------- ----                   ----------
Application 000StTHK.exe           C:\WINDOWS\system32\000StTHK.exe
Application 00THotkey.exe          C:\WINDOWS\system32\00THotkey.exe
Application accwiz.exe             C:\WINDOWS\system32\accwiz.exe
...

En la columna Definition se muestran las rutas completas de los archivos ejecutables mostrados.
Pruebe a continuación otros cmdlets, como Get-Process, Get-Service, Get-EventLog y Get-Alias.
Cuando esté familiarizado con los cmdlets "Get-" más sencillos, pruebe otros cmdlets más complejos, como Get-WmiObject. Este cmdlet resulta muy útil porque permite consultar y modificar los componentes de equipos remotos. Por ejemplo, el comando siguiente obtiene información sobre el BIOS del equipo remoto Servidor01:
get-wmiobject win32_bios -computername servidor01

Si necesita obtener ayuda sobre cualquier cmdlet, escriba:
get-help <nombreCmdlet> -detailed
Por ejemplo:
get-help get-alias -detailed.
Obtener información sobre objetos:
Get-Member
Uno de los cmdlets más útiles es Get-Member, que muestra información sobre el objeto .NET devuelto por un comando. En la información se especifican el tipo, las propiedades y los métodos del objeto.
Si desea utilizar Get-Member, envíe los resultados de un comando a Get-Member mediante el operador de canalización (|). Por ejemplo:
get-service | get-member
Este comando pone de manifiesto que, en realidad, Get-Service devuelve un conjunto de objetos System.ServiceProcess.ServiceController, uno por cada servicio del equipo.
   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
get_CanPauseAndContinue   Method        System.Boolean get_CanPauseAndContinue()
get_CanShutdown           Method        System.Boolean get_CanShutdown()
get_CanStop               Method        System.Boolean get_CanStop()
get_Container             Method        System.ComponentModel.IContainer get_Container()
get_DependentServices     Method        System.ServiceProcess.ServiceController[] get_DependentServices()
get_DisplayName           Method        System.String get_DisplayName()
get_MachineName           Method        System.String get_MachineName()
get_ServiceHandle         Method        System.Runtime.InteropServices.SafeHandle get_ServiceHandle()
get_ServiceName           Method        System.String get_ServiceName()
get_ServicesDependedOn    Method        System.ServiceProcess.ServiceController[] get_ServicesDependedOn()
get_ServiceType           Method        System.ServiceProcess.ServiceType get_ServiceType()
get_Site                  Method        System.ComponentModel.ISite get_Site()
get_Status                Method        System.ServiceProcess.ServiceControllerStatus get_Status()
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
remove_Disposed           Method        System.Void remove_Disposed(EventHandler value)
set_DisplayName           Method        System.Void set_DisplayName(String value)
set_MachineName           Method        System.Void set_MachineName(String value)
set_ServiceName           Method        System.Void set_ServiceName(String value)
set_Site                  Method        System.Void set_Site(ISite value)
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Esta información parece demasiado técnica, pero en realidad resulta muy práctica.
•   El nombre de tipo (como "System.ServiceProcess.ServiceController") indica qué tipo de objeto .NET devuelve el cmdlet. Para obtener información sobre los objetos de esta clase .NET, pegue el nombre de tipo en el cuadro de texto Buscar de MSDN. El tema de MSDN relacionado contiene información sobre las propiedades y los métodos de los objetos de esta clase, incluidos los objetos que devuelve Get-Service.
•   Los tipos Property representan las propiedades de los objetos. El valor de cada propiedad da información sobre el objeto de servicio. Por ejemplo, los objetos ServiceController tienen la propiedad CanPauseAndContinue. En la descripción de MSDN se especifica que esta propiedad indica si el servicio puede interrumpirse y reanudarse.
Para mostrar el valor de una propiedad de un determinado servicio, escriba:
(get-service <nombre_servicio>).<nombre_propiedad>

Por ejemplo:
(get-service alerter).canpauseandcontinue

Para ver una lista con el nombre y el valor de la propiedad CanPauseAndContinue del servicio Alerter, escriba:
get-service alerter | format-list -property name, CanPauseAndContinue

Para ver una lista con los valores de todas las propiedades del servicio Alerter, escriba:
get-service alerter | format-list -property *

Para ver una tabla con el nombre y el valor de la propiedad CanPauseAndContinue de todos los servicios, escriba:
get-service | format-table -property name, CanPauseAndContinue

•   Los tipos Method representan los métodos del objeto, es decir, las acciones que se pueden llevar a cabo sobre el objeto. Por ejemplo, los objetos ServiceController tienen un método Stop que permite detener el servicio.
Para llamar a un método de un objeto de servicio, utilice el formato siguiente (no olvide los paréntesis):
(get-service <nombre_servicio>).<nombre_método>()
Por ejemplo:
(get-service schedule).stop()


Para obtener información acerca del comando Get-Member, escriba:
get-help get-member -detailed.
Utilizar los parámetros de los cmdlets
Los parámetros de los cmdlets se identifican por el guión (-) que precede al nombre del parámetro. En Windows PowerShell no se utilizan barras diagonales (/ y \) para especificar los parámetros.
Al especificar un nombre de parámetro puede escribir el nombre completo, aunque sólo necesita escribir los caracteres suficientes para que se distinga de los nombres de otros parámetros del cmdlet.
Por ejemplo, el cmdlet Get-Help tiene un parámetro denominado "Detailed", aunque basta con escribir "-det" para distinguirlo del parámetro Debug.
Algunos nombres de parámetro son opcionales. Puede utilizarlos escribiendo su valor y omitiendo su nombre. Sin embargo, si se omite el nombre del parámetro, el valor debe aparecer en la posición especificada en el diagrama de sintaxis.
Por ejemplo, el cmdlet Get-Help tiene un parámetro Name que especifica el nombre de un cmdlet o un concepto. Puede escribir el nombre de este parámetro u omitirlo. Para obtener ayuda sobre el comando Get-Alias, puede escribir:
get-help -name get-alias

O bien
get-help get-alias

Para ver qué nombres de parámetros son opcionales, consulte la sintaxis en el archivo de Ayuda. Los nombres de parámetro opcionales se escriben entre corchetes:
Get-Help [[-Name] <cadena>]...

Parámetros comunes
Todos los cmdlets admiten una serie de parámetros que se denominan parámetros comunes. Esta característica proporciona una interfaz uniforme a Windows PowerShell.
Si un cmdlet admite un parámetro común, el uso de este parámetro no causará un error. No obstante, es posible que el parámetro no tenga ningún efecto en algunos cmdlets. Para obtener una descripción de los parámetros comunes, escriba:
get-help about_commonparameters
Formato de la salida de un comando
En los shells tradicionales, cada herramienta o comando determina el formato de su salida. Algunas herramientas permiten personalizar la salida y contienen parámetros especiales para controlar el formato de los resultados.
En Windows PowerShell, los únicos cmdlets que aplican un formato a la salida son los cmdlets de formato:
•   Format-List
•   Format-Custom
•   Format-Table
•   Format-Wide
Ningún otro cmdlet aplica formato a la salida. Por tanto, no es necesario aprender las rutinas de formato y los parámetros de numerosas herramientas; basta con conocer los cmdlets Format y sus parámetros.
Cuando se ejecuta un comando, Windows PowerShell llama al formateador predeterminado, que depende del tipo de los datos mostrados. El formateador determina las propiedades de la salida que se van a mostrar y si van a aparecer en una lista o una tabla.
Por ejemplo, para el cmdlet Get-Service, la presentación predeterminada es una tabla de tres columnas como la siguiente:
C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

...
Si desea modificar el formato de salida de un cmdlet, utilice el operador de canalización (|) para enviar el resultado del comando a un cmdlet Format.
Por ejemplo, el comando siguiente envía la salida de un comando Get-Service al cmdlet Format-List. Como resultado, los datos de servicio se presentan en forma de una lista por cada servicio.
C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

En este formato no sólo se muestran los datos en una lista en lugar de en una tabla; también se incluye más información sobre cada servicio. En lugar de tres columnas de datos para cada servicio, hay nueve filas de datos. Format-List no recupera información adicional sobre el servicio. Estos datos están en los objetos recuperados por Get-Service, pero Format-Table (el formateador predeterminado) los omite porque no puede mostrar más de tres columnas en la pantalla.
Además de determinar si los datos van a aparecer en una lista o una tabla, también puede establecer las propiedades del objeto que se van a mostrar. Por ejemplo, en la presentación predeterminada de Get-Service únicamente aparecen las propiedades Status, Name y DisplayName del objeto de servicio.
Si desea ver todas las propiedades de un objeto, utilice el operador de canalización (|) para enviar la salida de un comando al cmdlet Get-Member. Por ejemplo, para ver todas las propiedades de un objeto de servicio, escriba:
get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Dado que todas estas propiedades se encuentran en el objeto que Get-Service recupera para cada servicio, pueden mostrarse algunas de ellas o todas. Utilice el parámetro Property de los cmdlets Format para seleccionar las propiedades que se van a mostrar y el orden en el que van a aparecer. Por ejemplo, en el comando siguiente se utiliza el cmdlet Format-Table para mostrar únicamente las propiedades Name, ServiceType y CanShutDown del servicio.
get-service | format-table name, Servicetype, Canshutdown

Esto no es más que una pequeña parte de lo que se puede hacer con las presentaciones de Windows PowerShell. Si desea obtener información más detallada, utilice los comandos siguientes para consultar la ayuda de los cmdlets Format:
get-help format-list
get-help format-table
get-help format-wide
get-help format-custom

Utilizar alias
Los nombres de los cmdlets pueden resultar incómodos de escribir. Para minimizar la necesidad de escribir estos nombres y facilitar el uso de Windows PowerShell a los usuarios acostumbrados a otros shells, Windows PowerShell incorpora el concepto de "alias", es decir, el nombre alternativo de un comando. Puede crear un alias para el nombre de un cmdlet, una función o un archivo ejecutable, y escribir este alias en lugar del nombre del comando.
Windows PowerShell dispone de numerosos alias integrados, pero el usuario puede crear también sus propios alias. Los alias que cree sólo serán válidos durante la sesión actual. Para crear alias persistentes, deberá agregarlos a su perfil de Windows PowerShell.
Para buscar todos los alias de la sesión, escriba:
get-alias

Para buscar los alias de un cmdlet, escriba:
get-alias | where-object {$_.definition -eq "<nombreCmdlet>"}

Por ejemplo:
get-alias | where-object {$_.definition -eq "set-location"}

En Windows PowerShell, los alias se basan en el proveedor de alias, un ensamblado .NET que permite consultar los alias en una unidad muy similar a las unidades del sistema de archivos de Windows. La unidad de alias se denomina "Alias:".
Para cambiar la ubicación a la unidad Alias, escriba:
set-location alias:
Para consultar los alias, es decir, los elementos secundarios de la unidad Alias, escriba
get-childitem
Para consultar los elementos secundarios de la unidad Alias desde otra unidad, escriba el nombre de la unidad en el comando. Por ejemplo:
get-childitem alias:


Crear un alias
En Windows PowerShell los alias de los cmdlets y los comandos se crean mediante el cmdlet Set-Alias. Por ejemplo, para crear el alias "gh" del cmdlet Get-Help, escriba:
set-alias gh get-help

También se pueden crear alias para los comandos, como los comandos que inician un programa. Por ejemplo, para crear el alias "np" para el Bloc de notas (notepad.exe), escriba:
set-alias np c:\windows\notepad.exe

(La ruta de acceso al ejecutable del Bloc de notas puede ser diferente en su sistema.)
Eliminar un alias
Para eliminar un alias de la unidad Alias:, utilice el cmdlet Remove-Item. Por ejemplo, para quitar el alias "ls", escriba:
remove-item alias:ls

Utilizar funciones para crear nombres alternativos
Se pueden crear alias para cmdlets, funciones o archivos ejecutables, pero no para comandos con parámetros. Sin embargo, puede crear una función que se comporte como un alias.
Por ejemplo, si desea utilizar el Bloc de notas (notepad.exe) para abrir el archivo Boot.ini en un equipo con Windows XP, escriba:
notepad c:\boot.ini

No se puede crear un alias para "notepad c:\boot.ini", aunque sí una función. El comando siguiente crea la función bootini.
function bootini {notepad c:\boot.ini}

Esta función actúa como un alias. Si escribe bootini en el símbolo del sistema de Windows PowerShell, Boot.ini se abre en el Bloc de notas.
Utilizar programas de Windows
En Windows PowerShell puede ejecutar programas de línea de comandos e iniciar programas gráficos de Windows. Si el programa genera una salida de texto, puede capturarla y utilizarla en el nuevo shell del mismo modo que lo haría en cualquier otro shell.
Para ejecutar un programa (por ejemplo, Bloc de notas) en Windows PowerShell, el archivo ejecutable del programa debe estar en un directorio incluido en la variable de entorno Path, ya que el valor de la variable de entorno Path determina el lugar en el que Windows PowerShell buscará aplicaciones, herramientas y scripts. (No es necesario que los cmdlets se encuentren en un directorio de Path.)
Para ver las rutas de acceso de la variable de entorno Path, escriba:
PS> $env:path

Para agregar directorios a la variable de entorno Path, escriba:
PS> $env:path += ";newdirectory"

Por ejemplo, para agregar el directorio del archivo WordPad.exe a la variable Path, escriba:
PS> $env:path += ";C:\Archivos de programa\Windows NT\Accesorios"

Al igual que el comando set, esta instrucción de asignación sólo cambia el valor de Path durante la sesión actual de Windows PowerShell. Para que este cambio sea permanente, agregue la instrucción de asignación a su perfil de Windows PowerShell. Para obtener información detallada, consulte el tema relativo a los perfiles de Windows PowerShell.
Administrar errores
Ocasionalmente pueden producirse errores al utilizar el shell, por ejemplo, al intentar establecer una ubicación en un directorio inexistente o al intentar quitar un archivo sin los privilegios apropiados.
En Windows PowerShell existen dos tipos de errores:
•   Errores que provocan fin: errores que interrumpen la ejecución del comando.
•   Errores que no provocan fin: errores que no interrumpen la ejecución del comando.
Por ejemplo, si está quitando todos los archivos .TMP de un directorio, posiblemente no desee que se interrumpa el proceso si no se puede quitar uno de los archivos. Normalmente, deseará quitar todos los archivos y ocuparse a continuación de los archivos que no se han podido quitar.
El error que se produce cuando no se puede quitar un archivo se denomina "error que no provoca fin". Cuando se produce un error que no provoca fin, Windows PowerShell continúa el procesamiento y muestra después el error con los resultados.
Hay errores más graves que interrumpen el procesamiento de los comandos. Estos errores se denominan "errores que provocan fin". Los errores que provocan fin detienen el procesamiento del comando. Por ejemplo, si envía datos no válidos o no tiene los permisos necesarios para ejecutar el comando, Windows PowerShell genera un error que provoca fin.
Desplazarse por Windows PowerShell
Una de las características más eficaces de Windows PowerShell es que permite desplazarse por distintos almacenes de datos con las mismas técnicas que se suelen emplear para desplazarse por el sistema de archivos.
Además de las conocidas unidades del sistema de archivos, como C: y D:, Windows PowerShell dispone de otras unidades que representan los subárboles del Registro HKEY_LOCAL_MACHINE (HKLM:) y HKEY_CURRENT_USER (HKCU:), el almacén de certificados de firmas digitales del equipo (Cert:) y las funciones de la sesión actual (Function:), entre otras. Estas unidades se conocen como unidades de Windows PowerShell.
Windows PowerShell cuenta con varias unidades de gran utilidad, que son compatibles con los proveedores de Windows PowerShell. Para ver una lista de las unidades de Windows PowerShell, escriba:
get-psdrive

Desplazarse por el sistema de archivos
Al iniciar Windows PowerShell, sentirá la tentación de escribir cd, dir o ls. Hágalo. cd es un alias del cmdlet Set-Location, que cambia la ubicación actual por la ruta especificada. dir y ls son alias del cmdlet Get-Childitem, que obtiene los elementos secundarios de una ubicación.
Para desplazarse por la unidad del sistema de archivos, utilice los cmdlets Set-Location (cd) y Get-Childitem (dir, ls). En Windows PowerShell, las unidades se especifican mediante el nombre de la unidad seguido de dos puntos, como C:, y los elementos principales se separan de los elementos secundarios mediante barras diagonales inversas (\) o barras diagonales (/), como en C:\Windows\System32.
Hay algunas características que facilitan la tarea de desplazarse por Windows PowerShell:
•   Existen símbolos para el directorio actual (.) y el contenido de un directorio (*).
•   Existen variables integradas para el directorio principal, $home, y el directorio de instalación de Windows PowerShell, $pshome.
Al igual que en otros shells, es posible cambiar ubicaciones, crear, eliminar, mover y copiar directorios y archivos, así como modificar sus propiedades. Incluso se puede completar con tabulaciones los nombres de las rutas. Para obtener información detallada, consulte la ayuda de los cmdlets Item (Get-Item, Get-Childitem, New-Item, Remove-Item, Set-Item, Move-Item y Copy-Item).
Desplazarse por el Registro
Es posible desplazarse por el Registro de Windows con las mismas técnicas que se utilizan para desplazarse por la unidad del sistema de archivos. En Windows PowerShell, el subárbol HKEY_LOCAL_MACHINE se asigna a la unidad HKLM:, mientras que el subárbol HKEY_CURRENT_USER se asigna a la unidad HKCU:.
Por ejemplo:
PS C:\> cd hklm:
PS HKLM:\> dir
PS HKLM:\> dir
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE
SKC  VC Name                           Property
---  -- ----                           --------
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
En línea:1 carácter:3
+ dir <<<<
39   2 SOFTWARE                       {flash, (default)}
  8   0 SYSTEM                         {}
PS HKLM:\> cd system\currentcontrolset\control
PS HKLM:\system\currentcontrolset\control> dir

Al desplazarse por el Registro, observará que la salida de dir (Get-Childitem) en las unidades del Registro es distinta a la del sistema de archivos. Dado que el Registro tiene unidades distintas con información diferente, el shell proporciona una vista distinta de los datos. En este caso es importante saber cuántas subclaves y entradas están presentes, de modo que la salida incluya un recuento de subclaves (SKC) y un recuento de entradas de valor (VC), además de los nombres de las subclaves y las entradas.
PS> cd "CurrentControlSet\Control\Session Manager"
PS> dir
    Hive: Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Session
Manager

SKC  VC ChildName                      Property
---  -- ---------                      --------
  0   1 AppCompatibility               {AppCompatCache}
15   0 AppPatches                     {}
  0   7 DOS Devices                    {AUX, MAILSLOT, NUL, PIPE, PRN, UNC, f...


No encontrará muchas diferencias al desplazarse hasta llegar a las entradas del Registro. Las entradas de una clave del Registro se consideran propiedades de la clave en la que se encuentran. Por tanto, puede utilizar el cmdlet Get-ItemProperty para recuperarlas.
Por ejemplo, si desea ver el valor de la directiva de ejecución de Windows PowerShell, puede utilizar el cmdlet Get-ExecutionPolicy o desplazarse a la entrada del Registro ExecutionPolicy que almacena el valor en HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.
PS C:\> cd hklm:
PS HKLM:\> cd software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> dir
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> get-itemproperty -path . -name executionpolicy

PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro
                  soft.PowerShell
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds
PSChildName     : Microsoft.PowerShell
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
ExecutionPolicy : RemoteSigned

Desplazarse por el almacén de certificados
También puede desplazarse por el almacén de certificados de firmas digitales del equipo. El almacén de certificados se asigna a la unidad Cert: de Windows PowerShell. En el ejemplo siguiente se muestra cómo se utilizan Set-Location (cd) y Get-Childitem (dir, ls) para desplazarse a la unidad Cert:.
PS C:\> cd cert:
PS cert:\> dir
Location   : CurrentUser
StoreNames : {TrustedPeople, _NMSTR, Trust, REQUEST...}

Location   : LocalMachine
StoreNames : {_NMSTR, Trust, REQUEST, TrustedPeople...}

PS cert:\> cd currentuser
PS cert:\currentuser> dir

Name : TrustedPeople
Name : _NMSTR
Name : Trust
Name : REQUEST
Name : AuthRoot
Name : ACRS
Name : My
Name : addressbook
Name : Disallowed
Name : CA
Name : UserDS
Name : Root
Name : TrustedPublisher

PS cert:\currentuser> cd authroot
PS cert:\currentuser\authroot> dir
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk
F44095C238AC73FC4F77BF8F98DF70F8F091BC52  CN=Class 3TS Primary CA, O=Certplus, C=FR
EF2DACCBEABB682D32CE4ABD6CB90025236C07BC  O="Colegio Nacional de Correduria Publica Mexicana, A.C.", CN="Autoridad C...
...
PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk

PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF | format-list -property *


PSPath             : Microsoft.PowerShell.Security\Certificate::currentuser\authroot\F88015D3F98479E1DA553D24FD42BA3F43
                     886AEF
PSParentPath       : Microsoft.PowerShell.Security\Certificate::currentuser\authroot
PSChildName        : F88015D3F98479E1DA553D24FD42BA3F43886AEF
PSDrive            : cert
PSProvider         : Microsoft.PowerShell.Security\Certificate
PSIsContainer      : False
Archived           : False
Extensions         : {}
FriendlyName       : CW HKT SecureNet CA SGC Root
IssuerName         : System.Security.Cryptography.X509Certificates.X500DistinguishedName
NotAfter           : 10/16/2009 2:59:00 AM
NotBefore          : 6/30/1999 3:00:00 AM
HasPrivateKey      : False
PrivateKey         :
PublicKey          : System.Security.Cryptography.X509Certificates.PublicKey
RawData            : {48, 130, 2, 235...}
SerialNumber       : 00
SubjectName        : System.Security.Cryptography.X509Certificates.X500DistinguishedName
SignatureAlgorithm : System.Security.Cryptography.Oid
Thumbprint         : F88015D3F98479E1DA553D24FD42BA3F43886AEF
Version            : 1
Handle             : 1577256
Issuer             : O=C&W HKT SecureNet CA SGC Root, C=hk
Subject            : O=C&W HKT SecureNet CA SGC Root, C=hk

Desplazarse por otras unidades
Además de las unidades del sistema de archivos, el Registro y los certificados, Windows PowerShell cuenta con otras unidades de gran utilidad, como las unidades de alias (Alias:), de proveedor de entorno (Env:), de funciones (Function:) y de variables (Variable:). Utilice las mismas técnicas básicas para desplazarse por estas unidades.
Acerca de las unidades de Windows PowerShell
Las características de desplazamiento ampliadas de Windows PowerShell se basan en las unidades de Windows PowerShell.
Estas unidades de Windows PowerShell se pueden crear en cualquier almacén de datos que esté disponible en Windows PowerShell y pueden tener cualquier nombre válido, como C: o "Mi unidad", seguido de dos puntos (:). Puede desplazarse por estas unidades con los mismos métodos que utilizaría en una unidad del sistema de archivos. Sin embargo, las unidades de Windows PowerShell sólo pueden verse en Windows PowerShell. No pueden verlas ni obtener acceso a ellas a través del Explorador de Windows o Cmd.exe.
Windows PowerShell cuenta con varias unidades de gran utilidad, que son compatibles con los proveedores de Windows PowerShell. Para ver una lista de las unidades de Windows PowerShell, escriba:
get-psdrive

También puede crear sus propias unidades de Windows PowerShell a través del cm
#580
Hola, estoy utilizando el Visual C# .net 2005 (en realidad el Orcas, pero bueno)

¿Hay documentación por ahí para aprender manejar? Es decir, crear, modificar, etc el editor de registro de windows.
#581
Scripting / Un ejemplo del Script
23 Junio 2007, 21:34 PM
¿Alguien sabe algún ejemplo del Scripts Host sobre...


...Crear un cuadro donde hay que poner una contraseña, por ejemplo:

Contraseña: 1234

Si te equivocas 3 veces, el archivo suelta un mensaje de error diciendo:

Has tenido tres errores, este archivo será borrado.


y el archivo vbs o vbe se borra automaticamente.

#582
Scripting / windows script host
23 Junio 2007, 02:55 AM
Sabe alguien un buen amnual o tutoriales en español sobre windows script host al menos en Vista?
#583
Scripting / Descargar el Script Encoder
20 Junio 2007, 03:09 AM
Abre un archivo de texto ORIGINAL.txt


Escribes:

WScript.ECHO "Esto debería quedar en secreto"

Y guardalo como ORIGINAL.vbs


Cualquiera puede ver el código fuente, y necesito para codificarlo para que nadie lo entienda.

Se llama Script Encoder. Sin ser en la Web de microsoft, hay otro sitio para descargarlo?????????
#584
Ejercicios / Un ejercicio C#
17 Junio 2007, 04:12 AM
Estoy intenatdo hacer este ejercicio. Si le salen, puedes hacerlo con líneas de comando o consola.

#585
Hola genteeeeeeeee.

En visual C3 2005 Express, en modo consola.

1- Quiero hacer que al ejecutarlo (la aplicación) tarde 10 segundos activarse el pito del altavoz del PC y que pare dentro de 30 segundos.

2- Que la consola no se abra ni que se vea un pequeño icono al lado del reloj, que sea invisible para el usuario.

3- Quizás lo más dificil de lograr, es crear el programa en residente, es decir, que al niciar windows de nuevo. Se active el programa sólo cuando menos se lo espera.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run