C++ Builder XE4 > YouTube repeater > 고정 초(10) 되감기 * 무한 루프

운영 환경
C++ Builder XE4
秀丸エディタ Version 8.79

처리 개요


  • 체크 박스 ON시, 리피터 기능 ON
  • 반복 시간 (초) : 10 초 (J 키 되감기 시간)

  • YouTube에서 어학 동영상의 특정 문구를 잠시 반복하고 싶을 때 사용합니다.

    예:

    我介瀍一下 (I introduce)

    참고


    FindWindowEx() 하고 나서 GetWindow() 한다.

    코드



    Unit1.h
    //---------------------------------------------------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <System.Classes.hpp>
    #include <Vcl.Controls.hpp>
    #include <Vcl.StdCtrls.hpp>
    #include <Vcl.Forms.hpp>
    #include <Vcl.ExtCtrls.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:    // IDE で管理されるコンポーネント
        TButton *B_repeat;
        TCheckBox *CHK_repeat;
        TTimer *TIMinterval;
        void __fastcall B_repeatClick(TObject *Sender);
        void __fastcall CHK_repeatClick(TObject *Sender);
        void __fastcall TIMintervalTimer(TObject *Sender);
    private:    // ユーザー宣言
        void __fastcall repeatChrome(void);
    public:     // ユーザー宣言
        __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    

    Unit1.cpp
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::B_repeatClick(TObject *Sender)
    {
        repeatChrome();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::repeatChrome(void)
    {
        STARTUPINFO si = {};
        si.cb = sizeof(si);
        PROCESS_INFORMATION pi = {};
    
        CreateProcess(NULL, L"Chrome.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    
        WaitForInputIdle(pi.hProcess, INFINITE);
        CloseHandle(pi.hThread);
        CloseHandle(pi.hProcess);
    
        HWND chromeWindow = GetDesktopWindow();
        chromeWindow = FindWindowEx(chromeWindow, NULL, L"Chrome_WidgetWin_1", NULL);
        HWND chrome = GetWindow(chromeWindow, GW_HWNDNEXT);
    
        SetForegroundWindow(chrome);
        keybd_event('J', 0, 0, 0);
    }
    void __fastcall TForm1::CHK_repeatClick(TObject *Sender)
    {
        if (CHK_repeat->Checked) {
            repeatChrome(); // この時点で巻き戻し
            TIMinterval->Interval = 10 * 1000; // msec (jコマンドの巻き戻しは10秒)
            TIMinterval->Enabled = true;
        } else {
            TIMinterval->Enabled = false;
        }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::TIMintervalTimer(TObject *Sender)
    {
        repeatChrome();
    }
    //---------------------------------------------------------------------------
    

    실행 절차


  • Chrome을 시작하고 YouTube에서 언어 동영상 재생
  • YouTube repeater 시작
  • 반복하려는 타이밍에 YouTube repeater의 'Repeat'확인란을 선택합니다.

    그 후, 그 부분의 동화상이 연장 재생된다.



    Repeat 버튼은 테스트용으로 실운용으로는 사용하지 않는다.

    주의



    YouTube repeater를 시작하고 Repeat 체크 박스가 켜져있는 한 Chrome에 'j'라는 입력이 계속됩니다.

    Chrome에서 Qiita 기사를 쓰는 등 하고 있으면, 거기에 「j」라고 하는 수수께끼의 메시지가 계속 기재된다.

    어학 도구


  • Netflix 동시 자막에서 영어 학습
  • 자신의 TOEIC 점수? 지금부터 살펴 보지 않겠습니까?
  • 매우 세련된 풀 3D 애니메이션 "RWBY"로 배우는 영어
  • [스포일러 주의] 애니메이션으로 시작하는 영어 듣기
  • 좋은 웹페이지 즐겨찾기