麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PowerShell > 正文

PowerShell實現查詢打開某個文件的默認應用程序

2020-05-30 20:19:39
字體:
來源:轉載
供稿:網友

許多文件擴展名和一個可執行應用程序綁定。正因為這樣你才可以使用Invoke-Item打開一個文檔。

要找出一個給定后綴名的文件是由那個默認引用程序打開它,并不麻煩。我們可以使用Windows系統中的注冊表,自行編程解決。但是在掃描注冊表時,要稍微留意一下32位和64位機器的問題,這不是本文重點,點到為止。

另外一種途徑,稍顯旁門左道,調用Windows API。下面的例子會演示如何調用。采取這種途徑最大的優勢是借力于操作系統。而你的付出成本只是用C#代碼間接調用Windows API中的函數而已:

$Source = @" using System;using System.Text;using System.Runtime.InteropServices;public class Win32API  {    [DllImport("shell32.dll", EntryPoint="FindExecutable")]     public static extern long FindExecutableA(string lpFile, string lpDirectory, StringBuilder lpResult);     public static string FindExecutable(string pv_strFilename)    {      StringBuilder objResultBuffer = new StringBuilder(1024);      long lngResult = 0;       lngResult = FindExecutableA(pv_strFilename, string.Empty, objResultBuffer);       if(lngResult >= 32)      {        return objResultBuffer.ToString();      }       return string.Format("Error: ({0})", lngResult);    }  } "@ Add-Type -TypeDefinition $Source -ErrorAction SilentlyContinue $FullName = 'c:/Windows/windowsupdate.log'$Executable = [Win32API]::FindExecutable($FullName)   "$FullName will be launched by $Executable"

 

唯一有個限制,就是FindExecutable()需要檢查的文件是存在的,你不能只用文件擴展名去請求。

另外@reidca反饋說該方法不能檢測MMC加載項打開的文件,比如cer和pfx證書文件,程序會崩潰。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费淫视频 | 亚洲第一黄色网 | 曰韩毛片 | 亚洲欧美国产高清 | 日韩精品中文字幕一区二区三区 | 一级在线视频 | 国产羞羞视频在线观看 | 特一级黄色毛片 | www.国产一区.com | 27xxoo无遮挡动态视频 | 久久55 | 欧美一区二区三区久久精品视 | 国产成人在线观看免费 | 亚洲免费视频一区 | 亚洲精品久久久久久久久久久 | av在线播放亚洲 | 斗破苍穹在线免费 | 国产乱淫av片免费观看 | 草妞视频 | 青青草国产在线视频 | free国产hd老熟bbw | 黄色久| 91精品久久香蕉国产线看观看 | caoporn国产一区二区 | 黄色免费小网站 | 欧洲色阁中文字幕 | 日韩美香港a一级毛片 | 性欧美视频在线观看 | 久久午夜国产 | av电影在线免费观看 | 黄视频免费在线观看 | 亚洲第一色婷婷 | 亚洲午夜影院在线观看 | 成人在线视频免费播放 | 欧美黄成人免费网站大全 | 久久国产精品久久精品国产演员表 | 久久久免费观看完整版 | 欧美中文字幕一区二区 | 午夜伦情电午夜伦情电影 | 手机黄色小视频 | 免费永久看羞羞片网站入口 |