博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Call C# in powershell
阅读量:5313 次
发布时间:2019-06-14

本文共 1473 字,大约阅读时间需要 4 分钟。

How to call C# code in powershell

Powershell Command Add-Type

  1. usage of
  2. we use Add-Type -TypeDefinition $code. About C# Code, we should wrap it with a class.we put our sub class, struct,method,in this class.
  3. Sample code
$Code = @'using System.Runtime.InteropServices;using System.Drawing;public class GetCursor{    public struct POINT    {        public int X;        public int Y;        public static implicit operator Point(POINT point)        {            return new Point(point.X, point.Y);        }    };    [DllImport("user32.dll")]    public static extern bool GetCursorPos(out POINT lpPoint);    public static Point GetCursorPosition()    {        POINT lpPoint;        GetCursorPos(out lpPoint);        return lpPoint;    }}'@

we call it in powershell

Add-Type -TypeDefinition $Code -ReferencedAssemblies System.Drawing

we call Add-Type by using parameter -memberdefinition

  1. if we use memberdefinition, parameter, we just expose the function to the powershell session, we don't need to create a class, powershell will auto generate a class for us. In this scenario, we usually, use this way to invoke native windows api. Detail info refer , Exapmle5, Here is a small code snip.
$CSharpCode=@"    [DllImport("user32.dll")]    public static extern bool BlockInput(bool fBlockIt);"@    $CS=Add-Type -MemberDefinition $CSharpCode -Name "KeyBoardMouse" -namespace win32Func -PassThru    $res = $CS:BlockInput($true)

转载于:https://www.cnblogs.com/kongshu-612/p/5509569.html

你可能感兴趣的文章
SQL
查看>>
JavaScript基础-var
查看>>
javascript 进阶篇1 正则表达式,cookie管理,userData
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
用WebClinet实现SharePoint上文档库中文件的上传与下载
查看>>
Silverlight和javascript的相互调用
查看>>
SQL Server 2005 Express 附加数据库只读 解决方案
查看>>
opencv中的Bayes分类器应用实例
查看>>
大数据学习
查看>>
[BZOJ2982]combination
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Python中替换元素
查看>>
关于双核心:也许你不知道的五件事
查看>>
Trace 2018徐州icpc网络赛 (二分)(树状数组)
查看>>
让你的 Python 代码优雅又地道
查看>>