首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stylus/Pen离开屏幕时发生的WPF Stylus事件

Stylus/Pen离开屏幕时发生的WPF Stylus事件
EN

Stack Overflow用户
提问于 2020-01-17 10:39:23
回答 5查看 296关注 0票数 5

是否有可能(通过StylusButtonDown等)对按钮按下(即一个手写笔按钮,而不是某个应用程序中的按钮)作出反应,当手写笔/笔没有接触到屏幕时,即在笔记本的某个地方盘旋?只有当笔尖实际接触到屏幕表面时,这些才会触发。具体来说,我不需要知道按钮的位置。按下枪管按钮的时候。

我使用的是微软Surface和它附带的Surface,如果这有什么不同的话。我不需要它是跨平台的,便携的或任何东西。事实上,其他语言的解决方案(C++等)都没问题。黑客解决方案非常受欢迎。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-02-05 01:41:54

AutoHotKey就是答案!

AutoHotKey是一个开源工具,它帮助创建对事件的自定义自动响应。

AutoHotKey支持表面笔。它还支持钢笔远离屏幕的场景。

表面笔通过蓝牙连接到Windows,信号范围为几米。因此,从技术上讲,使用表面笔作为Windows的遥控器是可能的!

最流行的方案之一是,使用Surface作为表示控制器

下面是一个使用Surface控制Powerpoint演示文稿的AutoHotKey脚本:

代码语言:javascript
复制
;  File name: surface-pen-slide-show-control.ahk
;
;  This program helps the presenter scroll through slides, using Surface Pen
;  
;  Single-click on pen button to scroll forward
;  Double-click on pen button to scroll backward
;

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

#IfWinActive ahk_class screenClass
#F20::
  Send, {Right}
Return

#F19::
  Send, {Left}
Return

更多信息和帮助:

票数 1
EN

Stack Overflow用户

发布于 2020-02-01 20:03:23

我可能有解决方案,将与目前使用的技术,如蓝牙和Wifi,是在笔和您的微软表面。但是,您需要自己编写一些部分的程序(大多数提到的技术都在开源库中)。

当你把你的笔和表面贴在一起后,你应该把Wifi和蓝牙连接到笔上。

1.选项

有一个好的文章,解释蓝牙三角测量,我们将使用在近距离的三角笔,除了我们将使用蓝牙和wifi (我们没有第3点),所以它将不那么精确的3分。但是有了两个点,你就可以在这张桌子旁测量距离,在这么小的空间里找到他们的交叉口。

使用与Wifi类似的方法作为第二个三角剖分点,您可以在下面看到Wifi三角测量的源代码。

下一步是校准笔在夹持器中的位置,这意味着笔将位于表面的一侧(为了简化,让我们假设它只在右边较短的一侧)。

由此可以计算出屏幕的面积。

代码语言:javascript
复制
Allowed area:

offsetHeightOfPenScreenRation = ScreenHeight - penHardwareHeight

NonValidX = StartpenPositionX - ScreenWidth < penPositionX or StartpenPositionX < penPositionX

NonValidY = StartpenPositionY - ScreenHeight < penPositionY or StartpenPosition+offsetHeightOfPenScreenRation < penPositionY

penIsClose = not ( NonValidX or NonValidY)

这就是它的工作方式,你需要保持这个软件在后台运行,它可能会对电池有一些严重的影响,你将需要外部的wifi适配器为互联网。

我没有微软的表面,所以我不能自己编码,因为我没有设备来尝试它,但这是工作的想法。由于精度的微调,它可能是真正精确的定位。

2.选项

Wifi三角评估:https://github.com/kevindu/wifi-ap-positioning可以单独使用,如果你能进入钢笔的固件程序,你可以通过蓝牙传输位置,但是这个选项并不是那么精确。

票数 3
EN

Stack Overflow用户

发布于 2020-01-30 14:44:42

据我所知,Microsoft Surface在屏幕上没有传感器。因此,没有任何事件会在触笔/笔靠近屏幕时对其做出反应。

虽然,如果你是一名工程师,你可能会自己创建一些传感器,然后创建事件来对这些事情做出反应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59785709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档