WinCE C# 常用API

一:获取存储设备的大小信息
很多底层操作的函数,Visual Studio 2005.NET 的API 库中并没有提供,这个时候,我
们就要在C#开发中调用Win32 的函数来进行相应的操作。一大批Win32 底层操作的函数
都存在于cordll.dll 动态链接库中。
调用Win32 的申明:
using System.Runtime.InteropServices;
在WinCE 下已经没有了驱动器名的概念,文件存储设备都是在WinCE 的根目录下中
以目录的形式出现,可以采用如下方法并调用相应函数来获取存储设备的总的大小和空闲空
间的信息:
[DllImport("coredll.dll")]
private static extern bool GetDiskFreeSpaceEx(string directoryName, ref long
freeBytesAvailable, ref long totalBytes, ref long totalFreeBytes);
调用例子如下:
long freeBytes = 0, totalBytes = 0, totalFreeBytes = 0;
GetDiskFreeSpaceEx("//Nor Flash", ref freeBytes, ref totalBytes, ref totalFreeBytes);

string strtotalBytes = "Nor Flash 磁盘空间大小为:"+totalBytes.ToString()+"Bytes";

 

二:重启系统函数
很多底层操作的函数,Visual Studio 2005.NET 的API 库中并没有提供,这个时候,我
们就要在C#开发中调用Win32 的函数来进行相应的操作。一大批Win32 底层操作的函数
都存在于cordll.dll 动态链接库中。
调用Win32 的申明:
using System.Runtime.InteropServices;
调用“cordll.dll”里的Win32 函数SetCleanRebootFlag( … )和KernelIoControl( … )
可以实现WINCE 系统重新启动, 定义的代码如下:
[DllImport("Coredll.dll")]
extern static int KernelIoControl(int dwIoControlCode, IntPtr lpInBuf, int nInBufSize, IntPtr
lpOutBuf, int nOutBufSize, ref int lpBytesReturned);
[DllImport("Coredll.dll")]
extern static void SetCleanRebootFlag();
可以写成一个系统重启的函数:
public void HardReset()

{
int IOCTL_HAL_REBOOT = 0x101003C;
int bytesReturned = 0;
SetCleanRebootFlag();
KernelIoControl(IOCTL_HAL_REBOOT,IntPtr.Zero,0, IntPtr.Zero, 0, ref bytesReturned);
}
然后在程序里需要重启的地方直接调用HardReset()这个函数即可。

 

 

三:隐藏/显示WINDOWS任务栏

[DllImport("coredll.dll", EntryPoint = "FindWindow")]
public static extern int FindWindow( string lpWindowName, string lpClassName );
[DllImport("coredll.dll", EntryPoint = "ShowWindow")]
public static extern int ShowWindow( int hwnd, int nCmdShow );
public const int SW_SHOW = 5; //显示窗口常量
public const int SW_HIDE = 0; //隐藏窗口常量

public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int Hwnd = FindWindow("HHTaskBar", null);
if (Hwnd != 0)
{
ShowWindow(Hwnd, SW_HIDE); //隐藏任务栏
button2.Enabled = true;
button1.Enabled = false;
}
}

private void button2_Click(object sender, EventArgs e)
{
int Hwnd = FindWindow("HHTaskBar", null);
if (Hwnd != 0)
{
ShowWindow(Hwnd, SW_SHOW); //显示任务栏
button1.Enabled = true;
button2.Enabled = false;
}
}

 

《Windows CE API手册》是Blitz Force团队继 Xarm和ROS开发系统之后之后又一重要作品。本手册收录并翻译了 MSDN Library for Visual Studio 2008 中超过2000 个API函数和宏的资料信息。分为:系统函数、COM函数、驱动函数、网络通信4个大类,有以下特点: 01. 资料权威。本手册中收录的绝大多数函数和宏都取自微软MSDN,权威性比较有保证。部分从DLL中找到的API在MSDN中尚未介绍。我们收录这部分MSDN未介绍的API主要是认为这些API似乎比较重要,希望有熟悉这部分API使用的高手能够多多指教。 02. 分类详细。本手册根据API函数的功能进行了详细分类。通过分类 方便读者查找和扫描学习API,提高学习效率。 03. 提供编程示例和开发经验。本手册取自Xarm开发系统,我们已经用Xarm系统试验了1000个左右的函数,在试验中获得的经验教训都保存在本手册中。用户使用本手册除了可以查询函数的使用方法,还可以参考我们提供的心得体会加深对API的理解。查看Xarm编写的函数示例可以到我们的联系站点下载Xarm 1.0。 04. 不断更新。本手册1.0版在2008年4月底完成后,发给Blitz Force队员做内部测试并收到很多反馈意见,本次发布的是2.0版。我们还会继续努力发布新的版本,根据新系统增加新函数,不断完善旧函数说明,提供更多示例。希望使用本手册的朋友如果发现手册中有错误或者有好的改进意见给我们发邮件或者留言。《作者简介》中有详细的联系方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值