語言

InputHapticsManager 類別

定義

若該裝置支援觸覺且最近收到輸入,則提供觸發觸覺回饋的功能。 物件必須在與其建立時相同的執行緒中使用。

public ref class InputHapticsManager sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 1245184)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InputHapticsManager final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 1245184)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Experimental]
class InputHapticsManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 1245184)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InputHapticsManager
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 1245184)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Experimental]
public sealed class InputHapticsManager
Public NotInheritable Class InputHapticsManager
繼承
Object Platform::Object IInspectable InputHapticsManager
屬性

Windows 需求

規格需求 Description
裝置系列
Windows 11, version 24H2 (已於 10.0.26100.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v19.0 引進)

範例

以下範例展示了如何在最近將輸入傳送到當前執行緒的輸入裝置上觸發觸覺波形。 若不支援該波形,將第二個參數 0 傳送,系統可使用特定裝置類型的備援。 範例也處理了 API 無法取得或不支援的情況。

bool SendHapticFeedback(uint16_t waveform)
{
    auto hapticsManagerStatics = winrt::try_get_activation_factory<
        winrt::InputHapticsManager, winrt::IInputHapticsManagerStatics>();

    if (hapticsManagerStatics && hapticsManagerStatics.IsSupported())
    {
        return hapticsManagerStatics
            .GetForCurrentThread()
            .TrySendHapticWaveform(waveform, 0);
    }

    return false;
}

屬性

名稱 Description
CurrentDeviceType

若該裝置支援觸覺且最近收到輸入,則提供觸發觸覺回饋的功能。 物件必須在與其建立時相同的執行緒中使用。

CurrentHapticsController

取得最近將輸入傳送到執行緒的輸入裝置的 SimpleHapticsController 物件(若有覆蓋時則由 SetOverrideHapticsController 設定的控制器)。

CurrentHapticsControllerDeviceType

取得最近一次由執行緒接收輸入的輸入裝置的觸覺裝置類型(若有覆蓋,則由 SetOverrideHapticsController 設定的裝置類型)。

ThreadId

取得擁有這個 InputHapticsManager 物件的執行緒的 ID。

方法

名稱 Description
ClearOverrideHapticsController(HapticsControllerOverrideToken)

清除先前用指定標記設定的 SimpleHapticsController 覆寫。

GetForCurrentThread()

回傳目前執行緒的 InputHapticsManager 物件。

IsHapticDevicePresent()

表示系統中是否存在支援觸覺的裝置,無論最近哪個裝置向呼叫執行緒提供輸入。

IsSupported()

表示系統是否支援 InputHapticsManager 功能。

SetOverrideHapticsController(HapticDeviceType, SimpleHapticsController)

設定管理器應用於方法與屬性的 SimpleHapticsController 與 HapticDeviceType 。 多個覆蓋可以同時啟用,管理者會使用最近提供的那個。

TryGetForThread(UInt32)

若有指定執行緒,則取得 InputHapticsManager 的存取。

TrySendHapticWaveform(UInt16, UInt16, Double)

嘗試在最近將輸入傳送到執行緒的輸入裝置上,以指定波形及強度觸發。 如果第一個波形不被支援,則會使用備援波形。

TrySendHapticWaveform(UInt16, UInt16)

嘗試在最近將輸入傳送到執行緒的輸入裝置上觸發指定的波形。 如果第一個波形不被支援,則會使用備援波形。

TrySendHapticWaveformForDuration(UInt16, UInt16, Double, TimeSpan)

嘗試在最近將輸入輸入傳送到執行緒的輸入裝置上,觸發指定的波形、強度與持續時間。 如果第一個波形不被支援,則會使用備援波形。

TrySendHapticWaveformForPlayCount(UInt16, UInt16, Double, Int32, TimeSpan)

嘗試在最近將輸入輸入傳送到執行緒的輸入裝置上,觸發指定波形、強度、播放次數及重播暫停間隔。 如果第一個波形不被支援,則會使用備援波形。

TryStopFeedback()

嘗試停止最近從管理器接收觸覺波形的輸入裝置上持續播放的觸覺播放。

適用於

另請參閱