jueves, 24 de octubre de 2013

Encender un PC a través de Wake On LAN

Muchas veces necesito encender un PC que tengo en la red local. Hacer esto es muy fácil. Sólo tienes que saber la IP del equipo y su MAC, para ello utilizaré WakeOnLan. Y he encontrado la forma de hacerlo desde la consola, con esta aplicación: WOLCMD
La forma de utilizar la aplicación es abriendo una consola de CMD y ejecutando lo siguiente:
wolcmd MAC IP 255.255.255.0 0

Si lo queremos hacer en un bat podemos hacer lo siguiente:
@echo off
title Encendido del PC a traves de WOL
echo.
set /p mac_pc=Teclea la mac del equipo:
cls
echo.
set /p ip_pc=Ahora la IP:
cls
wolcmd %mac_pc% %ip_pc% 255.255.255.0 0
echo.
if errorlevel 0 goto OK 
if errorlevel 1 goto KO
echo.

:OK
echo WOL enviado correctamente :)
echo.
set /p respuesta=Deseas comprobarlo?(S/N):
if %respuesta%==S goto Ping_largo
if %respuesta%==s goto Ping_largo
if %respuesta%==N goto Salir
if %respuesta%==n goto Salir

:Ping_largo
cls
title Lanzando un ping /t a la direccion %ip_pc%
ping %ip_pc% /t

:Salir
cls
exit

:KO
echo WOL no ha funcionado :(

pause
Espero que os sirva ;)

jueves, 2 de junio de 2011

Anular el sonido beep del ordenador

Para anular el sonido del altavoz interno del ordenador,el famoso beep, basta con modificar la siguiente entrada en el registro.

HKEY_CURRENT_USER\Control Panel\Sound

Y ahí modificar la entrada Beep, que por defecto estará en yes, la cambiamos a no, reiniciamos, y listo ;)

lunes, 25 de abril de 2011

Desbloquear los archivos adjuntos de Outlook

Outlook bloquea algunos tipos de archivos por ser potencialmente peligrosos, uno de estos tipos es el .mdb (Bases de datos de Access).

Si queremos que este tipo de archivos no sea bloqueado y los podamos recibir mediante el correo tenemos que tocar el registro:


  1. Ejecuta el programa REGEDIT.

  2. Accede a la entrada de registro HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security

  3. Creamos un nueva entrada de tipo Valor Alfanumérico llamada "Level1Remove" con el valor ".mdb"

En la opcion 2, he visto en algunas maquinas que en el registro esta en vez de 11.0 puede aparecer 12.0 o parecido... pero es sencillo de encontrar ya que solamente uno tiene dentro la carpeta de Outlook.


Haciendo esto ya podemos recibir ficheros anexos de access en nuestro correo sin que lo cape el mismo Outlook.

miércoles, 23 de marzo de 2011

Cambiar la contraseña del administrador

Hace unos días, teníamos que cambiar la contraseña del administrador local de la máquina a todos los equipos de una red.

Para ello hemos utilizado la herramienta de Sysinternals llamada pspasswd con la que se puede cambiar la contraseña de un usuario de máquina:

La sintáxis es la siguiente:
pspasswd @fichero.txt -u usuario -p contraseña usuario_local_PC nueva_contraseña
Donde @fichero.txt es un fichero de texto que guarda las IP's o nombres de hosts a los que vamos a cambiar las contraseñas.

miércoles, 16 de marzo de 2011

¿Cuál es la tecla que menos usáis?

He estado pensándolo esta tarde, y me he dicho, ¿Cuál es la tecla que menos uso?, mi respuesta, la tecla bloq desp, o bloq num.

Cual es vuestra tecla…

Ampliar funcionalidades a los objetos de .NET

Los que venimos de programar en VB6, teníamos en los objetos ListView y Combobox las propiedades KEY que utilizábamos para guardar la primary key u otro dato que nos ayudaba a identificar el registro en cuestión.

En .NET estas propiedades ya no existen. Para solucionarlo, tenemos que ampliar estos controles para poder disponer de la misma funcionalidad. En esta entrada, voy a explicar cómo hacerlo para estos dos objetos, aunque lo podríamos hacer para todos los objetos que deseemos.

Ampliar funcionalidades para ListView
Nos creamos una clase (en mi caso se llamará TListItem) e introducimos este código:
Imports System.Windows.Forms
Public Class TListItem
Inherits ListViewItem

Private m_Key As Object

Public Property Key() As Object
Get
Return m_Key
End Get
Set(ByVal value As Object)
m_Key = value
End Set
End Property

Public Sub New(Optional ByVal Key As Object = vbNullString)
m_Key = Key
End Sub

