.NET 下使用Win32 API 有哪几种方法?

问题描述

我个人所知:1.通过DllImport调用Win32API;2.通过对应表在.NETAPI中查找对应Win32API而然后直接使用.NETAPI。对应表引用地址如下:http://www.cnblogs.com/me-sa/articles/657251.html除了以上的两种的以外还有其它的不?两种方法例程如下:usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Drawing.Imaging;namespaceWin{///<summary>///Form1的摘要说明。///</summary>publicclassForm1:System.Windows.Forms.Form{privateSystem.Windows.Forms.Buttonbutton1;privateSystem.Windows.Forms.Buttonbutton2;///<summary>///必需的设计器变量。///</summary>privateSystem.ComponentModel.Containercomponents=null;publicForm1(){////Windows窗体设计器支持所必需的//InitializeComponent();////TODO:在InitializeComponent调用后添加任何构造函数代码//}///<summary>///清理所有正在使用的资源。///</summary>protectedoverridevoidDispose(booldisposing){if(disposing){if(components!=null){components.Dispose();}}base.Dispose(disposing);}#regionWindowsFormDesignergeneratedcode///<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent(){this.button1=newSystem.Windows.Forms.Button();this.button2=newSystem.Windows.Forms.Button();this.SuspendLayout();////button1//this.button1.Location=newSystem.Drawing.Point(33,12);this.button1.Name="button1";this.button1.Size=newSystem.Drawing.Size(112,39);this.button1.TabIndex=0;this.button1.Text="调用.NETAPI完成鼠标光标隐藏";this.button1.Click+=newSystem.EventHandler(this.button1_Click);////button2//this.button2.Location=newSystem.Drawing.Point(33,76);this.button2.Name="button2";this.button2.Size=newSystem.Drawing.Size(112,40);this.button2.TabIndex=0;this.button2.Text="调用Win32API完成鼠标光标显示";this.button2.Click+=newSystem.EventHandler(this.button2_Click);////Form1//this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientSize=newSystem.Drawing.Size(182,149);this.Controls.Add(this.button1);this.Controls.Add(this.button2);this.Name="Form1";this.Text="例程";this.ResumeLayout(false);}#endregion///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){Application.Run(newForm1());}//Win32API鼠标光标控制定义语句[System.Runtime.InteropServices.DllImport("user32.dll")]privatestaticexternintShowCursor(boolbShow);privatevoidbutton1_Click(objectsender,System.EventArgse){System.Windows.Forms.Cursor.Hide();//.netAPI隐藏鼠标光标}privatevoidbutton2_Click(objectsender,System.EventArgse){//ShowCursor(false);//Win32API隐藏鼠标光标ShowCursor(true);//Win32API显示鼠标光标}}}

解决方案

解决方案二:
没见过其他方法
解决方案三:
把所有API集成到几个接口中,做成COM,然后调用比较疯狂的说。。。。
解决方案四:
支持搂主,收藏
解决方案五:
引用2楼lake_cx的回复:

把所有API集成到几个接口中,做成COM,然后调用比较疯狂的说。。。。

我狂顶这个
解决方案六:
关注接分
解决方案七:
该回复于2008-05-09 11:13:29被版主删除

时间: 2024-09-17 12:55:19

.NET 下使用Win32 API 有哪几种方法?的相关文章

qt下调用win32 api 对串口编程,怎么弄?主要是怎么调用api

问题描述 qt下调用win32 api 对串口编程,怎么弄?主要是怎么调用api 解决方案 解决方案二: 我用MessageBox测试,出了问题.添加了lib文件,把dll文件放在工程文件夹下了,也还是不行 解决方案三: 我用MessageBox测试,出了问题.添加了lib文件,把dll文件放在工程文件夹下了,也还是不行 解决方案四: user32.lib和kernel32.lib是Windows的标准库,可以直接链接,是不是..libs目录下的库文件与你开发机的Windows版本不一致?去掉"

CB下实现对端口读写的两种方法

