Как запретить моей программе открываться более одного раза (Windows Mobile) - PullRequest
0 голосов
/ 16 июля 2009

Как запретить моей программе открываться более одного раза (Windows Mobile)?

и как я могу сделать сброс в моей программе (Windows Mobile)?

благодарственное в

Ответы [ 3 ]

1 голос
/ 16 июля 2009

Во-первых, чтобы проверить, запущена ли ваша программа, создайте именованный объект в WinMain (т. Е. Именованный Mutex), если создание завершилось успешно, других экземпляров вашей программы не будет, если она завершится неудачно, потому что она существует , тогда вы знаете, что запущен еще один экземпляр вашей программы. В этом случае используйте FindWindow (http://msdn.microsoft.com/en-us/library/aa929233.aspx) для поиска окна вашего приложения, а затем просто перенесите его на передний план через SetForegroundWindow (http://msdn.microsoft.com/en-us/library/aa923858.aspx)

надеюсь, это поможет ...

1 голос
/ 17 июля 2009

Если у вас есть приложение .Net CF Framework, вы узнаете, как это сделать с видео, шаг за шагом проверяя, как это сделать. текст ссылки

Спасибо, Mike

0 голосов
/ 16 июля 2009

Чтобы предотвратить запуск нескольких экземпляров вашей программы, вы можете использовать имя Mutex .

См. этот вопрос . То же самое должно относиться к Windows Mobile.

Я не уверен, что вы подразумеваете под make reset в вашей программе, но если вы имеете в виду перезагрузку устройства - вы можете взглянуть на функцию KernelIoControl . Вот больше информации о том, как p / вызвать 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);
...