Чтобы предотвратить запуск нескольких экземпляров вашей программы, вы можете использовать имя 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);