C++ Builder XE4 > YouTube repeater > 고정 초(10) 되감기 * 무한 루프
C++ Builder XE4
秀丸エディタ Version 8.79
처리 개요
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();
}
//---------------------------------------------------------------------------
실행 절차
그 후, 그 부분의 동화상이 연장 재생된다.
Repeat 버튼은 테스트용으로 실운용으로는 사용하지 않는다.
주의
YouTube repeater를 시작하고 Repeat 체크 박스가 켜져있는 한 Chrome에 'j'라는 입력이 계속됩니다.
Chrome에서 Qiita 기사를 쓰는 등 하고 있으면, 거기에 「j」라고 하는 수수께끼의 메시지가 계속 기재된다.
어학 도구
Reference
이 문제에 관하여(C++ Builder XE4 > YouTube repeater > 고정 초(10) 되감기 * 무한 루프), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/637201a7f848ac3f919b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)