AutoHotKey(오토핫키) 설명서 SoundSet

Posted by 발전소장
2014. 8. 14. 14:11 AutoHotKey/Commands

SoundSet

사운드 디바이스의 각종 설정을 변경

SoundSet, NewSetting [, ComponentType, ControlType, DeviceNumber]

Parameters

인수명설명
NewSetting 새로운 설정을-100...100의 사이의 수치로 지정.
인수가 「+」인가 「-」(으)로부터 시작되는 경우, 현재의 설정으로부터의 상대치의 지정이 된다.
ControlType하지만 「ONOFF」 「MUTE」 「MONO」 「LOUDNESS」 「STEREOENH」 「BASSBOOST」의 경우, 정의 값을 지정하면ON에, 「0」(을)를 지정하면OFF(이)가 된다.「+」(이)나 「-」(으)로 시작되는 값으로는,ON/OFF(을)를 바꾼다.
ComponentType 이하의 어떤 것인가.
  • MASTER(디폴트)
  • DIGITAL
  • LINE
  • MICROPHONE
  • SYNTH
  • CD
  • TELEPHONE
  • PCSPEAKER
  • WAVE
  • AUX
  • ANALOG
  • HEADPHONES
  • N/A
디바이스가 존재하지 않는 경우,ErrorLevel에 그 취지를 나타내는 문자열이 대입된다.
같은 종류의 것이 다수 있을 때는 「ANALOG:2」(와)과 같이 지정하는 것으로,2번째 이후의 디바이스를 지정할 수 있다.많은 경우,1번째는 입력,2번째는 출력이다.
ControlType
  • VOLUME(디폴트)
  • ONOFF
  • MUTE
  • MONO
  • LOUDNESS
  • STEREOENH
  • BASSBOOST
  • PAN
  • QSOUNDPAN
  • BASS
  • TREBLE
  • EQUALIZER
수치로 컨트롤 번호를 지정할 수도 있다.
그 설정이 존재하지 않는 경우,ErrorLevel에 그 취지를 나타내는 문자열이 대입된다.
DeviceNumber 디바이스 번호.
디폴트는 「1」

ErrorLevel

성공했을 경우, 「0」.
무엇인가 문제가 있으면, 이하와 같은 문장이 대입된다.

  • Invalid Control Type or Component Type
  • Can't Open Specified Mixer
  • Mixer Doesn't Support This Component Type
  • Mixer Doesn't Have That Many of That Component Type
  • Component Doesn't Support This Control Type
  • Can't Get Current Setting
  • Can't Change Setting

Remarks

현재의 설정치를 취득하려면 ,SoundGet(을)를 사용한다

이 커멘드로 음량이 변경된 컴퍼넌트는, 좌우의 밸런스가 중앙으로 설정되어 버린다.
SoundSetWaveVolume그럼 이 부작용은 발생하지 않는다.

Related

SoundGet, SoundGetWaveVolume, SoundSetWaveVolume, SoundPlay

Example(s)

SoundSet, 50  ; Set the master volume to 50%
SoundSet +10  ; Increase master volume by 10%
SoundSet -10  ; Decrease master volume by 10%
SoundSet, 1, Microphone, mute  ; mute the microphone
SoundSet, +1, , mute  ; Toggle the master mute (set it to the opposite state)
SoundSet, +20, Master, bass  ; Increase bass level by 20%.
if ErrorLevel <> 0
	MsgBox, The BASS setting is not supported for MASTER.
;사운드 카드의 모든 컴퍼넌트, 컨트롤의 설정을 표시한다.
; Use the following script to discover your soundcard's capabilities (component types and control types).
; This script requires v1.0.36+ because it uses a ListView.

SetBatchLines -1
SplashTextOn,,, Gathering Soundcard Info...

Component1 = MASTER
Component2 = DIGITAL
Component3 = LINE
Component4 = MICROPHONE
Component5 = SYNTH
Component6 = CD
Component7 = TELEPHONE
Component8 = PCSPEAKER
Component9 = WAVE
Component10 = AUX
Component11 = ANALOG
Component12 = N/A

