Windows操作系统,如何应用屏幕反映为x?

时间:2015-12-13 21:11:48

标签: java c# python windows batch-file

Windows 7,8,10我仍然无法在linux reflect x中执行此操作。

在Linux中,这非常有效:export DISPLAY=:0.0 && xrandr --output $a --reflect x

但我现在需要为Windows 7,8,10做完整的应用程序。

然而,在Windows中我找不到任何选项来执行此操作。

如何在Windows中执行reflect x(180度旋转然后水平翻转,如下面的屏幕截图所示,这用于新闻电视频道)? enter image description here

(有没有办法使用C#或Java或Python或Windows批处理脚本?)

1 个答案:

答案 0 :(得分:1)

假设它没有disabled,你可以按 ctrl - alt (并将其反转 ctrl - alt )。如果您确实需要以编程方式执行此操作,则Changing Screen Orientation msdn条目包含此示例以顺时针旋转屏幕,

// initialize the DEVMODE structure
DEVMODE dm = new DEVMODE();
dm.dmDeviceName = new string(new char[32]);
dm.dmFormName = new string(new char[32]);
dm.dmSize = Marshal.SizeOf(dm);

if (0 != NativeMethods.EnumDisplaySettings(null,
         NativeMethods.ENUM_CURRENT_SETTINGS, ref dm))
{
   // swap width and height
   int temp = dm.dmPelsHeight;
   dm.dmPelsHeight = dm.dmPelsWidth;
   dm.dmPelsWidth = temp;

   // determine new orientation
   switch(dm.dmDisplayOrientation)
   {
      case NativeMethods.DMDO_DEFAULT:
         dm.dmDisplayOrientation = NativeMethods.DMDO_270;
         break;
      case NativeMethods.DMDO_270:
         dm.dmDisplayOrientation = NativeMethods.DMDO_180;
         break;
      case NativeMethods.DMDO_180:
         dm.dmDisplayOrientation = NativeMethods.DMDO_90;
         break;
      case NativeMethods.DMDO_90:
         dm.dmDisplayOrientation = NativeMethods.DMDO_DEFAULT;
         break;
      default:
         // unknown orientation value
         // add exception handling here
         break;
   }

   int iRet = NativeMethods.ChangeDisplaySettings(ref dm, 0);
   if (NativeMethods.DISP_CHANGE_SUCCESSFUL != iRet)
   {
      // add exception handling here
   }
}