|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我见过net网页编程运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《net网页编程的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。说来讲往,仍是以为API的功效是最壮大的,可是.NETFCL,MFC等对API的封装以后也使得程序的开辟变得加倍简单。本模块的次要道理仍是利用API,查找指定范例,窗口文本的窗口对象,利用C#发送动静,猎取该对象的指针。然后完成C#使用程序间利用C#发送动静操纵该对象。
C#发送动静实例1:
创立一个C#WindowsForm使用程序,向窗口中增加一个按钮button1,增加事务响应函数:- privatevoidbutton1_Click(objectsender,System.EventArgse){MessageBox.Show("Thisisbutton1click!");}
复制代码 C#发送动静实例2:
创立一个C#WindowsForm使用程序,增加一个按钮控件button1
1:C#在使用程序增加usingSystem.Runtime.InteropServices;
2:C#在使用程序增加对API的援用:- [DllImport("user32.dll")]publicstaticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName);[DllImport("user32.dll")]publicstaticexternIntPtrFindWindowEx(IntPtrhwndParent,IntPtrhwndChildAfter,stringlpszClass,stringlpszWindow);[DllImport("user32.dll",CharSet=CharSet.Unicode)]publicstaticexternIntPtrPostMessage(IntPtrhwnd,intwMsg,IntPtrwParam,IntPtrlParam);
复制代码 3:C#在使用程序增加button1的响应函数:- privatevoidbutton1_Click(objectsender,System.EventArgse){IntPtrhwnd_win;//寄存实例1中的Form1窗口的窗口句柄IntPtrhwnd_button;//寄存实例1中的Form1中的button1控件的窗口句柄//参数1:窗口范例,参数2:窗口称号hwnd_win=FindWindow("WindowsForms10.Window.8.app3","Form1");//失掉Form1窗口的句柄。//参数1:父窗口句柄,参数2:子窗口指针;参数3:窗口范例;参数4:窗口文本hwnd_button=FindWindowEx(hwnd_win,newIntPtr(0),"WindowsForms10.BUTTON.app3","button1");//界说待发送的动静constintBM_CLICK=0x00F5;Messagemsg=Message.Create(hwnd_button,BM_CLICK,newIntPtr(0),newIntPtr(0));//向Form1窗口的button1控件发送BM_CLICK动静PostMessage(msg.HWnd,msg.Msg,msg.WParam,msg.LParam);}
复制代码 总结:
实在C#幕后仍是接纳的C#发送动静的处置机制,本创许也充实使用了Windows的动静处置机之。
附带一个猎取窗口范例的技能:利用SPY++就能够猎取任何窗口的窗口范例。
一切的相似于WM_CHAR,WM_COMMAND等动静的值,能够在.Net目次下的WinUser.h文件中查询到。
net网页编程的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。 |
|