
C#的Windows程序是调用的dotNetFramework,而dotNetFramework没有提供这个功能
如果要用C#实现窗口遍历,必须调用WinAPI函数EnumWindows
public class MyClass
{
[DllImport("user32dll", CharSet = CharSetUnicode, EntryPoint = "EnumWindows")]
public static extern int EnumWindows(EnumWindowsCallback callback, int lParam);
public delegate bool EnumWindowsCallback(int hWnd, int lParam);//EnumWindows的回调函数
[DllImport("user32dll")]
public static extern int GetWindowText(int hWnd, StringBuilder title, int size); // 读窗口文本
public List<string> windowsTextNames= new List<string>();
public void my_enumWindows()
{
EnumWindows(new EnumWindowsCallback(FillActiveFormArray), 0);
}
bool FillActiveFormArray(int hWnd, int lParam)
{//API函数EmnuWindows遍历窗口,每当找到一个窗口,就把找到的这个窗口Handle作为参数调用这个函数一次
StringBuilder windowText = new StringBuilder(256);
GetWindowText(hWnd, windowText, 256);
if(windowTextToString() != "")
windowsTextNamesAdd(windowTextToString());
return true;
}
}
按照我所说的步骤进行,得到下图:(在我的贴吧里有(wince吧))
一定制wince60 *** 作系统
1 在VS2005里新建项目中时,选择创建Platform builder for CE 60的OS Design,新项目可以自命名,这里命名为“zhenxing”。
2 创建zhenxing的向导中,BSP一定要选择“Device Emulator: ARMV4I”,下一步;
3 模板(Design Templates)选择“PDA Device”,下一步;
4 选择“Mobile Handheld”,下一步;
5 应用程序(Application & Media)就随自己的需要选择,下一步;
6 网络和通信(Networking & Communications)在此只选择“Local Area Network(LAN)”,下一步;
7 选择完成;
8 选择Acknowledge;
到此工程建完;
二.添加组件(可以根据需要添加,这里主要添加汉字相关的组件)
(1) 添加汉字字库(这里要记得加入,很多人这里没有加入,就出现汉字只看到方框的现象):
1 在Catalog View添加“Core OS”-->“CEBASE”-->“International”-->“Locale Specific support”-->“Chinese (Simplified)”-->“Fonts”-->“SimSun & NSimSum(choose 1)”-->“SimSun & NSimSun”或者“SimSum & NSimSun (Subset 2_50)”;
2 在Catalog View添加“Core OS”-->“CEBASE”-->“International”-->“Locale Specific support”-->“Chinese (Simplified)”-->“GB18030 Data Converter”和“Monotype Imaging AC3 Font Compression”;
(2)添加中文输入法:
在Catalog View添加“Core OS”-->“CEBASE”-->“International”-->“Locale Specific support”-->“Chinese (Simplified)”-->“Input Method Editor”-->“MSPY 30 for Windows Embedded CE”;
(3) VS2005中菜单“项目”-->“zhenxing(项目名)属性”,配置选择“所有配置”,配置属性-->“Build Options”,在“Build Options”中去掉“Enable KITL (no IMGNOKITL=1)” (这里如果加入了KITL功能的话,可能在模拟器运行的时候,会一直是黑屏的);
(4) “Locale”中,Locales先Clear All,然后选择“中文(中国)”,Default local选择“中文(中国)”;
(5) 运行VS2005菜单“生成”-->“生成zhenxing”;
(安装R3后,发现简单的device emuloter 的工程都编译不过去了,
提示don't know how to make atlsdlib 错误,
后来发现在catalog view 中吧 Active Temlate Library 选择上就可以了。
还有一个疑问就是如果我不需要ATL,也需要把这个选择吗
)
三.构建SDK:
1 运行VS2005菜单“项目”-->“Add New SDK…”,在SDK属性页中填写必要的信息,属性“Emulation”中Configuration 选择Debug,可以设置模拟器的显示屏大小及色深,还有内存大小,在此设置为240 x 320,16色深,128M内存,然后“应用”,“确定”。。
2 然后运行VS2005菜单“生成”-->“Build All SDK…”,顺利的话,就会在%WINCEROOT\OSDesigns\ \MyEmulator\MyEmulator\SDKs\SDK1\MSI\下会有zhenxingmsi;
四.配置VS2005:
1、先安装生成好的zhenxingmsi。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到 “zhenxing”,这就是刚刚生成的那个模拟器。下面的设备列表里有两项,双击zhenxing,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。
2、用VS2005新建一个智能设备项目,向导选择平台时,先删除Pocket PC 2003,选择zhenxing,完成。然后按F5运行程序,顺利的话定制的模拟器就会出来了(不过这个过程比较慢,需要等待一段时间)。
SDK不能选Windows Mobile的,要选Wince的SDK,一般只要选对SDK,并在相应的模拟器下运行成功的话,下载到S3C2440开发板上运行时没有问题的,但必须保证你的S3C2440运行的是Wince系统。
以上就是关于用C#开发在WinCE及Windows mobile下运行的程序,如何遍历当前系统中所有可视窗体全部的内容,包括:用C#开发在WinCE及Windows mobile下运行的程序,如何遍历当前系统中所有可视窗体、构建WinCE开发环境时,安装Windows Embedded CE 6.0,Microsoft Device Emulator 2.0的作用、WinCE 局域网应用程序如何在S3C2440开发板下运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)