![]() |
|
|
|
|
#1
|
|||
|
|||
|
Уважаемые,
пытаюсь сделать: при попытке пользователя запустить второй экземпляр программы, отобразить первый, несмотря на его состояние (свернут, не активен..) получаю:результат успешен, однако после проведенных операций фигурирует баг. баг: после восстановления окна первого экземпляра не работает функция сворачивания окна. При этом закрыть окно и максимизировать его возможно. Код:
h := FindWindow('TfrmMain','%form_title%');
if h <> 0 then
begin
//если окно не отображено на экране
//то максимизировать его
if not IsWindowVisible(h) then
ShowWindow(h,sw_showmaximized);
//выставляем окно на передний план
SetForeGroundWindow(h);
end
else
begin
Application.Initialize;
...
Application.Run;
end; |
|
#2
|
||||
|
||||
|
Код:
procedure BringToFront(AHandle: HWND); var AThreadId: Cardinal; AProcessId: Cardinal; begin AThreadId:=GetCurrentThreadId; AProcessId:=GetWindowThreadProcessId(GetForegroundWindow, nil); AttachThreadInput(AThreadId, AProcessId, True); ShowWindow(AHandle, SW_RESTORE); SetForegroundWindow(AHandle); AttachThreadInput(AThreadId, AProcessId, False); end; |
|
#3
|
|||
|
|||
|
Не помогло
![]() |
|
#4
|
||||
|
||||
|
это работает? http://zalil.ru/34833170
Последний раз редактировалось NumLock, 02.12.2013 в 15:38. |
|
#5
|
|||
|
|||
|
А нельзя закинуть на нормальный файлообменник? А то мне не скачать.
|
|
#6
|
||||
|
||||
|
|