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

首頁 > 開發(fā) > PowerShell > 正文

PowerShell實現(xiàn)查詢打開某個文件的默認應(yīng)用程序

2020-03-26 19:09:38
字體:
供稿:網(wǎng)友

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

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

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

$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證書文件,程序會崩潰。

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品99久久久久久久女警 | 成人啪啪色婷婷久 | 国产五区 | 99精品无人区乱码在线观看 | 在线区| 4p一女两男做爰在线观看 | 国语自产免费精品视频在 | 欧美久久久一区二区三区 | 成年人福利视频 | 亚洲电影在线播放 | 国产视频在线观看一区二区三区 | 日本羞羞的午夜电视剧 | 欧美在线黄色 | h视频免费在线观看 | 三级xxxx | 一区二区三区在线视频观看58 | 国产亚洲精品综合一区91 | aa国产视频一区二区 | 精品国产91久久久久久 | 成人短视频在线播放 | 国产亚洲精品综合一区91 | 国产精品午夜性视频 | 国产成人自拍av | 国产小视频一区 | 亚洲乱码精品久久久久 | 主播粉嫩国产在线精品 | 欧美激情天堂 | 热99视频| 欧美在线观看禁18 | 狠狠干精品视频 | chinese乱子伦xxxx国语对白 | 免费性爱视频 | 久久国产一级片 | 看片一区二区三区 | 成人一区二区三区在线 | 免费观看视频在线观看 | 成人免费一区二区三区在线观看 | 欧美激情综合在线 | 久久精品99北条麻妃 | 毛片大全免费 | 成年免费看 |