65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Windows XP 中切换多显示器设置

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.60/5 (2投票s)

2008年4月23日

Apache

2分钟阅读

viewsIcon

64823

downloadIcon

593

使用 Java 自动实现 - “将我的 Windows 桌面扩展到此显示器上”

引言

如果您使用 Windows XP 并且拥有双显示器,那么这篇文章将对您有所帮助。这段代码将启动显示控制“小程序”并向其发送按键(就像您使用键盘导航一样),以将显示器扩展到连接的辅助显示器。

背景

众所周知,使用多个显示器可以帮助提高您的工作效率。有些人觉得使用多个显示器很困惑——这篇文章不是为他们准备的。您可以将电子邮件客户端/日历停靠在一个显示器上,将源代码编辑器(Eclipse)停靠在另一个显示器上。或者,您可以将音乐播放器停靠在一个显示器上,将您假装正在阅读的文章停靠在另一个显示器上。

Using the Code

这段代码是一个完整的应用程序,打包在一个类文件中。要使用这段代码,您只需要

java MultiMon  

代码实现所需结果的简要说明如下

  1. 首先使用以下命令启动显示面板

    Runtime.getRuntime().exec("control.exe desk.cpl,@0,3");  

    这也会选择显示控制面板中的第三个选项卡。

  2. 创建一个 java.awt.Robot 类的实例,该类将帮助我们向显示控制面板发送所需的按键。

  3. 然后我们使用...

    robot.keyPress(KeyEvent.VK_D + KeyEvent.ALT_MASK);  

    ...发送按键,例如上面的 ALT+D 到显示控制面板。依此类推...

  4. 代码发送的按键与您仅使用键盘切换显示器时使用的按键相同。

  5. 使用批处理文件或编译源代码并运行生成的类文件来调用程序。

注意:为了方便使用,该类未包含在任何包中,而是位于默认包中。但是,始终为类使用包是一种推荐的做法。

当然,您需要确保您的机器上安装了 JDK

关注点

  1. 理想情况下,您应该使用 Win32 技术和 Windows API 实现这样的应用程序,以实现必要的结果。但是,我只是使用了 Java...
  2. 我只是了解到我能有多懒,而且我不是唯一一个在 Google 搜索此类解决方案的人。我花了不到一个小时的研究和编写这段代码。如果您有任何积极的评论,我将很高兴听到它们。
  3. 像 nVidia 这样的某些显卡制造商提供提供“增强”桌面扩展的软件。这些可能比 XP 提供的扩展更好。

历史

  • 2008 年 4 月 16 日:创建文章
  • 2008 年 4 月 23 日:根据评论更新文章
© . All rights reserved.