2016-03-02 2 views
0

Я пытаюсь запустить и .exe из дочерней формы моего основного приложения, но проблема в том, что когда я открываю другой .exe и заканчиваю его работу (сканирование отпечаток пальца) и выход, мое приложение сворачивается, поэтому я стараюсь это:C# Возвращение к родительской форме из другого приложения

[DllImport("user32.dll")] 
    [return: MarshalAs(UnmanagedType.Bool)] 
    static extern bool SetForegroundWindow(IntPtr hWnd); 


    void method { 
    ..........more code........... 
    using (Process proc = new Process()) 
        { 
         proc.StartInfo.FileName = "WindowsFormsApplication3.exe"; 
         proc.Start(); 
         SetForegroundWindow(proc.MainWindowHandle); 
        } 
    ............code here.............. 
    } 

, но он не работает, мое главное приложение потерял фокус, я нахожу много решений, но ни один из них работает для меня, другой .exe - приложение, которое я тоже делаю.

+0

Как запустить .exe (палец сканера печати)? Покажите мне ваш код, пожалуйста, тогда я могу вам помочь ... –

+0

код сканера для печати пальцев? – user2461687

+0

Этот код, который вы написали для запуска .exe-файла ...? –

ответ

1

Если вы хотите активировать окно отпечатка пальца, то ваш код верен! но добавить ожидающий перед тем SetForegroundWindow ... как это:

while (string.IsNullOrEmpty(proc.MainWindowTitle)) 
{ 
    System.Threading.Thread.Sleep(100); 
    proc.Refresh(); 
} 

и, если вы хотите, чтобы активный вид абонента (главное приложение), вам не нужно SetForegroundWindow! Вы можете написать:

while (string.IsNullOrEmpty(proc.MainWindowTitle)) 
{ 
    System.Threading.Thread.Sleep(100); 
    proc.Refresh(); 
} 
// Then active caller form... 
this.Activate(); 

В любом случае, вам нужно ждать, пока окно пальца печати, показанное ...

+0

Большое спасибо, код был прав, я просто внедрил его в плохом виде. – user2461687

+0

Не могли бы вы помочь мне в этой проблеме? http://stackoverflow.com/questions/35763868/c-sharp-flexcode-sdk-verification-not-working – user2461687