栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

您如何强制Java swt程序“将自身移至前台”?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

您如何强制Java swt程序“将自身移至前台”?

http://github.com/rdp/redcar/commit/d7dfeb8e77f13e5596b11df3027da236f23c83f0

展示了我如何在Windows中执行此操作(使用ffi)。

几个有用的技巧“可能”是

在BringToFront.SetForegroundWindow(wanted)调用之后添加一个“ sleep 0.1”(希望这个实际上不是必需的)。

将窗口置于前景 后, 添加一个shell.set_active 。由于某种原因,forceActive不会调用setActive。

注意,setActive会执行user32.dll BringWindowToTop调用,并且需要在分离线程输入之前完成。

还要注意的是,如果您可以按正确的顺序调用,则可能根本不需要使用线程输入技巧(?)。

http://betterlogic.com/roger/?p=2950

(包含一些有关如何 正确 执行此操作的好提示)

在Linux上,forceActive 确实可以 工作-但仅在您移至其他几个窗口之前,然后在任务栏中闪烁(仅此之后)。猜测swt错误。[1]

也相关:

如何把窗户放到前面?

http://github.com/jarmo/win32screenshot/blob/master/lib/win32/screenshot/bitmap_maker.rb#L110
“ set_foreground”似乎可以 同时使用 xp和Windows 7

[1] 需要在Windows和https://bugs.eclipse.org/bugs/show_bug.cgi?id=303710
上将应用程序置于前台



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号