如何从 Java 将焦点集中到 shell 打开文件的默认程序?

2024-03-01

在 Java 中,我使用默认文件处理程序(MS Excel,在本例中:-))打开一个 Excel 文件,使用中描述的方法这个计算器问题 https://stackoverflow.com/questions/2114318/opening-an-excel-file-using-the-default-program:

Desktop dt = Desktop.getDesktop();
dt.open(new File(filename));

然而,Excel 程序并没有成为焦点。有什么简单的方法可以做到吗?

编辑:有一个C# 的相关 stackoverflow 问题 https://stackoverflow.com/questions/1737664/how-to-open-program-through-c-program-and-give-this-program-focus,但我没有找到任何类似的Java方法。

编辑2:我做了一些简单的测试,发现只要没有Excel实例运行,Excel就会启动并获得焦点。当 Excel 已打开且未最小化时,应用程序不会获得焦点。相反,如果 Excel 窗口被最小化,则上述代码将触发窗口最大化并且 Excel 获得焦点(反之亦然:-))。


如果您只关心Windows(问题中暗示),您可以更改调用Excel的方式:使用“cmd start...”。

我使用这段代码来启动 Windows 应用程序已经有一段时间了。每次都有效。它依靠 Windows 中的文件关联来查找应用程序。启动的应用程序成为桌面上的焦点窗口。

在您的情况下,Excel 应与 .xls、.csv 和其他典型扩展名相关联。如果是,Windows 将启动 Excel,并将您的文件传递给它。

Usage:

MyUtilClass.startApplication( "c:\\mydir\\myfile.csv", "my window title" );

file是 Excel 输入文件的完整路径,title是窗口标题(应用程序可能会也可能不会 - Excel 会更改窗口标题)。

