В моем приложении есть функция автоматического выхода из системы. Который активируется в зависимости от настроек. Когда пользователь повторно входит в систему с другим именем пользователя, мне приходится удалять существующую форму.
Здесь возникает основная проблема. Когда пользователь открывает приложение из браузера файлов на мобильном телефоне и повторно входит в систему с другим именем пользователя, приложение переходит в фоновый режим. Проводник появляется на переднем плане.
Чтобы преодолеть эту проблему, я использовал SetForegroundWindow из coredll.dll, но это не работает.
Я сделал трек текущего процесса. И поместил его в глобальное место.
[DllImport("coredll.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
if (_autoLogOff)
{
if (cboUsers.Text != Globals.UserName)
{
List<frmAutoLogOff> openedForms = Globals.OpenedForms;
for (int i = openedForms.Count - 1; i >= 0; i--)
{
if (openedForms[i] != null && openedForms[i].Name != "frmMenu1")
{
//openedForms[i].SuspendLayout();
openedForms[i].Dispose();
}
}
}
SetForegroundWindow(currentProcess);
Globals.UserName = cboUsers.Text;
CDataAccess.ShowMessageForUser();
}
Любое предложение или решение будут сердечно приняты.