Control1 = VOLUME
Control2 = ONOFF
Control3 = MUTE
Control4 = MONO
Control5 = LOUDNESS
Control6 = STEREOENH
Control7 = BASSBOOST
Control8 = PAN
Control9 = QSOUNDPAN
Control10 = BASS
Control11 = TREBLE
Control12 = EQUALIZER
; Most of the following probably don't exist in any mixer, but they're queried for completeness:
Control13 = 0x00000000  ; CUSTOM
Control14 = 0x10010000  ; BOOLEANMETER
Control15 = 0x10020000  ; SIGNEDMETER
Control16 = 0x10020001  ; PEAKMETER
Control17 = 0x10030000  ; UNSIGNEDMETER
Control18 = 0x20010000  ; BOOLEAN
Control19 = 0x21010000  ; BUTTON
Control20 = 0x30040000  ; DECIBELS
Control21 = 0x30020000  ; SIGNED
Control22 = 0x30030000  ; UNSIGNED
Control23 = 0x30050000  ; PERCENT
Control24 = 0x40020000  ; SLIDER
Control25 = 0x50030000  ; FADER
Control26 = 0x70010000  ; SINGLESELECT
Control27 = 0x70010001  ; MUX
Control28 = 0x71010000  ; MULTIPLESELECT
Control29 = 0x71010001  ; MIXER
Control30 = 0x60030000  ; MICROTIME
Control31 = 0x61030000  ; MILLITIME

; Create a ListView and prepare for the main loop:
Gui, Add, Listview, w400 h400 vMyListView, Component Type|Control Type|Setting|Mixer
LV_ModifyCol(4, "Integer")
SetFormat, Float, 0.2  ; Limit number of decimal places in percentages to two.

Loop  ; For each mixer number that exists in the system, query its capabilities.
{
	CurrMixer := A_Index
	SoundGet, Setting,,, %CurrMixer%
	if ErrorLevel = Can't Open Specified Mixer  ; Any error other than this indicates that the mixer exists.
		break

	Loop  ; For each component type that exists in this mixer, query its instances and control types.
	{
		CurrComponent := Component%A_Index%
		if CurrComponent =
			break  ; No more component types in array.
		; First check if this component type even exists in the mixer:
		SoundGet, Setting, %CurrComponent%,, %CurrMixer%
		if ErrorLevel = Mixer Doesn't Support This Component Type
			continue  ; Start a new iteration to move on to the next component type.
		Loop  ; For each instance of this component type, query its control types.
		{
			CurrInstance := A_Index
			; First check if this instance of this instance even exists in the mixer:
			SoundGet, Setting, %CurrComponent%:%CurrInstance%,, %CurrMixer%
			; Checking for both of the following errors allows this script to run on older versions:
			if ErrorLevel in Mixer Doesn't Have That Many of That Component Type,Invalid Control Type or Component Type
				break  ; No more instances of this component type.
			Loop  ; Get the current setting of each control type that exists in this instance of this component.
			{
				CurrControl := Control%A_Index%
				if CurrControl =
					break  ; No more control types in array.
				SoundGet, Setting, %CurrComponent%:%CurrInstance%, %CurrControl%, %CurrMixer%
				; Checking for both of the following errors allows this script to run on older versions:
				if ErrorLevel in Component Doesn't Support This Control Type,Invalid Control Type or Component Type
					continue
				if ErrorLevel  ; Some other error, which is unexpected so show it in the results.
					Setting := ErrorLevel
				ComponentString := CurrComponent
				if CurrInstance > 1
					ComponentString = %ComponentString%:%CurrInstance%
				LV_Add("", ComponentString, CurrControl, Setting, CurrMixer)
			}  ; For each control type.
		}  ; For each component instance.
	}  ; For each component type.
}  ; For each mixer.

Loop % LV_GetCount("Col")  ; Auto-size each column to fit its contents.
	LV_ModifyCol(A_Index, "AutoHdr")

SplashTextOff
Gui, Show
return

GuiClose:
ExitApp


AutoHotKey(오토핫키) 설명서 SoundPlay

Posted by 발전소장
2014. 8. 14. 14:11 AutoHotKey/Commands

SoundPlay

OS하지만 서포트하는 미디어 파일을 재생한다

SoundPlay, Filename [, wait] 

Parameters

인수명설명
Filename 재생하는 파일의 패스.
상대 패스로 지정했을 경우,%A_WorkingDir%(으)로부터의 패스로 간주해진다.
시스템으로 준비되어 있는 사운드를 재생하려면 , 이하의 문자열을 지정한다.
*-1
Beep음
*16
일반의 경고
*32
문의
*48
경고
*64
정보
wait 「1」(이)나 「WAIT」라고 지정하면, 재생이 종료할 때까지 현재의 스렛드는 정지한다.
정지중은,새로운 스렛드가 끼어든다일이 가능.
생략시는, 재생하면서 다음의 처리로 옮긴다.

ErrorLevel

문제가 발생하면 「1」, 문제가 없으면 「0」

Remarks

Filename에는 확장자(extension) 「.wav」의 파일등을 지정한다.
OS하지만 서포트하고 있으면,MP3파일등도 재생할 수 있다.
동영상 파일도 재생할 수 있지만, 재생의 컨트롤을 할 수 없기 때문에 별로 의미는 없다.
동영상 파일을 표시하는 윈도우의 클래스명은 「MCIQTZ_Window」

파일은 동시에1개 밖에 재생하지 못하고, 재생중에 새롭게 재생하려고 하면, 그것까지 재생되고 있던 것은 종료한다.

재생을 중지하려면 , 존재하지 않는 파일을 재생하려고 하면 좋다.

스크립트가 종료할 경우에는, 동시에 재생도 종료한다.

Related

SoundBeep,SoundGet, SoundSet, SoundGetWaveVolume, SoundSetWaveVolume, Threads

Example(s)

;키 타입시에 소리를 울린다
*a::SoundPlay, a.wav


AutoHotKey(오토핫키) 설명서 SoundGetWaveVolume

Posted by 발전소장
2014. 8. 14. 14:11 AutoHotKey/Commands

SoundGetWaveVolume

WAVE출력의 음량의 현재의 설정치를 취득한다

SoundGetWaveVolume, OutputVar [, DeviceNumber]

Parameters

인수명설명
OutputVar 결과를 취득하는 변수명
DeviceNumber 사운드 디바이스의 번호.
생략시는 「1」.

ErrorLevel

성공하면 「0」, 실패하면 「1」

Remarks

값은0...100의 수치로 취득된다.
취득에 실패했을 경우는 비운다.

값을 변경하려면 ,SoundSetWaveVolume(을)를 사용한다.

마스터 볼륨등의 설정은,SoundSet(와)과SoundGet그리고 조작할 수 있다.

Related

SoundSetWaveVolume, SoundSet, SoundGet, SoundPlay

Example(s)

SoundGetWaveVolume, OutputVar
MsgBox, The current wave output volume level is %OutputVar%`%.


AutoHotKey(오토핫키) 설명서 SoundGet

Posted by 발전소장
2014. 8. 14. 14:10 AutoHotKey/Commands

SoundGet

사운드 디바이스의 각종 설정을 취득

SoundGet, OutputVar [, ComponentType, ControlType, DeviceNumber]

Parameters

인수명설명
OutputVar 취득한 값을 격납하는 변수명.
ComponentType 이하의 어떤 것인가.
  • MASTER(디폴트)
  • DIGITAL
  • LINE
  • MICROPHONE
  • SYNTH
  • CD
  • TELEPHONE
  • PCSPEAKER
  • WAVE
  • AUX
  • ANALOG
  • HEADPHONES
  • N/A
디바이스가 존재하지 않는 경우,ErrorLevel에 그 취지를 나타내는 문자열이 대입된다.
같은 종류의 것이 다수 있을 때는 「ANALOG:2」(와)과 같이 지정하는 것으로,2번째 이후의 디바이스를 지정할 수 있다.많은 경우,1번째가 출력,2번째가 입력용 디바이스이다.
ControlType
  • VOLUME(디폴트)
  • ONOFF
  • MUTE
  • MONO
  • LOUDNESS
  • STEREOENH
  • BASSBOOST
  • PAN
  • QSOUNDPAN
  • BASS
  • TREBLE
  • EQUALIZER
그 설정이 존재하지 않는 경우,ErrorLevel에 그 취지를 나타내는 문자열이 대입된다.
번호로 지정할 수도 있다.
DeviceNumber 디바이스 번호.
디폴트는 「1」

ErrorLevel

성공했을 경우, 「0」.
무엇인가 문제가 있으면, 이하와 같은 문장이 대입된다.

  • Invalid Control Type or Component Type
  • Can't Open Specified Mixer
  • Mixer Doesn't Support This Component Type
  • Mixer Doesn't Have That Many of That Component Type
  • Component Doesn't Support This Control Type
  • Can't Get Current Setting

Remarks

OutputVar에는,ControlType하지만 「ONOFF」 「MUTE」 「MONO」 「LOUDNESS」 「STEREOENH」 「BASSBOOST」의 경우 「ON」인가 「OFF」, 그 이외의 경우는0...100의 소수가 대입된다.
소수의 포맷은SetFormat그리고 설정할 수 있다.
취득에 실패하면 비운다.

ComponentType(이)나ControlType(으)로 지정 가능한 값을 조사하는 방법은,SoundSet의Examples(을)를 참조.

Related

SoundSet, SoundGetWaveVolume, SoundSetWaveVolume, SoundPlay

Example(s)

SoundGet, master_volume
MsgBox, Master volume is %master_volume% percent.

SoundGet, master_mute, , mute
MsgBox, Master Mute is currently %master_mute%.

SoundGet, bass_level, Master, bass
if ErrorLevel <> 0
	MsgBox, Error Description: %ErrorLevel%
else
	MsgBox, The BASS level for MASTER is %bass_level% percent.

SoundGet, microphone_mute, Microphone, mute
if microphone_mute = Off
	MsgBox, The microphone is not muted.


AutoHotKey(오토핫키) 설명서 SoundBeep

Posted by 발전소장
2014. 8. 14. 14:10 AutoHotKey/Commands

SoundBeep

사운드 카드의Beep소리를 울린다

SoundBeep [,Frequency,Duration]

Parameters

Frequency 소리의 주파수.37...32767. 생략시는 「523」.
Duration 소리를 울리는 시간을 밀리 세컨드로 지정.
생략시는 「150」.

Remarks

Windows9x계에서는, 인수의 지정에 관계없이 시스템의 디폴트의 소리가 사용된다.

소리가 울고 있는 동안은 스크립트는 정지한다.

Related

Examples

SoundBeep ; Play the default pitch and duration.
SoundBeep, 750, 500 ; Play a higher pitch for half a second.


AutoHotKey(오토핫키) 설명서 Sort

Posted by 발전소장
2014. 8. 14. 14:10 AutoHotKey/Commands

Sort

변수의 내용을 특정의 차례로 줄서 바꾼다.문자열로서의 처리 외에, 수치로서의 처리도 가능.

Sort, VarName [, Options]

Parameters

인수명설명
VarName 대상이 되는 데이터를 격납한 변수명.이 변수의 내용이 줄서 바꿀 수 있어 이 변수에 격납된다.
Options 후술 하는 옵션을 반각 스페이스 단락으로 열거.

Options

C
문자열로서 비교하는 경우에, 대문자 소문자를 구별한다
CL
현재의 유저의 로케일 설정에 따라서 대문자 소문자의 차이를 무시한다.
일본어 환경의 경우, 전각의 알파벳등도 대상이 된다.
Dx
x에 요소의 단락 문자를 지정한다.생략시는 개행 코드LF(`n).
F FunctionName
지정한 함수를 사용하고 비교를 실시한다.
FunctionName에 비교를 실시하는 함수의 이름을 지정한다.
함수는,2개 혹은3개의 인수를 받아, 제1인수>제2인수라면 정의 값을, 제1인수=제2인수라면0(을)를, 제1인수<제2인수라면 부의 값을 돌려준다.
함수가 제3인수를 받는 경우, 제1인수의 문자열과 제2인수의 문자열의 출현 위치의 차이가 주어진다.
「D」 「Z」이외의 옵션은 무시된다.(다만, 「U」옵션에 의한 중복 판정에서는,N,C,CL옵션에 따른 비교를 한다)
함수가0(을)를 돌려준 항목끼리의 줄 순서는 부정이다.원래의 문자열내에서의 줄서 순서와 같을 차례로 하기 위해서는, 제1인수와 제2인수가 동일한 경우에 제3인수의 값의 부호를 반대로 해 돌려주도록 하면 된다.
N
각 요소를 수치로서 비교한다.
16진수치나 소수치도 수치로서 다루어진다.
선두에 수치로서 취급할 수 있는 부분이 있으면, 그 문자열은 수치로서 다루어진다.
수치로 시작되지 않는 문자열은, 「0」로서 다루어진다.
Pn
최초의 수몬지를 날리고,n번째의 문자 이후부터 비교에 사용한다.
생략시는,1문자눈으로부터 비교된다.
요소의 길이가 여기서 지정한 문자수보다 작은 경우, 그 요소는 하늘로 간주해진다.
N옵션과 함께 사용되었을 경우,n문자눈 이후의 수치로서 취급할 수 있는 부분에서 비교된다.
R
내림차순으로 나란해져 바꾼다.(큰 순서)
Random
줄 순서를 상훌 한다.
「D」 「Z」이외의 옵션은 무시된다.(다만, 「U」옵션에 의한 중복 판정에서는,N,C,CL옵션에 따른 비교를 한다)
U
소트 결과로부터 중복을 없앤다.
ErrorLevel에 삭제된 항목수가 격납된다.