End Class
Para cargar el ListView, simplemente haría falta añadir esta nueva clase que nos hemos creado:
loItem = New TListItem
loItem.Key = "nuestraclave"
loItem.Text = "Texto de inicio"
loItem.SubItems.Add("Subitem")
lsvLista.Items.Add(loItem)

Para tratarlo después, sólo hace falta convertir el elemento ListViewItem en el nuevo TListItem para poder acceder a los datos ampliados:
Msgbox CType(lsv.SelectedItems(0), TListItem).Key
Ampliar funcionalidades para ComboBox
Nos creamos una clase (en mi caso se llamará TCombo) e introducimos este código:

Public Class TCombo

Private m_Key As Object
Private m_Valor As String

Public Sub New(ByVal Key As Object, ByVal Valor As String)
m_Key = Key
m_Valor = Valor
End Sub

Public Overrides Function ToString() As String
Return m_Valor
End Function

Public ReadOnly Property Key() As Object
Get
Return m_Key
End Get
End Property

End Class
Para cargar el ComboBox, simplemente haría falta añadir esta nueva clase que nos hemos creado:
cboCombo.Items.Add(New TCombo("nuestraclave", "Texto del combo"))
Para obtener la key del elemento seleccionado del combo.
Msgbox CType(cboCombo.SelectedItem, TCombo).Key
Espero que sea de utilidad.

Solución al error de “No coinciden los tipos” al compilar con W7 con SP1

Ayer me instalé el SP1 de Windows 7. Cuál es mi sorpresa cuando compilo mi aplicación que utiliza las MDAC y da error "No coinciden los tipos". Testeando la aplicación, me daba error en:

Dim cn As Adodb.Connection
Set cn = new Adodb.Connection 'Aquí da ERROR NO COINCIDEN LOS TIPOS

Mirando en Microsoft, puedes solucionar este problema haciendo:
Dim cn As Object
Set cn = CreateObject("Adodb.Connection")

Si tienes una aplicación pequeña, recomiendo hacer esto, pero si tienes una aplicación muy grande, cambiar esto puede suponer un trabajo importante puesto que da error en cualquier objeto de las MDAC.

Microsoft ha sacado recientemente un hotfix para que los clientes que no tienen el SP1 de Windows 7, o Windows XP o cualquier otro Windows, puedan ejecutar aplicaciones que hayan sido compiladas bajo Windows 7 con SP1. Esto está muy bien, pero es que cuando el cliente tiene Windows 7 con SP1 de 32bits y tú lo has compilado en un Windows 7 de 64 bits, esa compilación tampoco funciona y, para mejorar la cosa, no puedes instalarle el Hotfix que soluciona el error (el hotfix sólo funciona para los Windows 7 que NO tienen en SP1 instalado).

Descarga del Hotfix de Microsoft: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=983246&kbln=es

Bueno, para solucionar el problema "momentáneamente", encontré una solución por internet. He realizado una copia de seguridad de las MDAC sin el SP1 puesto, me he puesto el SP1 y he vuelto a machacar las MDAC con las que tenía antes de realizar la actualización. De esta manera ya puedes compilar tus aplicaciones en Windows 7 con SP1 y que a todos tus clientes les funcione.

Los pasos a seguir son:
1. Abre el registro de sistema y ve a la siguiente clave:
32 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}
64 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}

2. Pulsa botón derecho a la carpeta -> Permisos
3. Pulsa en Opciones avanzadas
4. Ve a Propietario, selecciona Administradores y marca la casilla "Reemplazar propietario en subcontenedores y objetos"
5. Pulsa aceptar, en la lista de usuarios, selecciona Administradores y dale permisos de Control Total.
6. Acepta

7. Ve a la siguiente carpeta:
32 bits: C:\Program Files\Common Files\System\ado
64 bits: C:\Program Files (x86)\Common Files\System\ado

8. Selecciona el fichero msado28.tlb, pulsa botón derecho -> propiedades
9. Ve a la solapa Seguridad, pulsa Opciones Avanzadas.
10. Ve a la solapa Propietario y pulsa en Editar
11. Selecciona Administradores y pulsa Aceptar, vuelve a pulsar en Aceptar
12. En la solapa Seguridad, pulsa el botón Editar, selecciona el grupo Administradores y dale permisos de Control Total
13. Acepta y vuelve a aceptar
14. Hacer lo mismo para el fichero msado27.tlb ( desde el paso 8 )

15. Ejecuta el bat que hay en esta carpeta
32 bits: registrar ado 32.bat
64 bits: registrar ado 64.bat

Adjunto fichero donde se encuentran las copias de seguridad de los ficheros de las MDAC y los BAT correspondientes.
Descargar desde MEGAUPLOAD

Ya puedes compilar tus aplicaciones con el SP1 de Windows 7 sin que le salga al cliente "No coinciden los tipos"