gpt4 book ai didi

actionscript-3 - 在全屏运行时禁用多点触控应用程序的 Windows 8 边缘手势/热角

转载 作者:行者123 更新时间:2023-12-03 23:34:09 24 4
gpt4 key购买 nike

我有一个在 Windows 7 中运行的带有 Adob​​e AIR 的全屏 AS3 游戏 maby。
在这个游戏中退出可能并不容易(想想 kiosk 模式,只能按 esc 并输入密码退出)。

现在我想让这款游戏在 Windows 8 中运行。游戏运行正常,但令人讨厌的是这些边缘手势/热角(左、上、右、下)和快捷方式。

我读过文章,但没有人帮助我。人们谈论注册编辑,但我没有得到这个工作+用户需要重新启动他/她的计算机。

我想打开我的游戏,关闭手势/热角,当游戏关闭时,手势/热角需要再次可用。

我已经看到一些应用程序在做我想要完成的事情。

我找到了 this所以我能够检测到手势。但是如何忽略它们的行为呢?

我也看了ASUS Smart Gestures但这是针对触摸板的。

我试过 Classic Shell但我需要在没有这些程序的情况下禁用边缘手势/热角,只是在运行中。

我还找到了 this但我不知道如何实现这一点。

HRESULT SetTouchDisableProperty(HWND hwnd, BOOL fDisableTouch)
{
IPropertyStore* pPropStore;
HRESULT hrReturnValue = SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(&pPropStore));
if (SUCCEEDED(hrReturnValue))
{
PROPVARIANT var;
var.vt = VT_BOOL;
var.boolVal = fDisableTouch ? VARIANT_TRUE : VARIANT_FALSE;
hrReturnValue = pPropStore->SetValue(PKEY_EdgeGesture_DisableTouchWhenFullscreen, var);
pPropStore->Release();
}
return hrReturnValue;
}

有谁知道我怎么能做到这一点?或者指出我正确的方向?

我在 C# 和 C++ 中尝试过一些,但我不是一个熟练的 C#/C++ 开发人员。此外,游戏是在 AS3 中制作的,因此很难在 C#/C++ 中实现。

我在 Lenovo aio (All in one) 上工作使用 Windows 8。

最佳答案

我正在尝试做同样的事情。下面的 C++ 在每个正在运行的应用程序/窗口上禁用 Win8 手势。正如 JonoRR 所提到的,下一步将仅在您想要定位的 HWND 上调用它。如果目标应用程序关闭,然后重新打开,手势将返回。

#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <propsys.h>
#include <propkey.h>

using namespace std;

HWND windowHandle;

HRESULT SetTouchDisableProperty(HWND hwnd, BOOL fDisableTouch)
{
IPropertyStore* pPropStore;
HRESULT hrReturnValue = SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(&pPropStore));
if (SUCCEEDED(hrReturnValue))
{
PROPVARIANT var;
var.vt = VT_BOOL;
var.boolVal = fDisableTouch ? VARIANT_TRUE : VARIANT_FALSE;
hrReturnValue = pPropStore->SetValue(PKEY_EdgeGesture_DisableTouchWhenFullscreen, var);
pPropStore->Release();
}
return hrReturnValue;
}

BOOL CALLBACK MyEnumProc(HWND hWnd, LPARAM lParam)
{
TCHAR title[500];
ZeroMemory(title, sizeof(title));

GetWindowText(hWnd, title, sizeof(title)/sizeof(title[0]));
SetTouchDisableProperty(hWnd,true);

_tprintf(_T("Value is %s\n"), title);

return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
EnumWindows(MyEnumProc, 0);
return 0;
}

关于actionscript-3 - 在全屏运行时禁用多点触控应用程序的 Windows 8 边缘手势/热角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com