public static void startApplication( String file, String title )
{
  try
  {
     Runtime.getRuntime().exec( new String[] { "cmd", "/c", "start", title, file } );
  }
  catch( Exception e )
  {
     System.out.println( e.getMessage() );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Java 将焦点集中到 shell 打开文件的默认程序? 的相关文章

随机推荐

  • 在ctrlp + vim中使用ag

    我想将 ag 银色搜索器 与 ctrlp 和 vim 一起使用 我的 vimrc 中有这个 if executable ag set grepprg ag nogroup nocolor let g ctrlp user command a
  • 为什么 *[checked] 在使用 jQuery 的过滤方法时表现得像 :checked ?

    继从上一个问题 https stackoverflow com questions 8673201 why does checked not match a single checked input box 假设我在加载 jQuery 1
  • 使用动态文件名进行复制

    我正在尝试编写一个函数来将 csv 数据加载到表中 我希望输入参数是文件的路径 CREATE OR REPLACE FUNCTION public loaddata filepathname varchar RETURNS void AS
  • 如何检查 Lucene IndexWriter 实例是否有效/打开?

    抱歉这个简单的问题 但似乎没有任何明显的方法 根据文档 建议保留单个实例IndexWriter存储在内存中 可以一次又一次地用于更新 而不是为每次更改打开和关闭一个内存 这要昂贵得多 然而 文档还指出IndexWriter如果发生异常 例如
  • 我们可以在运行时使用语言选择 UI 本地化 WIX msi 和捆绑包吗?

    我们在 Wix 中创建了 MSI 和捆绑包 我需要对这两者进行本地化 以便弹出语言选择 GUI 并且用户可以在运行时选择语言 如果有人能在这方面帮助我 我将不胜感激 对于 MSI 我正在努力创建另一个引导程序 用于启动语言选择组合框 并使用
  • Kendo UI 网格过滤具有多个值的列

    我一直在使用过滤器在我的 KendoUI 网格上成功搜索 然而 一个新的应用程序有一些多值字段 我的过滤不起作用 它实际上似乎永远旋转 多值字段的示例 field rspPersons title Responsible Persons t
  • 如何使用 Moq 模拟 SqlDataReader - 更新

    我是最小起订量和设置模拟的新手 所以我可以得到一些帮助 如何使用 Moq 模拟 SqlDataReader Update 经过进一步测试 这是我目前所拥有的 private IDataReader MockIDataReader var m
  • 将 charset="utf-8" 添加到 HTML 链接元素有什么效果吗?

    我正在处理一个并非由我创作的 HTML 文档 它包含以下内容 以这种方式指定字符集有什么影响 还是字符集是由 Content Type 响应头确定的 The W3C says http www w3 org International qu
  • react-native-firebase crashlytics 未显示在 firebase 仪表板上

    我正在使用 firebase crashlytics 我这样做导致了崩溃 firebase crashlytics crash and I am not seeing the crash report on the firebase das
  • matlab图中的数据提示定制

    我有一个包含多个图的图表 每个图都来自不同的源文件 我希望数据提示告诉我 X Y 加上源文件的名称 长期以来 我最好的尝试 没有成功 是这样的 dcm datacursormode gcf datacursormode on set dcm
  • 画布下方的白色空白区域

    花了几个小时摆弄代码后 我遇到了一个问题 我创建了一个灰色的 HTML 画布 它将填满整个屏幕 并且它起作用了 但是 即使画布应该是屏幕上唯一可见的对象 当我向下滚动时 页面底部似乎仍然有一个小的白色空白区域 我已经知道这与身体无关 因为我
  • 在框架内打开 https 页面是否存在问题

    我以编程方式创建一个 html 报告 分为两个框架 如果用户随后单击右侧框架上的超链接 则该框架将被页面内容替换 这工作正常 但现在当我尝试链接到任何 Discogs 发布页面时 例如this one https www discogs c
  • 帮助解决密码复杂性正则表达式

    我使用以下正则表达式来验证密码复杂性 6 12 0 9 2 A Z 2 a z 2 简而言之 2个小写字母 2个大写字母 2个数字 最小长度为6 最大长度为12 当我使用最小长度时 除了最大长度之外 它工作得很好 例如 6 0 9 2 A
  • oracle sql 日期不晚于今天

    我需要显示一些数据 如果它是 新数据 更新数据 比方说 我将从发布日期列和更新列中获取这些数据 其中发布日期和更新日期都是时间戳 那么如果是新的日期如何计算呢 过去 24 小时 Where publish date gt sysdate 1
  • Python 中的 Yaml 合并

    所以我正在考虑用 Python 为 Pygame 制作一个小样板库 当然还有任何愿意使用它的人 我想要一个通过 yaml 文件提供应用程序设置的系统 因此 我认为如果库提供默认的 yaml 树并将其与用户提供的树合并 将会很有用 为了可用性
  • 如何同时运行 Windows Phone 7 模拟器的多个实例?

    我正在为 Windows Phone 7 创建多人游戏 如何运行模拟器的多个实例来调试它 您确实可以同时运行 Windows Phone 7 模拟器的多个实例 甚至可以同时调试它们 如我在我的文章中所示博客文章 http blog func
  • shell脚本中的cd命令是否加载目标目录中的rvmrc?

    当你有类似 在projectx内部给出一个 rvmrc文件 指定ruby 1 9 2并且我的系统上有两个ruby ree 1 8 7和ruby1 9 2 bin bash cd applications projectx which rub
  • flex-flow:列换行,在弹性框中导致父容器溢出

    我有这样的场景 https jsfiddle net b6zcdgf7 https jsfiddle net b6zcdgf7 container display flex height 3em border solid thin blue
  • H2数据库用户定义的java函数类未找到

    当我创建一个 ALIAS 来在 H2 数据库中注册 java 函数时 它给出了未找到类的错误 我正在 TCP 连接上运行 h2 数据库 sample public class TimeFrame public static void mai
  • 如何从 Java 将焦点集中到 shell 打开文件的默认程序?

    在 Java 中 我使用默认文件处理程序 MS Excel 在本例中 打开一个 Excel 文件 使用中描述的方法这个计算器问题 https stackoverflow com questions 2114318 opening an ex