簡體   English   中英

如何防止超級按鈕欄出現在Java應用程序中?

[英]How can I prevent the Charm bar from showing up in my Java application?

我有一個在全屏模式下運行的Java swing程序。 它實際上是一個信息亭程序,因為我希望它在運行時將其他所有內容都鎖定。 這是在Windows 8.1平板電腦上運行的,因此平板電腦當然是觸摸屏,因此,如果您進行“邊緣滑動”(從右側拖動手指),則會彈出超級按鈕,您可以從此處進入“開始”屏幕。 。 有什么辦法可以防止這種情況在Java中發生? (或者是否有一些不涉及Java的第三方解決方案可以協同工作以達到相同的結果?)

通過在窗口上設置System.EdgeGesture.DisableTouchWhenFullScreen屬性,可以在應用程序處於活動和全屏狀態時禁用邊緣手勢。

我不知道Java是否提供直接的方法來設置此設置(可能不是),但是您應該能夠從JNI進行設置。

這是DisableTouchWhenFullScreen文檔中的C ++代碼段:

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;
}

我最終要做的是基於Super User的答案編寫一個批處理腳本,該腳本殺死explorer.exe ,然后在應用程序退出后重新生成它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM