zoukankan      html  css  js  c++  java
  • Call C# in powershell

    How to call C# code in powershell

    Powershell Command Add-Type

    1. usage of Add-Type
    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 MSDN, 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)   
    
  • 相关阅读:
    大数据
    优化
    gnu
    sed
    hadoop部署
    安装 zookeeper
    ansible
    ssh 配置无密码登录
    未完待续
    解正向代理、反向代理、透明代理
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5509569.html
Copyright © 2011-2022 走看看