问题标签 [virtual-desktop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1705 浏览

windows-10 - Windows 10 IVirtualDesktopManager::MoveWindowToDesktop

我一直在尝试使用IVirtualDesktopManager::MoveWindowToDesktop在虚拟桌面之间移动窗口。

在我自己的窗口上使用它效果很好,但不幸的是,当我尝试在另一个进程的窗口上使用它时,它会因 E_ACCESSDENIED 而失败。

可悲的是,“以管理员身份启动”还不够好。我是否遗漏了一些我不知道的关于 COM 接口的东西,或者它只是设计不当?

0 投票
0 回答
628 浏览

wpf - 一个没有任务栏图标的窗口,没有出现在 Alt-Tab 中并且*没有*使用 ToolWindow 扩展样式

我有一个似乎是 Windows 10 的新问题。

我想创建一个用户可见的表单,但没有任务栏图标,并且不会出现在Alt+Tab.

如果有人愿意通过遵循此处针对 WPF 或 Windows 窗体的公认解决方案来牺牲窗口的正常样式,这是完全可行的。

WPF 和 Windows 窗体的一般建议是:

  • 设置ShowInTaskbarfalse
  • 启用ToolWindow样式(通过在 WinForms 或WindowStyleWPF 中设置边框样式)

但是,这在 Windows 10 中使用虚拟桌面时有一个新的实际问题:当您执行上述操作时,WPF 或 WinForms 窗口将出现在每个虚拟桌面中。请参阅我的带有红色背景的示例应用程序:

窗口出现在每个虚拟桌面中

这会影响Task View切换屏幕和实际桌面本身。无论你走到哪里,表格都在那里!

有没有办法在 Windows 上显示一个表单——甚至只是一个位图——任务栏中没有任何内容,没有任何内容,Alt+Tab 没有在每个虚拟桌面上复制窗口?

我花了两天时间研究所有可能的选项,在线尝试每个示例,阅读有关窗口样式的 MSDN 文档等,但都采用相同的方法,通过 P/Invoke 调用或直接调用,但无论哪种方式,结果都是相同的。

0 投票
1 回答
152 浏览

virtualization - Ulteo OVD 是用哪种编程语言编写的?

我正在做一个学术项目Virtual Desktop Infrastructure。我想使用开源虚拟桌面软件Ulteo OVD 4.0.2 。但我不知道 Ulteo 编码的是哪种语言。你能告诉我吗?

0 投票
0 回答
129 浏览

java - 识别/设置 JFrame 的虚拟桌面工作区

我想为在多显示器设置和虚拟桌面设置下工作的 Linux 应用程序模拟 Windows-Snap 功能。为什么?我只是这样做,为了踢。如果归根结底,我也可以在 Linux 中使用一些本机 C++ 代码来实现这一点,并使用 JNI 链接到它。

目标:

  • 按 Super 键 + 向右箭头,JFrame 现在在右侧最大化。
  • 再次按 Super 键 + 向右箭头,JFrame 现在在下一个监视器的左侧最大化。

问题:

  • 虚拟桌面是我的问题——我不知道如何在 Java 中检测它们。有谁知道实现这一目标的有用方法?
  • 我需要能够在第二次正确捕捉时将 JFrame 移动到下一个虚拟桌面。

代码:

此代码成功检测到窗口在哪个物理监视器上,但它不适用于虚拟桌面。我没有在这里添加任何捕捉代码,这仅用于监视器检测。如果您想看看:(使用空间并输入交换监视器)

http://pastebin.com/uTAeHsSf

更改虚拟桌面时,代码向我显示了相同的 GraphicsDevice。我正在运行 Lubuntu x64 15.10 并运行 Java x64 版本 8u25。

0 投票
1 回答
2321 浏览

c# - 跨多个 Windows 10 虚拟桌面的持久窗口?

我有多个窗口的 C# WPF 程序。我添加了对 Windows 10 桌面的支持,但用户希望在桌面之间移动时某些窗口留在屏幕上。

例如,如果在第一个桌面上打开窗口 A 并且他们翻转到第二个桌面,他们希望窗口 A 保持在新桌面上的相同位置。

我知道的唯一功能来自 VirtualDesktopManager:

有没有办法做到这一点?

还有一种方法可以检测何时启动桌面翻转?因为如果是这样,我总是可以调用 IsWindowOnCurrentVirtualDesktop(),如果答案是否定的,我可以调用 MoveWindowToDesktop() 将它放在那里。看起来有点像黑客,但如果我有办法检测到桌面变化,就可以完成工作。

0 投票
1 回答
891 浏览

windows - Windows 10 触控板手势编程

我在互联网上查看了一种在 Windows 10 上更改触摸板上不同手势操作的方法,除了触摸板提供商制作的软件外,没有找到任何东西,它只允许我反向滚动和启用/禁用手势。

由于 Windows 10 引入了多个虚拟桌面,并且 3 指滑动手势只允许我在我的实际虚拟桌面中更改窗口,我想知道是否有人知道 Ubuntu 上是否有类似 TouchEgg 的东西。

这是 TouchEgg 允许您做什么以及如何做的示例:http: //www.howtogeek.com/howto/43097/how-to-get-macbook-style-finger-gestures-on-ubuntu-linux /

基本上,有一个配置文件,您可以在其中编写一行代码来为您想要的任何手势设置操作。

0 投票
0 回答
772 浏览

c# - 将其他进程的窗口移动到另一个虚拟桌面

所以我在 Windows 10 下实现了一个类似 win-tab 的界面。我试图将其他进程的窗口移动到另一个虚拟桌面。使用这个问题的 API,我已经可以将自己的应用程序移动到任何桌面。但是当我在调用 MoveWindowToDesktop(IntPtr TopLevelWindow, Guid CurrentDesktop) 时移动其他窗口时,我得到了 E_ACCESSDENIED 作为返回码。在这个 Github 项目中,有人设法将 DLL 挂钩到其他进程,以便用户可以成功触发此功能。

我怎样才能做到这一点?

0 投票
1 回答
2162 浏览

c++ - 如何在 C++/Win32 中使用 IVirtualDesktopManager 接口

我需要从 Win32 搜索最大化的窗口(通过使用EnumWindows),但我也想过滤当前虚拟桌面上的窗口。在 MSDN 上,我找到了一个关于IVirtualDesktopManager接口的页面,但似乎没有关于如何使用这个接口的信息。

引发以下错误:

非静态成员引用必须相对于特定对象

引发此错误:

不允许不完整的类型

我只找到了IVirtualDesktopManager在 C# 中使用接口的解决方案。

0 投票
1 回答
1098 浏览

winapi - 以编程方式更改桌面文件夹位置的最快方法

我想创建一个应用程序,允许用户在不同的 Windows 10 桌面上拥有不同的图标。我可以使用Window Station 和 Desktop 功能以及Virtual Desktop Shell Interface来处理虚拟桌面的切换。所以现在我知道如何检测桌面已被切换,我需要尽快更改桌面用户文件夹的位置。

我知道在用户界面中有两种方法可以做到这一点:

A) 通过用户文件夹的属性

  1. %HomePath%/Desktop在资源管理器中打开
  2. 右键单击背景,打开属性
  3. 在新路径中的选项卡位置类型中
  4. 点击确定然后否(因为您不想移动文件)
  5. 有时需要:点击桌面,按F2

.

B)通过注册表

  1. 换新地址Desktop_HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
  2. 重新登录

.

如果不是用于重新登录部分,则 B 选项将是编程解决方案的理想选择。正如您当然可以理解的那样,这有点破坏交易。

0 投票
1 回答
885 浏览

delphi - 在 Delphi 中使用 IVirtualDesktopManager

我正在尝试在 Windows 10 的 Turbo Delphi 中使用 IVirtualDesktopManager。我没有收到任何错误,但 IsWindowOnCurrentVirtualDesktop 和 GetWindowDesktopId 没有返回任何有用的信息。有谁知道我在这里做错了什么?谢谢。

好的,这是一个简单的例子:这个项目只是一个带有 TMemo 和 Ttimer 的表单。这表明 Form1.handle 不能用于检查窗口是否在当前桌面上。但是,如果您检查 Application.Handle,那么如果您切换到另一个桌面并再次返回,那么 is 将正确返回 false,因此请检查备忘录中写的内容。我觉得这很了不起,因为我认为一个应用程序可以在不同的桌面上显示多个窗口?