「N」옵션이 지정되었을 경우, 「2」와「2.0」(와)과 같이 수치적으로 같은 항목은 중복으로 간주해진다.
「Random」옵션이 지정되었을 경우, 상훌 후에 서로 이웃이 된 항목만이 제거된다.
Z
문자열의 마지막에 단락지어 문자가 있었을 때, 그 후에 하늘 요소가 존재하는 것으로 간주한다.
예를 들어, 「aaa`nbbbb`nccccc`n」라고 하는 문자열을 줄서 바꿀 때, 통상은3개의 요소가 있다고 보이지만, 이 옵션을 지정하면4요소로 간주해진다.
\
제일 마지막 「\」이후의 문자열로 비교된다.
파일의 풀 패스의 파일명 부분에서만 비교하고 싶을 때에 사용한다.
「\」(을)를 포함하지 않는 요소는, 요소 전체로 비교된다.
이 옵션을 사용했을 경우,N옵션과P옵션은 무시된다.

Remarks

VarName하지만 「Clipboard」(으)로, 클립보드의 내용이Explorer등에서 카피한 파일군이었던 경우,Sort실행 후의 클립보드의 내용은 파일명을 개행 단락으로 열거한 문자열이 되어 버린다.

VarName(으)로 지정한 것이환경 변수(이었)였던 경우, 새롭게 같은 이름의 스크립트측의 변수가 작성되어 거기에 결과가 격납된다.
그 후VarName에의 액세스는 스크립트측의 변수에의 액세스가 되어 버린다.
아래와 같은 예의 같게 하면, 결과를 환경 변수로 옮기고, 액세스처를 환경 변수에 되돌릴 수 있다.

VarSort, MyEnvVar
EnvSet, MyEnvVar, %MyEnvVar%
MyEnvVar = ;스크립트측의 변수를 비우면, 환경 변수 쪽이 우선되게 된다

Related

StringSplit, parsing loop, clipboard

Example(s)

MyVar = 5,3,7,9,1,13,999,-4
Sort MyVar, N D,  ; Sort numerically, use comma as delimiter.
MsgBox %MyVar%   ; The result is -4,1,3,5,7,9,13,999

; This example makes Win+C a hotkey to copy files from an open
; Explorer window and put their sorted filenames onto the clipboard:
#c::
Clipboard = ; Must be blank for detection to work.
Send ^c
ClipWait 2
if ErrorLevel <> 0
	return
Sort Clipboard
MsgBox Ready to be pasted:`n%Clipboard%
return
; The following examples demonstrate custom sorting via a callback function.
MyVar = def`nabc`nmno`nFGH`nco-op`ncoop`ncop`ncon`n
Sort, MyVar, F StringSort
StringSort(a1, a2)
{
    return a1 > a2 ? 1 : a1 < a2 ? -1 : 0
}

MyVar = 5,3,7,9,1,13,999,-4
Sort, MyVar, F IntegerSort D,
IntegerSort(a1, a2)
{
    return a1 - a2  ; This method works only if the result never overflows a signed 64-bit integer.
}

