public async Task Run(IProcess process, VoiceroidAction action)
        {
            ValidateArgumentNull(process, nameof(process));

            if (
                process.MainWindowHandle == IntPtr.Zero ||
                action == VoiceroidAction.None)
            {
                return;
            }

            // VOICEROIDのメインウィンドウ作成
            var processWin = new Win32Window(process.MainWindowHandle);

            // アクション別メソッド作成
            Action method = null;

            switch (action)
            {
            case VoiceroidAction.Forward:
                method = () => this.DoForwardAction(processWin);
                break;

            case VoiceroidAction.StopFlash:
                method = () => this.DoStopFlashAction(processWin);
                break;

            default:
                return;
            }

            // メソッド実施
            await this.MainWindow.Dispatcher.InvokeAsync(method);
        }
        public async Task Run(IProcess process, VoiceroidAction action)
        {
            if (process == null)
            {
                throw new ArgumentNullException(nameof(process));
            }
            if (
                process.MainWindowHandle == IntPtr.Zero ||
                action == VoiceroidAction.None)
            {
                return;
            }

            // VOICEROIDのメインウィンドウ作成
            var processWin = new Win32Window(process.MainWindowHandle);

            // アクション別メソッド作成
            Action method = null;
            switch (action)
            {
            case VoiceroidAction.Forward:
                method = () => this.DoForwardAction(processWin);
                break;

            case VoiceroidAction.StopFlash:
                method = () => this.DoStopFlashAction(processWin);
                break;

            default:
                return;
            }

            // メソッド実施
            await this.Window.Dispatcher.InvokeAsync(method);
        }
예제 #3
0
 /// <summary>
 /// VOICEROIDプロセスに対してアクションを行う。
 /// </summary>
 /// <param name="process">VOICEROIDプロセス。</param>
 /// <param name="action">アクション種別。</param>
 private Task RaiseVoiceroidAction(IProcess process, VoiceroidAction action) =>
 this.VoiceroidActionService.Run(process, action);
예제 #4
0
 Task IVoiceroidActionService.Run(IProcess process, VoiceroidAction action) =>
     Task.FromResult(0);
예제 #5
0
 Task IVoiceroidActionService.Run(IProcess process, VoiceroidAction action) =>
 Task.FromResult(0);