运行shell:windows命令,及显示桌面.scf的问题

 

“显示桌面.scf”内容是:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

(把上面文字粘贴到记事本里,保存为“显示桌面.scf”即可)

开始-运行-shell:******可以访问到系统的许多资源,具体如下:
我的电脑      shell:DriveFolder
我的文档      shell:Personal
我的图片      shell:My Pictures
我的视频      shell:My Video
我的音乐      shell:My Music
网上邻居      shell:NetworkFolder
桌面        shell:Desktop
桌面        shell:DesktopFolder
收藏夹       shell:Favorites
“发送到”     shell:SendTo
“最近的文档”   shell:Recent
开始菜单      shell:Start Menu
开始菜单-程序    shell:Programs
开始菜单-启动    shell:Startup
回收站       shell:RecycleBinFolder
控制面板      shell:ControlPanelFolder
网络连接      shell:ConnectionsFolder
字体        shell:Fonts
打印机       shell:PrintersFolder
管理工具      shell:Administrative Tools
Windows文件夹   shell:Windows
系统文件夹     shell:System
System32文件夹  shell:SystemX86
WEB文件夹     shell:InternetFolder
用户数据文件夹   shell:Profile
程序        shell:ProgramFiles
程序公用文件    shell:CommonProgramFiles
模板        shell:Templates
打印        shell:PrintHood
网络        shell:NetHood
历史        shell:History
Cookies      shell:Cookies
本地程序数据    shell:Local AppData
程序数据      shell:AppData
共享文档      shell:Common document.
公用管理工具    shell:Common Administrative Tools
公用模板目录    shell:Common Templates
公用程序数据    shell:Common AppData
公用收藏夹     shell:Common Favorites
公用桌面      shell:Common Desktop
公用菜单      shell:Common Start Menu
公用程序菜单    shell:Common Programs
公用启动菜单    shell:Common Startup

 

 

关于"显示桌面" 及 C++ C# 实现代码

计算机左下角快速启动栏(地址:C:\Documents and Settings\luosiyong\Application Data\Microsoft\Internet Explorer\Quick Launch,其中红色的字体为你的计算机用户。如果你计算机中左下角快速启动栏中的“显示桌面”图标丢失了,可以直接在上述地址新建一个文本文件,写入如下代码,然后另存为"显示桌面.scf",注意扩展名;或者将在任意位置建立好的文件按住Ctrl并用鼠标左键拉到快速启动栏然后松手)中有一个图标叫“显示桌面”,平时比较爱用这个东西,对应的快捷键是win+D。在今天之前我认为它是很神秘的一个东西,因为今天之前我不知道它执行的原理,试着用记事本打开它,就发现了里面的秘密(记事本打开它的方法是,先打开记事本,然后把显示桌面的图标用鼠标拉到记事本中,松手),里面的代码如下:

[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

然后我还尝试直接保存这段代码,但是不知道扩展名,因为尝试了很多知道的扩展名都没有达到期望的效果。于是网上搜索,结果它是 scf 扩展名(点击链接查看百度百科),同时代码的含义也基本看明白了……

百科的内容如下:

  SCF文件是“WINDOWS资源管理器命令”文件,它也是一种可执行文件.
  该类型文件由Windows Explorer Command解释,标准安装,包括下面3个该类型的文件
  ===========================
  1) Explorer.scf(资源管理器)
  [Shell]
  Command=2
  IconFile=explorer.exe,1
  [Taskbar]
  Command=Explorer
  ===========================
  2)Show Desktop.scf(显示桌面)
  格式类似如下:
  [Shell]
  Command=2
  IconFile=explorer.exe,3
  [Taskbar]
  Command=ToggleDesktop
  ===========================
  3)View Channels.scf(查看频道)
  [Shell]
  Command=3
  IconFile=shdocvw.dll,-118

explorer.exe中的图标如下:(序号从0开始)

C++实现显示桌面:

/*
程序: 显示桌面 C++ 实现
说明: IShellDispatch4 接口只有WINDOWS XP以上的操作系统才支持,需要 shell32.dll 5.0或以上版本
编译环境: Microsoft Visual Studio 2008
*/
#include <windows.h>
#include <shldisp.h>

int main()
{
CoInitialize(0);
IShellDispatch4 * pdisp=NULL;
CoCreateInstance(CLSID_Shell,NULL,CLSCTX_ALL,__uuidof(IShellDispatch4),(void **)&pdisp);
pdisp->ToggleDesktop();
pdisp->Release();
CoUninitialize();
return 0;
}

C#实现显示桌面:

/*
* 程序 : 显示桌面 C# 实现
* 编译环境 : Microsoft Visual Studio 2008
*/
using System;
using System.Reflection;

namespace CSCONSOLE
{
     class Program
     {
         public static void Main(string [] args)
         {
             Type oleType=Type.GetTypeFromProgID("Shell.Application");
             object oleObject=System.Activator.CreateInstance(oleType);
             oleType.InvokeMember("ToggleDesktop",BindingFlags.InvokeMethod,null,oleObject,null);
         }
     }
}

另外查询MSDN对于ToggleDesktop的解释:

ToggleDesktop Method (IShellDispatch4)ToggleDesktop Method

Displays or hides the desktop.

Syntax

IShellDispatch4 .ToggleDesktop()

Return Value

No return value.

Remarks

This method has the same effect as the Show Desktop button in the Quick Launch area of the Taskbar. It either hides all open windows and shows the desktop, or it hides the desktop and shows all open windows. The ToggleDesktop method does not display any user interface, it just invokes the toggle action.

Examples

The following example shows the proper usage of ToggleDesktop for Microsoft JScript, Microsoft Visual Basic Scripting Edition (VBScript), and Visual Basic.

JScript:

<script language="JScript">    function fnIShellDispatch4ToggleDesktopJ()    {        var objShell = new ActiveXObject("Shell.Application");                objShell.ToggleDesktop();    }</script>

VBScript:

<script language="VBScript">    function fnIShellDispatch4ToggleDesktopVB()        dim objShell                set objShell = CreateObject("Shell.Application")            objShell.ToggleDesktop        set objShell = nothing    end function </script>

Visual Basic:

Private Sub fnIShellDispatch4ToggleDesktopVB()    Dim objShell As Shell                Set objShell = New Shell        objShell.ToggleDesktop    Set objShell = NothingEnd Sub

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值