![]() |
|
![]() |
|
Método para mostrar el escritorio de Windows |
|
![]() Volver |
'********************************************************* ' ShowDesktop ' ' Esta rutina hace que se muestre el escritorio de Windows ' de la misma manera que lo hace la funcionalidad "Mostrar ' escritorio" de la barra de tareas de Windows. ' ' Se trata simplemente de escribir en un fichero temporal ' las secuencias de comandos necesarias para lograrlo y ' después ejecutarlo. El texto del fichero viene a ser ' algo como: ' ' ' [Shell] ' Command = 2 ' IconFile=explorer.exe,3 ' ' [Taskbar] ' ToggleDesktop ' ' ' He aprovechado la ocasión para mostrar cómo obtener el ' nombre de un fichero temporal, a través de un objeto ' FileSystemObject, así como también para mostrar cómo ' ejecutar un programa o fichero con extensión registrada ' en el sistema (como es el caso que nos ocupa) con un ' objeto WShell, del Windows Scripting Host Model (WSH). ' Esto último también se puede hacer con el API ' ShellExecute o ShellExecuteEx (con el método ' "Application.FollowHyperlink" también se podía ejecutar ' este programa, pero mostraba un aviso de advertencia, ' con lo cual, no resultaba la mejor opción). ' Sub ShowDesktop() Dim FileName As String Dim FileText As String Dim fso As Object 'New FileSystemObject Dim WShell As Object 'New wshShell ' obtenemos un nombre de archivo temporal Set fso = CreateObject("Scripting.FileSystemObject") FileName = fso.GetTempName ' quitamos la extensión ".tmp" FileName = Left(FileName, Len(FileName) - 4) ' y le añadimos la extensión ".scf" FileName = CurDir & "\" & FileName & ".scf" Set fso = Nothing ' escribimos una cadena con los comandos para el ' programa explorer.exe, que muestran el escritorio FileText = "[Shell]" & vbCrLf & "Command = 2" & _ vbCrLf & "IconFile=explorer.exe,3" & vbCrLf _ & "[Taskbar]" & vbCrLf & "Command=ToggleDesktop" ' escribimos el archivo temporal con la cadena Open FileName For Output As #1 Print #1, FileText Close #1 ' ejecutamos el archivo de secuencia de comandos Set WShell = CreateObject("WScript.Shell") WShell.Run Chr(34) & FileName & Chr(34) Set WShell = Nothing ' finalmente borramos el fichero temporal Kill FileName End Sub '********************************************************* |
![]() |
Última actualización 12/10/2003 © Juan M. Afán deRibera |