[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 jyswjjgdwtdtj 于 2025-3-22 15:25 编辑

回复 1# 小白龙
  1. [void][Reflection.Assembly]::LoadWithPartialName("microsoft.visualbasic")      
  2. $Objshell=[system.activator]::Createinstance([system.type]::GetTypeFromClsid("{944DE083-8FB8-45CF-BCB7-C477ACB2F897}"))  
  3. write-host [microsoft.visualbasic.information]::typename($objshell)
复制代码
然而只能获取到类名 而非progid
你好

TOP

本帖最后由 jyswjjgdwtdtj 于 2025-3-22 15:49 编辑

回复 3# 小白龙


powershell获取的clsid不是com组件真的clsid
比如wshshell的clsid是72C24DD5-D70A-438B-8A42-98424B88AFB8 但powershell给出了41904400-be18-11d3-a28b-00104bd35090
更正一下 这样才能获取到progid
  1. $s=@'
  2. using System;
  3. using System.Runtime.InteropServices;
  4. namespace ns
  5. {
  6.     public class com
  7.     {
  8.         [DllImport("ole32.dll")]
  9.         static extern int ProgIDFromCLSID([In] ref Guid clsid, [MarshalAs(UnmanagedType.LPWStr)] out string lplpszProgID);
  10.         public static string Getprogid(string clsid)
  11.         {
  12.             string progId = "";
  13.             Guid guid = new Guid(clsid);
  14.             ProgIDFromCLSID(ref guid, out progId);
  15.             return progId;
  16.         }
  17.     }
  18. }
  19. '@
  20. add-type -typedefinition $s
  21. [ns.com]::Getprogid("{72C24DD5-D70A-438B-8A42-98424B88AFB8}")
复制代码
你好

TOP

回复 5# 小白龙


   虽然不知道为什么报错了还是能输出结果 但确实能用不是吗
你好

TOP

返回列表