HTA를 사용하여 Automation Anywhere에서 Bot 실행 중 자막 표시
4825 단어 AutomationAnywhereRPAhta
만들게 된 계기
RPA를 사용하여 데모와 데모 동영상을 만들 때가 종종 있지만,
표준에 갖추어진 Message Box에서는 문자가 작고 알기 어렵기 때문에,
동영상 편집 소프트로 넣을 것 같은 자막을 Bot측에서 생성할 수 있도록 해 보았습니다.
HTA(HTML Applications)라는 상당히 오래된 기술을 사용한 방법이므로, 언제까지 사용할 수 있는지 모르는 곳이 불안한 곳입니다.
참고로 한 페이지
HTML Applications Part 1 - Qiita
HTA에서 런타임 인수 얻기 -Idea to Code-
HTA 관련 태그[HTA:APPLICATION] - bnote
시도한 환경
Automation Anywhere Enterprise 11.3.2 한국어 버전
Windows 10 Professional
화면 해상도: 1920x1080 (배율 100%)
대략적인 흐름
만드는 법
HTA 파일 만들기
네, 여기가 제일 힘들었습니다만, 여러분 안심해 주세요.
완성된 것을 붙여 둡니다.
화면 해상도를 자동으로 인식하는 기능은 구현하지 않으므로 환경이나 기호로 내용을 다시 작성해 주세요.
텍스트 편집기에서 **.hta 형식으로 빈 hta 파일을 만들고 다음 코드를 붙여 저장합니다.
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subtitle</title>
<HTA:APPLICATION
ID="oHTA"
APPLICATIONNAME="mysubtitle"
BORDER="none"
BORDERSTYLE="normal"
CAPTION="no"
CONTEXTMENU="yes"
SCROLL="no"
ICON="./icon.ico"
INNERBORDER="no"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"
SHOWINTASKBAR="no"
/>
<SCRIPT LANGUAGE="VBScript">
Sub Window_OnLoad
Window.ResizeTo 1600,170 '字幕表示するウィンドウのサイズを指定。画面の解像度、お好みにより調整してください。
WindowLeft = (window.screen.availWidth - window.screen.availWidth) '字幕を表示するウィンドウのX軸の位置を変数に格納
WindowBottom = (window.screen.availHeight - 165) '字幕を表示するウィンドウのY軸の位置を変数に格納。好みで調整してください。
window.moveTo WindowLeft, WindowBottom '変数に格納した値を元に、字幕を表示するウィンドウを移動
full_str = oHTA.commandLine 'コマンドラインの文字列取得
str_start = 1 'パスの先頭
str_end = InStr(2, full_str, """") 'パスの末尾
str_end = str_end + 1 'パスの直後のスペース分加算
m = Mid(full_str, str_start, str_end) 'パス部分を取得
param_str = replace(full_str, m, "") 'パス部分を削除
dim oText
Set oText = document.GetElementById("body") 'idを元に文字列を入れ替えたい部分を指定
oText.innerText = param_str 'パス部分を削除した文字列(つまりはコマンドラインで指定したパラメーター部分=字幕に出したい文字)をHTMLの本文に書き出し。
End Sub
</SCRIPT>
</head>
<body style="background-color:#444;color:orange;font-family:meiryo"><center>
<DIV id="body" Style = "font-size:56px"></DIV>
</body></center></html>
자막 창 닫기 Task 만들기
위의 hta는 겉보기에 중요하므로 닫기 버튼이 포함된 제목 표시줄을 숨깁니다.
따라서 자막 창을 닫을 때는 프로그램적으로 직접 닫아 줄 필요가 있습니다.
이번에는 Automation Anywhere Enterprise의 Close Window 명령을 사용했습니다.
HTA 파일의 다음 부분에서 설정한 이름이 자막 창의 창 이름이 됩니다.<title>Subtitle</title>
아래와 같은 Task를 작성합니다. Delay의 초수나 유무는 기호로.
어떠한 이유로 잘 닫히지 않은 윈도우가 남는 경우를 상정하고, Loop를 사용해 Subtitle라는 윈도우명의 윈도우가 있으면 모두 닫도록 하고 있습니다.
사용
자막 표시
Open Program/File로 작성한 HTA 파일을 호출하여 자막 창을 표시합니다.
3단계: 매개변수(선택 사항)에 입력한 문자열을 자막으로 표시합니다.
자막 지우기
방금 만든 자막 윈도우를 닫는 Task를 Run Task로 실행.
Bot의 명령 목록에서 어디에 배치할지 등은 궁리가 있을지도 모릅니다.
완성! !
이런 식으로 표시됩니다.
파악하고 있는 과제, 불편한 곳
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subtitle</title>
<HTA:APPLICATION
ID="oHTA"
APPLICATIONNAME="mysubtitle"
BORDER="none"
BORDERSTYLE="normal"
CAPTION="no"
CONTEXTMENU="yes"
SCROLL="no"
ICON="./icon.ico"
INNERBORDER="no"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"
SHOWINTASKBAR="no"
/>
<SCRIPT LANGUAGE="VBScript">
Sub Window_OnLoad
Window.ResizeTo 1600,170 '字幕表示するウィンドウのサイズを指定。画面の解像度、お好みにより調整してください。
WindowLeft = (window.screen.availWidth - window.screen.availWidth) '字幕を表示するウィンドウのX軸の位置を変数に格納
WindowBottom = (window.screen.availHeight - 165) '字幕を表示するウィンドウのY軸の位置を変数に格納。好みで調整してください。
window.moveTo WindowLeft, WindowBottom '変数に格納した値を元に、字幕を表示するウィンドウを移動
full_str = oHTA.commandLine 'コマンドラインの文字列取得
str_start = 1 'パスの先頭
str_end = InStr(2, full_str, """") 'パスの末尾
str_end = str_end + 1 'パスの直後のスペース分加算
m = Mid(full_str, str_start, str_end) 'パス部分を取得
param_str = replace(full_str, m, "") 'パス部分を削除
dim oText
Set oText = document.GetElementById("body") 'idを元に文字列を入れ替えたい部分を指定
oText.innerText = param_str 'パス部分を削除した文字列(つまりはコマンドラインで指定したパラメーター部分=字幕に出したい文字)をHTMLの本文に書き出し。
End Sub
</SCRIPT>
</head>
<body style="background-color:#444;color:orange;font-family:meiryo"><center>
<DIV id="body" Style = "font-size:56px"></DIV>
</body></center></html>
Reference
이 문제에 관하여(HTA를 사용하여 Automation Anywhere에서 Bot 실행 중 자막 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zamaezaaa/items/b354de2dc889e1509c1e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)