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度旋转然后水平翻转,如下面的屏幕截图所示,这用于新闻电视频道)?
(有没有办法使用C#或Java或Python或Windows批处理脚本?)
答案 0 :(得分:1)
假设它没有disabled,你可以按 ctrl - alt ↓(并将其反转 ctrl - alt ↑)。如果您确实需要以编程方式执行此操作,则Changing Screen Orientation msdn条目包含此c#示例以顺时针旋转屏幕,
// 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
}
}