읽어온 변수 60,000 (컴마포함) 값을 수로 변환하여 계산하기

SimpleHotkey_Script|2023. 8. 21. 09:46

 

스크립트 예제
<StringReplace,a,".",>
<msg,컴마지운 값=,a>

<Calc,a=a+10>
<msg,10을더한값=,a>

 

OCR기능이나, Clip으로 값을 읽어 왔는데 값이 60,000 인경우 , 컴마가 포함되어 수로 인식 되지 않습니다.

읽어온 값은 수가 아닌 문자로 인식하여 사칙연산을 할 수 없습니다.

이런 경우에는 읽어온 변수에 , 컴마를 제거하면 수로 인식되어 사칙 연산이 가능합니다.

스크립트와 같이 StringReplace 명령어를 컴마를 지울 수 있습니다.

 

심플핫키 스크립트에서는 , 컴마가 구분자로 사용되기 때문에 변수로 사용시 "." 치환 하여 사용 해야 합니다.

StringReplace

저장된 변수값의 특정 부분을 변경 할 때 하는 명령어 입니다.

<StringReplace,변수1,찾는값,변경값>

사용 값

변수1 변수1에 저장된 변수를 찾는값으로 검색하여, 변경값으로 변경 합니다.
찾는값 저장된 변수에 찾고자 하는 값을 의미합니다.
변경값 변경하고자 하는 값을 의미 합니다.

추가설명

변수가공시 사용하는 명령어 입니다. 변수1에 저장된 값중 특정 부분만 변경 하고자 할때 사용합니다. 
찾고자 하는 값이 없는경우, 아무런 동작을 하지 않습니다.

 

사용예제1

<String,a=123456789>
<StringReplace,a,123,abc>
<Msg_Box,a>
설명: A변수는 "123456789" 값이 저장 되어 있으나, <StringReplace...> 명령어로 123값을 찾아서
abc로 변경합니다. 메세지 박스를 출력하면 "abc456789" 값이 표시 됩니다.

 (예제를 스크립트편집기에 복사해서 동작을 테스트 해보세요)

사용예제2(,값 변경)

<String,a=1"."000>
<StringReplace,a,".",>
설명: ,(콤마) 값은 명령어 구분자로 사용되어 대체단어로 사용 해야 합니다. "." 기호는 , 값을 의미 합니다. 

 

예제를 복사한 후, 실행 해보세요!!

※스크립트 관련 문의주시면 본문 추가해서 업데이트 하겠습니다!!

 

댓글()

스크립트간 변수 공유하기

SimpleHotkey_Script|2023. 8. 8. 08:30

 

스크립트 예제
<IniWrite,test.ini,Sub1,A,123>
<IniWrite,test.ini,Sub1,B,456>
<IniWrite,test.ini,Sub1,C,456>

<IniRead,test.ini,Sub1,B,test>
<Msg_Box,test>

스크립트1번에서 사용하는 변수를 스크립트2번에 넘겨주거나, 공유해야 하는 상황이 있습니다.

이런 경우는 IniWrite 명령어를 사용하여, 해당 변수값을 INI 타입의 파일로 저장하여 사용합니다.

예제를 보면, test.ini 파일에 Sub1라는 영역을 생성하고, A라는 변수를 만들어 123 이라는 값을 저장합니다.

Sub12, A 항목은 사용자가 원하는 값으로 변경이 가능합니다. 

 

이렇게 만들어둔, ini 파일은 IniRead 명령어로 해당 값을 읽어 사용 할 변수에 넣을 수 있습니다.

test라는 변수에 Sub1 영역에 있는 B라는 값을 읽어 대입 합니다.

메세지 박스로 test변수를 출력하면 아래 이미지와 같이 456 값이 출력 됩니다.

 

예제를 복사한 후, 실행 해보세요!!

※스크립트 관련 문의주시면 본문 추가해서 업데이트 하겠습니다!!

댓글()

윈도우 시간기준으로 n분 마다 스크립트 반복

SimpleHotkey_Script|2023. 7. 24. 10:56

 

스크립트 예제
<string,m=(Min)>
<string,time=10>

<loop_a>
	<string,h=(Hour)>
	<string,s=(Sec)>

	<If_Time,h:m:s>
	[
		<msg,m,분, 실행>
		<Delay,1000>
		<calc,m=time+m>
		<if,m=60>[<string,m=0>]
		<if,m}60>[<calc,m=m-60>]
		<msg,m,분, 실행예정>
	]

<delay,10>
<goto_a>

1분마다 반복을 할려면 반복 명령어를 사용하고 <Delay,60000> 명령어로 지연시간을 주면 가능합니다

하지만, 사용하다보면 PC의 CPU 및 메모리 사용량에 따라 달라지는 경우가 발생 되기도 합니다.

그러다보면, 1분이지만 1분10초후에 실행 되는 경우도 발생 되죠.

 

이런경우, 윈도우 시간을 기준으로 매 분마다 실행 할 수 있는 스크립트를 문의하시는 분들이 있어서

예제를 만들어 공유 합니다.

 

2번째줄 <string,time=10> 항목이 매분마다 실행 되는 인터벌 값이 입니다.

30분마다 실행 하고 싶으면, 10을 30으로변경 하면 됩니다.

스크립트시작시 한번 즉시 실행되며, 이후에는 설정한 분마다 실행이 반복됩니다.

 

예제를 복사한 후, 실행 해보세요!!

※스크립트 관련 문의주시면 본문 추가해서 업데이트 하겠습니다!!

댓글()