我正在尝试从WPF应用程序控制Skype应用程序(UWP,而不是桌面)。 我可以启动Skype(this帮助很大!谢谢,帕维尔!),但是无法移动,最大化或最小化它的窗口。 这是代码的相关部分:
uint pid = 0;
try
{
// Launch Skype and get it's process id
pid = MetroLauncher.LaunchApp("Microsoft.SkypeApp_14.42.60.0_x64__kzf8qxf38zg5c");
}
catch (global::System.Exception e)
{
MessageBox.Show(e.Message, "global::System.Exception", MessageBoxButton.OK, MessageBoxImage.Error);
}
Process skypeProc = Process.GetProcesses().Where(p => p.Id == pid).SingleOrDefault();
IntPtr handleSkype = skypeProc.MainWindowHandle;
// Remove maximize and minimize controls.
int oldStyle = GetWindowLong(handleSkype, GWL_STYLE);
SetWindowLongPtr(new HandleRef(null, handleSkype), GWL_STYLE, oldStyle & ~WS_MINIMIZEBOX & ~WS_MAXIMIZEBOX & ~WS_THICKFRAME);
// Get screen dimensions
int ScreenX = GetSystemMetrics(SM_CXSCREEN);
int ScreenY = GetSystemMetrics(SM_CYSCREEN);
// Try to alter Skype's main window as I want...
SetWindowPos(handleSkype, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW | SWP_DRAWFRAME);
类似的代码与Skype for Desktop和其他桌面应用程序完美配合。 UWP Windows的工作方式与桌面应用程序不同吗?