Ejemplo n.º 1
0
            // 音声を保存する際に、別スレッドで保存ダイアログを処理するため
            private void SaveVoice_Dialog()
            {
                while (true)
                {
                    Thread.Sleep(10);
                    var wcm = new WindowControllerManager("音声ファイルの保存");
                    var dlg = wcm.GetTop();
                    if (dlg == null)
                    {
                        continue;
                    }
                    if (wcm.GetChiledByClassName("Edit") == null)
                    {
                        continue;
                    }
                    if (wcm.GetChiledByText("保存(&S)") == null)
                    {
                        continue;
                    }

                    var dir       = save_dir_path;
                    var name_head = output_name + "_";
                    var file_type = "wav";

                    var text_box  = wcm.GetChiledByClassName("Edit");
                    var file_path = CreateNextPathByVoiceRoid(dir, name_head, file_type);
                    text_box.SendText(file_path);

                    // 入力が正常にされてるかチェック
                    // 正常に動作していない場合は、時間をおいて再入力
                    var text          = text_box.GetText();
                    var i             = 0;
                    var re_set_marign = 10;
                    while (text != file_path)
                    {
                        Console.WriteLine("NG");
                        WaitSleep.Do(10);
                        if (i % re_set_marign == 0)
                        {
                            text_box.SendText(file_path);
                        }
                        i++;
                    }

                    WaitSleep.Do(10);
                    var ok_button = wcm.GetChiledByText("保存(&S)");
                    ok_button.ClickL();
                    WaitSleep.Do(10);

                    break;
                }
            }
Ejemplo n.º 2
0
            // 下記のコードが散らばるのを避けるのと、処理の重複を気にして関数にまとめている
            // var wcm = new WindowControllerManager(app_title);
            // is_update_force : true にすると強制的に、新しいWindowControllerManagerを用意する
            private WindowControllerManager GetWCM(bool is_update_force = false)
            {
                if (window_controller_manager == null)
                {
                    window_controller_manager = new WindowControllerManager(app_title);
                }
                else if (window_controller_manager.GetTop() == null)
                {
                    window_controller_manager = new WindowControllerManager(app_title);
                }
                else if (is_update_force)
                {
                    window_controller_manager = new WindowControllerManager(app_title);
                }

                return(window_controller_manager);
            }