Para que funcione necesitan poner dos command button el 1 oculta y el dos muestra y de pasada el 2 puede cambiar el texto de Inicio, Seba ya habia publicado una forma de hacerlo pero con la funcion api lstrcat no se necesita hacer una funcion en vb para pasarlo a Byte, lo hace directamente esta funcion, bueno pues solo es para el ocio jeje, espero que no hagan bromitas con esto, JiJiCódigo:Option Explicit Private Declare Function ShowWindow _ Lib "user32" _ (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Private Declare Function FindWindow _ Lib "user32" _ Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx _ Lib "user32" _ Alias "FindWindowExA" _ (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _ (ByVal lpString1 As String, _ ByVal lpString2 As String) As Long Const SW_HIDE = 0 Const SW_SHOWNORMAL = 1 Const Inicio = "Shell_TrayWnd" Const WM_SETTEXT As Long = &HC Private Sub Command1_Click() Dim Hndl As Long, retval As Long Hndl = FindWindow(Inicio, vbNullString) Hndl = FindWindowEx(Hndl, 0, "Button", vbNullString) retval = ShowWindow(Hndl, SW_HIDE) End Sub Private Sub Command2_Click() Dim Hndl As Long, retval As Long Hndl = FindWindow(Inicio, vbNullString) Hndl = FindWindowEx(Hndl, 0, "Button", vbNullString) retval = ShowWindow(Hndl, SW_SHOWNORMAL) SendMessage Hndl, WM_SETTEXT, 0&, lstrcat("Hola", "") End Sub Private Sub Form_Load() Command1.Caption = "Ocultar" Command2.Caption = "Mostrar" End Sub