WinAPI、VB6.0、C#

网上找了个WinAPI的例子不过是VB6.0版的,赶快上亦彩载了个mini,哇!好久没看到这个界面了!

记得高一的时候,一个个子趋于无穷大(至少他很高)、头发有些发白的老头在卖力地为我们讲VB6.0,当时的我们简直个个瞪着眼、坐在教室里不知道在讲什么。有一个算是比较high的懂得要实现Timer控件的事件应该在哪里写代码,当时上机的时候旁边的人都把他奉为神,个个都嘲他喊:晓杰晓杰快过来!SOS哦。呵呵,记得当时下课后教室里的人都走光了,我还围着高老头问啊问,想问出什么东西来。当时的我挺甚解的吧?至少现在上完课后我再也不会围着老师问问题了,因为这个专业确实very null!说这些是为了怀念一下我的那个高老头,学校里唯一骑自行车的老师…好了,废话少来,直切主题:

vb6.0

相信很多看了这张图片后都会觉得很熟悉,几年前就是用这个工具来作试验的,不过现在还用VB6.0的应该少了吧,或者用更高的版本了。

这是一个使用WinAPI的小应用程序,可以获取任何窗体(object)的名称、句柄、类名等,通过使用GetWindowText、GetClassName、GetCursorPos 来获取窗体的名称、类名或者显示隐藏鼠标。下面举个例子来说明:

in VB6.0:

' 声明POINTAPI类型,字段X、Y为当前鼠标坐标

Public  Type POINTAPI
As   Long
As   Long
End  Type

' 声明GetCursorPos  API,该API位于user32.dll内
Public   Declare   Function  GetCursorPos  Lib   " user32 "  (lpPoint  As  POINTAPI)  As   Long

GetCursorPos tPA
'  从窗体坐标获取窗体句柄
lhWnd  =  WindowFromPoint(tPA.X, tPA.Y)
'  获取窗体标题,存在sTitle
GetWindowText(lhWnd, sTitle,  255 )

in C#:

// 声明POINT结构体
[StructLayout(LayoutKind.Sequential)]
public   struct  POINT
{
    public   int  X;
    public   int  Y;

public  POINT( int  x,  int  y)
{
    this .X  =  x;
    this .Y  =  y;
}

public   static   implicit   operator  System.Drawing.Point(POINT p)
{
    return   new  System.Drawing.Point(p.X, p.Y);
}

public   static   implicit   operator  POINT(System.Drawing.Point p)
{
    return   new  POINT(p.X, p.Y);


//定制属性:获取当前坐标窗体的句柄
[DllImport( " user32.dll " )]
public   static   extern  IntPtr WindowFromPoint(POINT Point);

// 获取光标位置
System.Drawing.Point ptCursor  =  Cursor.Position;

// 把坐标信息赋给POINT结构体
POINT ptCurrent  =   new  POINT(ptCursor.X, ptCursor.Y);

// 通过坐标信息获得当前对象的句柄
hWindows  =  WindowFromPoint(ptCurrent);

// 有了该句柄就可以做很多工作了:判断该对象是不是一个窗体
isWindows  =  IsWindowVisible(hWindows);

// 设置该窗体处于最前端
if  (isWindows  ==   true )
{
    WinAPIUtilty.SetWindowPos(
this .Handle,  - 1 0 0 0 0 3 );
}

 上面给的是几个WinAPI的简单例子,事实上当我从网上找到《Windows API大全》就像是得到武林密籍一样,有一种想翻遍Gates老底---Windows的冲动!在C#里实现一些很实用的功能原来这么简单,像开关CD驱动器、排列窗体等等。

使用WinAPI我又写了一个小程序,是用来排列任意窗口的。有些时候我们的窗口开多了,想要使一个窗口固定在最上方,另一个窗口在它下面作观察对比,而我们的屏幕太小了(我的只有15"^_^)或是一些笔记本,这时这个小程序显得很有用。这里有一篇说明


转载于:https://www.cnblogs.com/Doho/archive/2006/12/31/608944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LabVIEW是一种基于图形化编程的系统设计平台,而WinAPI是Windows应用程序开发接口。LabVIEW与WinAPI结合使用,可以为LabVIEW提供更多的功能和灵活性。 首先,WinAPI提供了许多Windows操作系统的功能接口,可以让LabVIEW能够与操作系统进行交互,实现更多底层的操作。例如,通过WinAPI,LabVIEW可以调用Windows的文件管理接口,实现对文件的创建、移动、删除等操作。而且还可以通过调用WinAPI的网络接口,实现与网络设备的通信。 其次,LabVIEW通过与WinAPI结合,能够实现更高级的用户界面设计。WinAPI提供了丰富的界面控件和事件处理接口,与LabVIEW的图形化编程特性相结合,可以更加自由地设计出复杂而交互性强的用户界面。同时,利用WinAPI的窗口管理功能,还可以更好地控制图形界面的显示与隐藏,提高界面的用户体验。 此外,通过调用WinAPI函数,LabVIEW可以直接访问Windows的系统资源,如注册表、系统设置等。这为LabVIEW扩展了更大的功能范围,可以实现更多高级的应用。例如,通过WinAPI函数,LabVIEW可以实现与其他已经安装在Windows系统中的应用程序的交互,如调用微软的Office套件进行数据处理等。 综上所述,LabVIEW与WinAPI结合使用,为LabVIEW的开发者提供了更多丰富的功能和灵活性。通过调用WinAPI的接口,可以实现与操作系统的交互、实现更复杂和优化的用户界面以及实现更多高级的应用功能。这样,LabVIEW能够更好地满足各种应用场景的需求,并提供更好的开发体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值