InputInjector를 이용해 WinUi 앱으로 마우스 버튼 가상 클릭하기
윈도우즈 api를 이용하지 않고 부드럽게 WinUi 앱으로 마우스 버튼을 가상으로 클릭하게 할 수 있다.
unpackaged administrator로만 가능하다.
project > properties > application > packaging > msix packaging uncheck
app.manifest
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Package.appxmanifest
<Package
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="rescap">
<Capabilities>
<rescap:Capability Name="inputInjectionBrokered" />
</Capabilities>
</Package>
using Windows.UI.Input.Preview.Injection;
void ClickMouseLeftButton()
{
InputInjector injector = InputInjector.TryCreate();
InjectedInputMouseInfo down = new() { MouseOptions = InjectedInputMouseOptions.LeftDown };
InjectedInputMouseInfo up = new() { MouseOptions = InjectedInputMouseOptions.LeftUp };
injector.InjectMouseInput([down, up]);
}