PowerShell-4.API调用以及DLL调用
PowerShell可以直接调用API,So...这东西完全和cmd不是一回事了...
调用API的时候几乎和C#一样(注意堆栈平衡):
调用MessageBox:
$iii = Add-Type -memberDefinition @"
[DllImport("User32")]
public static extern int MessageBox (
long hWnd,
string lpText,
string lpCaption,
int uType);
"@ -passthru -name XXX
$iii::MessageBox(0 ,'test' ,'tit' ,0)
PowerShell 调用我们自己的dll
(下面是网上粘贴的别人的,我本意是要调用C++的dll,但是按照C#的姿势调用失败了,现在采取的方案是通过rundll32来桥接PowerShell调用C++的dll。)
用C#写一段代码编译为DLL文件
namespace Math{
public class Methods {
public Methods() {
}
public static int CompareI(int a, int b) {
if (a>b)
return a;
else
return b;
}
public int CompareII(int a, int b) {
if (a>b)
return a;
else
return b;
}
}
}
[void][reflection.assembly]::LoadFile("G:/Math2.dll")
[Math.methods]::CompareI(10,2)
$a=New-Object Math.Methods
$a.CompareII(2,3)
[void][reflection.assembly]::LoadFile("D:/VS2008/VC/Math2.dll")
我们必须以这种形式加载DLL库
[Math.methods]::CompareI(10,2)
我们看到Powershell在调用静态方法的时候必须使用方括号加上双冒号“::”的形式来调用静态方法。
$a=New-Object Math.Methods
$a.CompareII(2,3)
而一般方法则不然,必须用New-Object来声明一个对象引用。
PowerShell-4.API调用以及DLL调用的更多相关文章
- BCB如何编写,调用动态链接库DLL
一 编写动态链接库DLL DLL简称动态链接库,是Windows中程序的重要组成部分.想象一下,一个程序需要多人共同完成开发,怎么个共同法?这时我们就要考虑把程序分为好几个模块,团队每一个成员开发一个 ...
- Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)
文章目录: 1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...
- powershell 调用winform dll
//1.加载dll,调用winform窗体,使用指定构造函数 param{ $filePath="" } [void][reflection.assembly]::LoadFile ...
- c# 调用c++DLL方法及注意事项
引用命名空间 using System.Runtime.InteropServices 调用方法: 一.静态加载 用DllImprot方式来加载c++DLL.如下格式: //对应c++方法 //voi ...
- c#调用c++ dll的几种类型(转)
http://www.sosuo8.com/article-2012/dllleixingzhuanhuan.htm 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传 ...
- 【VB技巧】VB静态调用与动态调用dll详解
本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...
- C# 调用第三方DLL完整实例
C# 调用第三方DLL完整实例 分类: C/C++ 以下代码为本人在实际项目中编写的调用第三方DLL接口程序的完整代码. public class ExecuteDLL : Form { ...//忽 ...
- c#调用c++ dll(二)
当对c++几种调用方式有了解以后我们可以试着写个c++动态连接库了,我们现在来写个简单的c++求和函数并把它封装成dll,供以后的c#调用 我们写dll的时候,个人认为,要写就要把dll写好,写标准, ...
- C#调用VC dll输出参数
最近做项目需要把以前Vc写的程序整合到VS2005来,用c#写的,以前VC的动态连接库写好了,重写比较麻烦,让C#调用VC dll就好了.但碰到了一个问题:VC中作为输出参数的char*类型的变量应该 ...
随机推荐
- Linux下基础命令
(1)ls(查看列表) (2)ls -l(查看列出文件详细信息) (3)ls -al (查看全部列出文件详细信息) (4)ls -dl(查看目录信息) (5)pwd(查看当前工作的目录) ...
- idea配置struts2.5环境
struts2不是struts1的下一代产品,是在struts1和WebWork技术的基础上进行合并后的全新框架,虽然两个名字相似,但是设计思想却有很大的不同. 使用本地的l ib 或者downloa ...
- 开源项目renren-fast-vue开发环境部署(前端部分)
开源项目renren-fast-vue开发环境部署(前端部分) 说明:renren-fast是一个开源的基于springboot的前后端分离手脚架,当前版本是3.0 开发文档需要付费,官方的开发环境部 ...
- TextRank算法及生产文本摘要方法介绍
TextRank 算法是一种用于文本的基于图的排序算法,其基本思想来源于谷歌的 PageRank算法,通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代 ...
- Oauth2协议那些事
1. 背景 首先,设想一种情境:你平常会使用一款照片存储App(以下照片服务指代),用来将自己喜欢的照片存放在上面以备随时查看.假如有一天,你想要打印其中的某张照片而且你找到了一款打印照片App(以下 ...
- 分享15个实用VSCode插件,快来收藏吧!
Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.它有卓越的性能和丰富的功能.VSCode 也有一个扩展和主题市场,为了帮助大家挑选出值得下载的插件,我们针对性的收集了 ...
- Python数据分析入门(十):数据清洗和准备
数据清洗是数据分析关键的一步,直接影响之后的处理工作 数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘? 是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作 ...
- Scrapy框架的安装
Win+R 输入cmd打开命令行 我们先把pip升级到最新版,输入代码如下: pip install --upgrade pip 不过一般这种更新方式会经常性出错,安装文件在下载到一半时就会超时报错 ...
- SpringBoot 集成测试
一. 测试一般程序(Service/DAO/Util类) 1. 在pom.xml中引入依赖 2. 生成测试类 <1> 如果使用IntelliJ IDEA,可以使用快捷键直接生成: Wind ...
- Lucas(卢卡斯)定理
Lucas(卢卡斯)定理 定义 若 \(p\) 为质数,且\(a\ge b\ge1\),则有: \[C_{a}^{b}\equiv C_{a/p}^{b/p}\cdot C_{a (mod\,p)}^ ...