如何阻止我的程序多次打开(Windows mobile)?
以及如何重置我的程序(Windows mobile)?
感谢的
答案 0 :(得分:1)
首先,检查你的程序是否已经运行,在WinMain上创建一个命名对象(即一个名为Mutex),如果创建成功,那么程序没有其他实例在运行,如果它失败,因为它存在,那么你知道你的程序还有另一个实例正在运行。在这种情况下,使用FindWindow(http://msdn.microsoft.com/en-us/library/aa929233.aspx)搜索应用程序的窗口,然后通过SetForegroundWindow(http://msdn.microsoft.com/en-us/library/aa923858.aspx)将其带到前台
希望这会有所帮助...
答案 1 :(得分:1)
如果你有一个.Net CF框架应用程序,这个视频如何引导你,逐步测试如何做到这一点。 link text
谢谢, 麦克
答案 2 :(得分:0)
为防止运行您的多个程序实例,您可以使用名为Mutex。
见this question。这同样适用于Windows Mobile。
我不确定你的意思是重置你的程序,但如果你的意思是重启设备 - 你可能想看看KernelIoControl功能。以下是有关如何p/invoke KernelIoControl的更多信息。
[DllImport("coredll.dll")]
public static extern int KernelIoControl(int dwIoControlCode,
IntPtr lpInBuf,
int nInBufSize,
IntPtr lpOutBuf,
int nOutBufSize,
ref int lpBytesReturned);
//.. and the invocation..
int retBytes = 0;
// Reboot device
KernelIoControl(((0x101 << 16) | (15 << 2)), IntPtr.Zero, 0, IntPtr.Zero, 0, ref retBytes);