C# 将SetWindowPos与UWP(或metro)应用程序一起使用没有效果

C# 将SetWindowPos与UWP(或metro)应用程序一起使用没有效果,c#,winforms,uwp,C#,Winforms,Uwp,我正在尝试从我的WPF应用程序控制Skype应用程序(UWP,而不是桌面)。 我可以启动Skype(帮了大忙!谢谢,Pavel!),但无法移动、最大化或最小化它的窗口。 这是守则的相关部分: uint pid = 0; try { // Launch Skype and get it's process id pid = MetroLauncher.LaunchApp("Microsoft.SkypeApp_14.42.60.0_x64__

我正在尝试从我的WPF应用程序控制Skype应用程序(UWP,而不是桌面)。 我可以启动Skype(帮了大忙!谢谢,Pavel!),但无法移动、最大化或最小化它的窗口。 这是守则的相关部分:

    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与桌面应用程序的工作方式不同吗?

这些API有点复杂。你可能想考虑使用微软UI自动化。我一直在试图找出你的答案如何帮助我几个小时没有成功。不管怎样,谢谢你,米基德。这是一个评论,不是一个回答。我一直想知道你的评论对我有什么帮助,但几个小时都没有成功。无论如何,谢谢你,MickyD。嗨,Juanjo,目前,UWP不支持使用
SetWindowPos
方法调整窗口。这些API有点复杂。你可能想考虑使用微软UI自动化。我一直在试图找出你的答案如何帮助我几个小时没有成功。不管怎样,谢谢你,米基德。这是一个评论,不是一个回答。我一直想知道你的评论对我有什么帮助,但几个小时都没有成功。无论如何谢谢你,MickyD。你好,Juanjo,目前,UWP不支持使用
SetWindowPos
方法调整窗口。