mirror of
https://github.com/hawkeye-stan/msfs-popout-panel-manager.git
synced 2024-11-22 13:50:14 +00:00
Version 2.0.1
This commit is contained in:
parent
b842428d27
commit
be6932d46e
4 changed files with 12 additions and 20 deletions
|
@ -5,7 +5,7 @@
|
||||||
<TargetFramework>net5.0-windows</TargetFramework>
|
<TargetFramework>net5.0-windows</TargetFramework>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
<Version>2.0</Version>
|
<Version>2.0.1</Version>
|
||||||
<AssemblyName>MSFSPopoutPanelManager</AssemblyName>
|
<AssemblyName>MSFSPopoutPanelManager</AssemblyName>
|
||||||
<RootNamespace>MSFSPopoutPanelManager</RootNamespace>
|
<RootNamespace>MSFSPopoutPanelManager</RootNamespace>
|
||||||
<ApplicationIcon>WindowManager.ico</ApplicationIcon>
|
<ApplicationIcon>WindowManager.ico</ApplicationIcon>
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace MSFSPopoutPanelManager
|
||||||
var processZero = GetProcessZero();
|
var processZero = GetProcessZero();
|
||||||
|
|
||||||
// Move process zero childs back into simulator process
|
// Move process zero childs back into simulator process
|
||||||
MoveChildWindowsIntoSimulatorPrcess(simulatorProcess, processZero);
|
MoveChildWindowsIntoSimulatorProcess(simulatorProcess, processZero);
|
||||||
|
|
||||||
if (simulatorProcess.ChildWindows.Count > 0)
|
if (simulatorProcess.ChildWindows.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@ namespace MSFSPopoutPanelManager
|
||||||
|
|
||||||
// Now all newly pop out windows are in process zero, move them into flight simulator process
|
// Now all newly pop out windows are in process zero, move them into flight simulator process
|
||||||
processZero = GetProcessZero();
|
processZero = GetProcessZero();
|
||||||
MoveChildWindowsIntoSimulatorPrcess(simulatorProcess, processZero);
|
MoveChildWindowsIntoSimulatorProcess(simulatorProcess, processZero);
|
||||||
|
|
||||||
// Analyze the content of the pop out panels
|
// Analyze the content of the pop out panels
|
||||||
AnalyzePopoutWindows(simulatorProcess, profileId);
|
AnalyzePopoutWindows(simulatorProcess, profileId);
|
||||||
|
@ -136,7 +136,7 @@ namespace MSFSPopoutPanelManager
|
||||||
return String.IsNullOrEmpty(title.ToString()) ? null : title.ToString();
|
return String.IsNullOrEmpty(title.ToString()) ? null : title.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MoveChildWindowsIntoSimulatorPrcess(WindowProcess simulatorProcess, WindowProcess processZero)
|
private void MoveChildWindowsIntoSimulatorProcess(WindowProcess simulatorProcess, WindowProcess processZero)
|
||||||
{
|
{
|
||||||
// The popout windows such as PFD and MFD attached itself to main window for Process ID zero instead of the MSFS process.
|
// The popout windows such as PFD and MFD attached itself to main window for Process ID zero instead of the MSFS process.
|
||||||
// Moving these windows back into MSFS main window
|
// Moving these windows back into MSFS main window
|
||||||
|
@ -238,14 +238,13 @@ namespace MSFSPopoutPanelManager
|
||||||
var rect = new Rect();
|
var rect = new Rect();
|
||||||
PInvoke.GetClientRect(windowHandle, out rect);
|
PInvoke.GetClientRect(windowHandle, out rect);
|
||||||
|
|
||||||
switch (rect.Right)
|
switch (rect.Bottom)
|
||||||
{
|
{
|
||||||
case 1920:
|
case 1080:
|
||||||
return FlightSimResolution.HD;
|
return FlightSimResolution.HD;
|
||||||
case 2560:
|
case 1440:
|
||||||
case 3440:
|
|
||||||
return FlightSimResolution.QHD;
|
return FlightSimResolution.QHD;
|
||||||
case 3840:
|
case 2160:
|
||||||
return FlightSimResolution.UHD;
|
return FlightSimResolution.UHD;
|
||||||
default:
|
default:
|
||||||
return FlightSimResolution.QHD;
|
return FlightSimResolution.QHD;
|
||||||
|
@ -327,9 +326,9 @@ namespace MSFSPopoutPanelManager
|
||||||
var point = new Point { X = x, Y = y };
|
var point = new Point { X = x, Y = y };
|
||||||
Cursor.Position = new Point(point.X, point.Y);
|
Cursor.Position = new Point(point.X, point.Y);
|
||||||
|
|
||||||
PInvoke.mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
|
PInvoke.mouse_event(MOUSEEVENTF_LEFTDOWN, point.X, point.Y, 0, 0);
|
||||||
Thread.Sleep(200);
|
Thread.Sleep(200);
|
||||||
PInvoke.mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
|
PInvoke.mouse_event(MOUSEEVENTF_LEFTUP, point.X, point.Y, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AnalyzePopoutWindows(WindowProcess simulatorProcess, int profileId)
|
private void AnalyzePopoutWindows(WindowProcess simulatorProcess, int profileId)
|
||||||
|
|
|
@ -42,17 +42,8 @@ namespace MSFSPopoutPanelManager
|
||||||
const uint KEYEVENTF_KEYUP = 0x2;
|
const uint KEYEVENTF_KEYUP = 0x2;
|
||||||
const uint VK_RMENU = 0xA5; // Right Alternate key
|
const uint VK_RMENU = 0xA5; // Right Alternate key
|
||||||
|
|
||||||
//const int WM_LBUTTONDOWN = 0x201;
|
|
||||||
//const int WM_LBUTTONUP = 0x202;
|
|
||||||
|
|
||||||
foreach (var coor in screenCoordinates)
|
foreach (var coor in screenCoordinates)
|
||||||
{
|
{
|
||||||
//PInvoke.keybd_event(Convert.ToByte(VK_RMENU), 0, KEYEVENTF_EXTENDEDKEY, 0);
|
|
||||||
//PInvoke.SendMessage(simulatorHandle, WM_LBUTTONDOWN, 1, CreateLParam(coor.X, coor.Y));
|
|
||||||
//Thread.Sleep(200);
|
|
||||||
//PInvoke.SendMessage(simulatorHandle, WM_LBUTTONUP, 0, CreateLParam(coor.X, coor.Y));
|
|
||||||
//PInvoke.keybd_event(Convert.ToByte(VK_RMENU), 0, KEYEVENTF_KEYUP, 0);
|
|
||||||
|
|
||||||
// Move the cursor to the flight simulator screen then move the cursor into position
|
// Move the cursor to the flight simulator screen then move the cursor into position
|
||||||
PInvoke.SetCursorPos(0, 0);
|
PInvoke.SetCursorPos(0, 0);
|
||||||
PInvoke.SetCursorPos(coor.X, coor.Y);
|
PInvoke.SetCursorPos(coor.X, coor.Y);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# Version History
|
# Version History
|
||||||
<hr/>
|
<hr/>
|
||||||
|
## Vesion 2.0.1.0
|
||||||
|
* Change how screen resolution is detected. Used vertical instead of horizontal resolution to account for ultra wide monitors.
|
||||||
|
|
||||||
## Version 2.0.0.0
|
## Version 2.0.0.0
|
||||||
* Used new image recognition instead of OCR technology to determine pop outs.
|
* Used new image recognition instead of OCR technology to determine pop outs.
|
||||||
|
|
Loading…
Reference in a new issue