2009-07-16 9 views

Antwort

0

mehrere Instanzen laufen Um zu verhindern, von Ihnen programmieren Sie eine benannte Mutex nutzen könnten.

Siehe this question. Das Gleiche sollte für Windows Mobile gelten.

Ich bin mir nicht sicher, was Sie meinen, indem Sie make auf Ihr Programm zurücksetzen, aber wenn Sie meinen, das Gerät neu zu starten - sollten Sie sich die KernelIoControl Funktion ansehen. Hier finden Sie weitere Informationen zum Thema 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); 
1

Zuerst zu überprüfen, ob das Programm bereits ausgeführt wird, erstellen Sie ein benanntes Objekt auf WinMain (dh. Ein benanntes Mutex), wenn das gelingt, zu schaffen, dann gibt es keine anderen Instanzen des Programms einsetzen, wenn schlägt fehl, weil es existiert, dann wissen Sie, dass eine andere Instanz Ihres Programms ausgeführt wird. In diesem Fall verwendet Findwindow (http://msdn.microsoft.com/en-us/library/aa929233.aspx) für das Fenster der Anwendung zu suchen und dann einfach über SetForegroundWindow in den Vordergrund bringen (http://msdn.microsoft.com/en-us/library/aa923858.aspx)

hoffte, das hilft ...

1

Wenn Sie ein .Net CF haben Framework-Appplikation, dieses Video führt Sie durch Schritt für Schritt, wie Sie dies tun. link text

Danke, Mike

Verwandte Themen