home *** CD-ROM | disk | FTP | other *** search
- unit PrevInst;
-
- interface
-
- uses WinProcs, WinTypes, SysUtils;
-
- type
- PHWnd = ^HWnd;
-
- function EnumFunc(Wnd : HWnd; TargetWindow : PHWnd): Bool; export;
- procedure ActivatePreviousInstance;
-
- implementation
-
- function EnumFunc(Wnd : HWnd; TargetWindow : PHWnd): Bool;
- var
- ClassName : array [0..30] of char;
- begin
- Result := True;
- if GetWindowWord(Wnd,GWW_HINSTANCE) = HPrevInst then begin
- GetClassName(Wnd,ClassName,30);
- if StrIComp(ClassName,'TApplication') = 0 then begin
- TargetWindow^ := Wnd;
- Result := False;
- end;
- end;
- end;
-
- procedure ActivatePreviousInstance;
- var
- PrevInstWnd : HWnd;
- begin
- PrevInstWnd := 0;
- EnumWindows(@EnumFunc,Longint(@PrevInstWnd));
- if PrevInstWnd <> 0 then
- if IsIconic(PrevInstWnd) then ShowWindow(PrevInstWnd,SW_RESTORE)
- else
- BringWindowToTop(PrevInstWnd);
- end;
-
- end.
-
-