在C++Builder中,不能够使用Turbo C中的outputb和inputb端口读写函数.但我们可以有另外两种办法实现这个功能.本文介绍怎样在C++Builder下实现端口读写,并给出两种方法的源代码. 在C++Builder下对端口的读写共有两种方法,一种为内嵌汇编语言,另一种为使用__emit__函数. 1 通过内嵌汇编语言实现端口的读写 在C++Builder中,汇编语句必须被包含在以关键字asm为起始的一对大括号中: asm {汇编语句1--} 利用内嵌汇编语言编制端口输出函数如下

linux系统下php安装mbstring扩展的二种方法

 这篇文章主要介绍了linux系统环境下,php安装mbstring扩展的二种方法,大家参考使用吧 1.执行   代码如下: yum install php-mbstring     2. 修改php.ini (这一步非常重要, 部分lxadmin版本无法自动修改)   代码如下: echo 'extension=mbstring.so' >>/etc/php.ini #更具php安装目录而定     3. 重启web service   如果是apache: service httpd re

WordPress使用百度地图API数据的2种方法

我们在写博文时,可能需要配合地图来详细描述一件事情或一个地方.最简单的方法是在百度/谷歌地图上找到目标位置,然后截图,放在博文中.然而,如果我们能够将百度/谷歌地图API数据直接引用到博文中,动态呈现给阅读者,这不仅让博文更加生动有趣,也提高了与阅读者的互动性.我还是开门见山,下面讲讲如何在wordpess网站中引用百度地图API数据. 首先,我们看下最终效果,如下图所示:     方法一:插件 Custom Baidu Maps 下载插件 1.通过WordPress后台直接搜索.安装.激活 2

Win7下屏蔽禁用鼠标滚轮的两种方法

  方法一 1.首先打开运行对话框运行regedit打开注册表; 2.然后依次展开定位到HKEY_CURRENT_USERControl PanelDesktop的WheelScrollLines; 3.然后双击WheelScrollLines将其值4改变就行了,0表示禁止滚轮,1表示打开滚轮 .然后退出注册表即可 . 方法二 1.鼠标右击"计算机"选择管理,然后展开设备管理器; 2.在设备管理中找到并双击"鼠标和其他指针设备",然后双击要配置的鼠标名称; 3.接着

JS下高效拼装字符串的几种方法比较与测试代码_javascript技巧

在使用Ajax提交信息时,我可能常常需要拼装一些比较大的字符串通过XmlHttp来完成POST提交.尽管提交这样大的信息的做法看起来并不优雅,但有时我们可能不得不面对这样的需求.那么JavaScript中对字符串的累加速度如何呢?我们先来做下面的这个实验.累加一个长度为30000的字符串. 测试代码1 - 耗时: 14.325秒 复制代码 代码如下: var str = ""; for (var i = 0; i < 50000; i++) { str += "xxxx

Windows下mysql修改root密码的4种方法_Mysql

MySQL是一个关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.搭配 PHP 和 Apache 可组成良好的开发环境.因此用的很广泛.很多人都会遇到MySQL需要修改密码的情况,比如密码太简单.忘记密码等等.这里我就教大家几种修改MySQL密码的方法.这里以修改root密码为例,操作系统为windows. 先要声明一点,大部分情况下,修改MySQL是需要

linux下配置jdk环境变量的三种方法总结_unix linux

一.修改/etc/profile文件当本机仅仅作为开发使用时推荐使用这种方法,因为此种配置时所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题.用文本编辑器打开/etc/profile,在profile文件末尾加入:JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HO

PHP下用rmdir实现删除目录的三种方法小结_php技巧

1.递规法:利用递归一层一层的删.  复制代码 代码如下: deleteDir($dir)   {   if (rmdir($dir)==false && is_dir($dir)) {   if ($dp = opendir($dir)) {     while (($file=readdir($dp)) != false) {      if (is_dir($file) && $file!='.' && $file!='..') {       del