Hey,
Im trying to minimise a game but i'm having problems. The game doesn't appear to minimse. However the Windows Calculator does. I'll show you some of my code, which is messy and rubbish, so if you could share some source or point me into the right direction on how to minimise a game that would be great. Alot of the code is not needed but i'm that much of a noob :cool:
Thanks in advance :)Code:Option Explicit
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1 'bring to top and stay there
Private Const SWP_NOMOVE = &H2 'don't move window
Private Const SWP_NOSIZE = &H1 'don't size window
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_NOTOPMOST = -2
Private Type POINTAPI
x As Long
Y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type WINDOWPLACEMENT
length As Long
FLAGS As Long
showCmd As Long
ptMinPosition As POINTAPI
ptMaxPosition As POINTAPI
rcNormalPosition As RECT
End Type
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hWnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hWnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWNORMAL = 1
Private sAppName As String, sAppPath As String
Private Sub Command1_Click()
Shell sAppPath, vbMinimizedFocus
End Sub
Private Sub Command2_Click()
'Call EndTask(sAppName)
End Sub
Private Sub Command3_Click()
Dim app_hwnd As Long
Dim ofp As WINDOWPLACEMENT
app_hwnd = FindWindow(vbNullString, sAppName)
ofp.length = Len(ofp)
ofp.showCmd = SW_SHOWMINIMIZED
SetWindowPlacement app_hwnd, ofp
End Sub
Private Sub Command4_Click()
Dim app_hwnd As Long
Dim ofp As WINDOWPLACEMENT
app_hwnd = FindWindow(vbNullString, sAppName)
ofp.length = Len(ofp)
ofp.showCmd = SW_SHOWMAXIMIZED
SetWindowPlacement app_hwnd, ofp
End Sub
Private Sub Form_Load()
sAppName = "Operation Flashpoint"
sAppPath = "C:\Program Files\Codemasters\OperationFlashpoint\FLASHPOINTRESISTANCE.EXE"
Call SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End Sub
Private Sub Mini_Click()
Dim app_hwnd As Long
Dim ofp As WINDOWPLACEMENT
app_hwnd = FindWindow(vbNullString, sAppName)
ofp.length = Len(ofp)
ofp.showCmd = SW_SHOWMINIMIZED
SetWindowPlacement app_hwnd, ofp
End Sub
Private Sub Timer1_Timer()
If GetActiveWindow = 0 Then
Call SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End If
End Sub
