相关疑难解决方法(0)

找出注册全球热键的流程?(Windows API)

据我所知,Windows没有提供API函数来告诉应用程序注册了一个全局热键(通过RegisterHotkey).我只能发现如果RegisterHotkey返回false,则注册了热键,但不是"拥有"热键的人.

在没有直接API的情况下,是否会有迂回的方式?Windows维护与每个注册热键相关联的句柄 - 这有点令人抓狂,因此无法获取此信息.

可能不起作用的示例:发送(模拟)已注册的热键,然后拦截Windows将发送给注册它的进程的热键消息.首先,我不认为拦截消息会显示目标窗口句柄.其次,即使有可能,这也是一件坏事,因为发送热键会触发各种程序中各种可能不需要的活动.

这并不重要,但我已经看到了对这种功能的频繁请求,并且我自己也是注册热键的应用程序的受害者,甚至没有在UI或文档中的任何地方公开它.

(在Delphi工作,只不过是WinAPI的学徒,请善待.)

delphi api winapi hotkeys registerhotkey

105
推荐指数
3
解决办法
3万
查看次数

Ctrl + Shift + D不运行文档例程

根据快捷方式帮助(Alt+ Shift+ K)组合Ctrl+ Shift+ D应该运行文档例程.(这也是Hadley Wickhams的第5.1节"R包" http://runsheng.github.io/attachment/r-packages.pdf中所说的.)但是在我的RStudio设置中,它会使所选择的行复杂化(所以我不喜欢不相信这是一个全局使用问题,在这里得出答案:Visual Studio无法识别组合键.在https://support.rstudio.com/hc/en-us/community/posts/201819358-Ctrl-Shift-D-doesn-t-run-document-in-preview-release问题完全是靠一个人,但没有解决方案.我如何让RStudio做它应该做的事情?


我正在使用RStudio版本0.99.902并sessionInfo()给出:

R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252   
[3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] hmi_0.1.0       roxygen2_5.0.1  coda_0.18-1     MASS_7.3-45    devtools_1.12.0

loaded via a namespace (and not attached):
[1] magrittr_1.5    tools_3.3.1     withr_1.0.2     rstudioapi_0.6 …
Run Code Online (Sandbox Code Playgroud)

r rstudio roxygen2

3
推荐指数
1
解决办法
708
查看次数

标签 统计

api ×1

delphi ×1

hotkeys ×1

r ×1

registerhotkey ×1

roxygen2 ×1

rstudio ×1

winapi ×1