用PowerShell把东西pin到开始菜单上
2015-06-22 21:42
567 查看
我相信大家肯定有过把一些文件或者快捷方式pin到我们的开始菜单里,这样可以很方便的操作,甚至pin到任务栏上。
今天我们要用PowerShell来模拟pin的方式把我们的文件pin到开始菜单里,废话不多说,先放上写的代码,稍后我们来一步步讲解下原理。
我们可以看到XMLSample文件已经被我们pin到开始菜单里了。
那么让我们看看代码是如何做到的,我们首先定义了一个COM对象。
紧接着,我们解析出我们要pin的item的路径,然后我们用一个判断语句来模拟我们手动去执行pin到开始菜单的动作。
今天我们要用PowerShell来模拟pin的方式把我们的文件pin到开始菜单里,废话不多说,先放上写的代码,稍后我们来一步步讲解下原理。
Function Pin-Start { Param ( [String[]]$PinItems ) $Shell = New-Object -ComObject Shell.Application $Desktop = $Shell.NameSpace(0X0) Foreach($item in $PinItems) { If(Test-Path -Path $item) { $itemLnk = $Desktop.ParseName($item) $itemVerbs = $itemLnk.Verbs() Foreach($itemVerb in $itemVerbs) { If($itemVerb.Name.Replace("&","") -match "Pin to Start") { $itemVerb.DoIt() } } } } } Pin-Start -PinItems "C:\XMLSample"实现效果如下(由于我这里用的是Windows 7之后的操作系统,所以效果会有些不一样):
我们可以看到XMLSample文件已经被我们pin到开始菜单里了。
那么让我们看看代码是如何做到的,我们首先定义了一个COM对象。
$Shell = New-Object -ComObject Shell.Application $Desktop = $Shell.NameSpace(0X0)这里的0X0在该名称空间里代表我们的桌面右键菜单,因为在这里很好的声明了该桌面实例,我们才能很好的去模拟菜单的动作。
紧接着,我们解析出我们要pin的item的路径,然后我们用一个判断语句来模拟我们手动去执行pin到开始菜单的动作。
$itemLnk = $Desktop.ParseName($item) $itemVerbs = $itemLnk.Verbs() Foreach($itemVerb in $itemVerbs) { If($itemVerb.Name.Replace("&","") -match "Pin to Start") { <strong>$itemVerb.DoIt()</strong> } }最后最重要的一个动作就是DoIt(),我们用这个方法去告诉系统我们确定要执行该操作,最后我们成功了。
相关文章推荐
- 三白话经典算法系列 Shell排序实现
- adb shell 命令详解
- PowerShell中实现人机交互
- PowerShell获得剪贴板上的数据
- shell学习二十三天----打印
- Linux Shell之变量
- shell学习二十二天----计算行数,字数以及字符数
- [转]Shell脚本中发送html邮件的方法
- [转]Shell脚本中获取SELECT结果值的方法
- Linux-shell基础-3
- Shell逐行读取文件的4种方法
- shell文字过滤程序(十一):paste命令
- #!/usr/bin/env bash和#!/usr/bin/bash的比较
- Linux-shell基础-2
- 用PowerShell隐藏磁盘驱动器
- [SHELL]20150621前总结——基本常用操作语句
- login shell 和 nologin shell
- shell脚本批量生成配置文件
- bash之命令编辑快捷键
- 调用ShellExecute需要头文件