Я пытаюсь контролировать приложение Skype (UWP, а не рабочий стол) из моего приложения WPF.
Я могу запустить Skype (, это очень помогло! Спасибо, Павел!), Но я не могу двигаться, развернуть, свернуть окно.
Это соответствующая часть кода:
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 для рабочего стола и другими настольными приложениями.
Отличаются ли окна UWP от настольных приложений?