MyVar = 1,2,3,4
Sort, MyVar, F ReverseDirection D,  ; Reverses the list so that it contains 4,3,2,1
ReverseDirection(a1, a2, offset)
{
    return offset  ; Offset is positive if a2 came after a1 in the original list; negative otherwise.
}


AutoHotKey(오토핫키) 설명서 Sleep

Posted by 발전소장
2014. 8. 14. 14:09 AutoHotKey/Commands

Sleep

지정 밀리 세컨드 처리를 정지한다

Sleep, Delay

Parameters

인수명설명
Delay 대기하는 시간을 밀리 세컨드로 지정.(0...2147483647(24일)까지 지정 가능)

Remarks

OS의 사양에 의해,Delay의1의 정도는 말 수 있다.

CPU의 부하에 따라서는, 지정한 시간 이상 처리가 돌아오지 않는 경우도 있다.

Delay에0(을)를 지정하는 것으로, 명시적으로 다른 프로세스에CPU의 처리를 돌리는 것이 가능.

Delay에-1(을)를 지정하면, 처리의 정지는 일어나지 않지만,GUI등의 대기중의 이벤트를 실행시킬 수 있다(NT계 전용)

대기중은,hot key(이)나커스텀 메뉴 아이템,타이머에 의한다스렛드의 세치기하지만 가능.

Related

SetKeyDelay, SetMouseDelay, SetControlDelay, SetWinDelay, SetBatchLines

Example(s)

 Sleep, 1000 ; 1 second


AutoHotKey(오토핫키) 설명서 Sin()

Posted by 발전소장
2014. 8. 14. 14:09 AutoHotKey/Commands

Sin()

주어진 각도에 대응하는 사인을 돌려주는 함수

Sin(Radian)

Parameters

인수명설명
Radian각도를 라디안으로 지정한다.3.14...하지만180도

Remarks

인수가 수치가 아니었던 경우나, 계산 불능인 값이 주어졌을 경우는 길이 제로의 공문자열이 돌아간다.

Related

함수


AutoHotKey(오토핫키) 설명서 Shutdown

Posted by 발전소장
2014. 8. 14. 14:08 AutoHotKey/Commands

Shutdown

시스템을 종료, 재기동, 로그 오프 한다

Shutdown, Code

Parameters

인수명설명
Code 이하의 것의 화
0
로그 오프
1
슛다운
2
재기동
4
강제적
8
실행 후 전원을 끈다

Remarks

OnExit써브루틴을 설정해 두어, 「A_ExitReason」변수를 조사하면, 유저가 슛다운이나 로그 오프를 실시하려고 한 것을 알 수 있다.

Related

Run, ExitApp, OnExit

Example(s)

; Force a reboot (reboot + force = 2 + 4 = 6):
Shutdown, 6
; 중지나 하이바네이트를 실시하고 싶은 경우는, 아래와 같이Windows의API(을)를 호출한다.
; Windows 95/NT4: Since this function does not exist, the following call would have no effect.
; Parameter #1: Pass 1 instead of 0 to hibernate rather than suspend.
; Parameter #2: Pass 1 instead of 0 to request permission from each application prior to suspending.
; Parameter #3: Pass 1 instead of 0 to disable all wake events.

DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)


AutoHotKey(오토핫키) 설명서 SetWorkingDir

Posted by 발전소장
2014. 8. 14. 14:08 AutoHotKey/Commands

SetWorkingDir

스크립트의 작업 디렉토리를 변경

SetWorkingDir, DirName

Parameters

인수명설명
DirName 패스를 지정.
상대 패스로 지정하면,%A_WorkingDir%(을)를 기준으로 한 패스가 된다.

ErrorLevel

성공시는 「0」, 실패시는 「1」.

Remarks

작업 디렉토리는, 커멘드로 파일 패스를 지정하는 (곳)중에 상대 패스로 지정했을 때에 기준이 되는 디렉토리이다.

현재의 작업 디렉토리 패스를 알려면 ,%A_WorkingDir%(을)를 참조한다.

기동시의 작업 디렉토리는 기동의 방법에 의해서 바뀐다.

한 번 작업 디렉토리를 변경하면, 그 후 스크립트 전체에 영향을 준다.

Related

%A_WorkingDir%, FileSelectFolder

Example(s)

SetWorkingDir, D:\My Folder\Temp