프로세스 제어 관련 서비스
본 서비스는 시스템에서 실행 중인 특정 프로세스 또는 특정 프로세스의 창을 조작하기 위한 기능을 지원합니다.
서비스 리스트
프로세스 제어 관련 서비스 리스트는 다음과 같습니다.
| No. | 서비스명 | API명 | 비고 |
| 1 | 타이틀 기반 프로세스 구동 체크 | CheckProcessRunningByTitle | |
| 2 | PID 기반 프로세스 구동 체크 | CheckProcessRunningByPID | |
| 3 | 타이틀 기반 특정 프로세스 창 이동 | SetWindowPosition | |
| 4 | 타이틀 기반 특정 프로세스 창 최상단 배치 | BringWindowToTop | |
| 5 | PID 기반 특정 프로세스 창 이동 | SetProcessWindowPosition | |
| 6 | 프로세스 IME 모드 변경 | WinInfo.SetImeMode |
서비스 상태 코드 리스트
본 서비스에서 공통으로 사용되는 서비스 상태코드 리스트에 대해 정의합니다.
이 상태 코드는 응답 JSON 메시지 중 return 또는 returnValue의 값에 해당합니다.
| 리턴코드 | 리턴 코드 내용 | 대상 서비스 | 비고 |
| -1 | 정의되지 않은 예외 | 공통 | Log 파일에서 내용 확인 필요 |
| 0 | 정상 | 공통 | - |
| 2 | PC와 연결된 모니터 리스트 획득 실패 |
SetWindowPosition, SetProcessWindowPosition |
- |
| 3 | 요청 모니터 정보 획득 실패 |
SetWindowPosition, SetProcessWindowPosition |
- |
| 4 | 모니터 해상도 획득 실패 |
SetWindowPosition, SetProcessWindowPosition |
- |
| 5 | 지원하지 않는 창 크기 설정 옵션 |
SetWindowPosition, SetProcessWindowPosition |
- |
| 6 | 대상 타이틀을 가진 프로세스가 없음 |
SetWindowPosition, BringWindowToTop, SetProcessWindowPosition, SetImeMode |
- |
| 16 | 지원되지 않는 프로세스 |
SetImeMode, GetImeMode |
- |
| 17 | IME 접근 권한이 없는 프로세스 |
SetImeMode, GetImeMode |
- |
| 18 | IME 핸들 획득 실패 |
SetImeMode, GetImeMode |
- |
| 19 | IME 변경 실패 |
SetImeMode, GetImeMode |
- |
1. 타이틀 기반 프로세스 구동 체크
API명
- WinInfo.CheckProcessRunningByTitle
정의
- 타이틀을 기반으로 특정 프로세스가 현재 구동 중인지 확인합니다.
호출예시
{
"service":"WinInfo.CheckProcessRunningByTitle",
"requestKey":"Random Request Key",
"param":{
"processTitle":"TOMATO SYSTEM"
}
}
- processTitle
- 검색할 프로세스 타이틀.
응답예시
{
"service":"WinInfo.CheckProcessRunningByTitle",
"requestKey":"976a-75cf-5b52",
"statusCode":"0000",
"return":{
"returnValue":0,
"isRunning":true
}
}
- returnValue
- 서비스 상태 코드.
- isRunning: 프로세스 구동 여부
- true: 구동 중.
- false: 구동 중이지 않음.
2. PID 기반 프로세스 구동 체크
API명
- WinInfo.CheckProcessRunningByPID
정의
- 프로세스 ID(PID)를 기반으로 특정 프로세스가 현재 구동 중인지 확인합니다.
호출예시
{
"service": "WinInfo.CheckProcessRunningByPID",
"requestKey": "Random Request Key",
"param": {
"processId": "28700"
}
}
- processId
- 검색할 프로세스 ID(PID).
응답예시
{
"service":"WinInfo.CheckProcessRunningByTitle",
"requestKey":"976a-75cf-5b52",
"statusCode":"0000",
"return":{
"returnValue":0,
"isRunning":true
}
}
- returnValue
- 서비스 상태 코드.
- isRunning: 프로세스 구동 여부
- true: 구동 중.
- false: 구동 중이지 않음.
3. 타이틀 기반 특정 프로세스 창 이동
API명
- WinInfo.SetWindowPosition
정의
- 특정 타이틀을 가지는 프로세스의 창(Window)을 특정 모니터의 특정 좌표(left, top)으로 이동합니다.
모니터와 관련된 정보는 "모니터 관련 서비스" 문서를 참고하시길 바랍니다.
설명
- 시스템은 모니터와, 프로세스 창의 좌표 및 해상도를 다음과 같이 식별합니다.
<Windows 모니터 및 프로세스 창 해상도 식별 방식>
호출예시
{
"service": "WinInfo.SetWindowPosition",
"requestKey": "Random Request Key",
"param": {
"processTitle": "TOMATOSYSTEM",
"screenIndex": 1,
"screenSizeMode": 1,
"left": 0,
"top": 0,
"width": 900,
"height": 800
}
}
- processTitle
- 검색할 프로세스 창의 타이틀.
- screenIndex
- 프로세스 창을 이동 시킬 모니터 인덱스
- 시스템이 인식하는 모니터 명칭에서 숫자 값. (예: DISPLAY4 → 4)
- screenSizeMode: 창의 표시 상태.
- 1: 일반 모드 (left, top, width, height 지정 가능)
- 2: 창 최대화 (left, top, width, height 지정 불가)
- 3: 창 최소화 (left, top, width, height 지정 불가)
- left
- 창을 이동 시킬 좌측 좌표 값.
- 창을 이동 시킬 모니터의 left ~ (left + 모니터 width) 범위 내의 값을 입력.
- screenSizeMode가 2 또는 3인 경우 0 입력.
- top
- 창을 이동 시킬 상단 좌표 값.
- 창을 이동 시킬 모니터의 top ~ (top + 모니터 height) 범위 내의 값을 입력.
- screenSizeMode가 2 또는 3인 경우 0 입력.
- width
- 창의 가로 길이.
- height
- 창의 세로 길이.
응답예시
{
"service":"WinInfo.SetWindowPosition",
"requestKey":"호출시 사용한 Request Key",
"statusCode":"0000",
"return":0
}
- return
- 서비스 상태 코드.
4. 타이틀 기반 특정 프로세스 창 최상단 배치
API명
- WinInfo.BringWindowToTop
정의
- 특정 타이틀을 가지는 프로세스의 창(Window)을 모든 창 중 가장 최상단으로 위치 시킵니다.
호출예시
{
"service": "WinInfo.BringWindowToTop",
"requestKey": "Random Request Key",
"param": {
"processTitle": "TOMATOSYSTEM"
}
}
- processTitle
- 검색할 프로세스의 타이틀.
응답예시
{
"service":"WinInfo.BringWindowToTop",
"requestKey":"호출시 사용한 Request Key",
"statusCode":"0000",
"return":0
}
5. PID 기반 특정 프로세스 창 이동
API명
- WinInfo.SetProcessWindowPosition
정의
- 특정 프로세스 ID(PID)를 가지는 프로세스의 창(Window)을 특정 모니터의 특정 좌표(left, top)으로 이동합니다.
모니터와 관련된 정보는 "모니터 관련 서비스" 문서를 참고하시길 바랍니다.
설명
- 시스템은 모니터와, 프로세스 창의 좌표 및 해상도를 다음과 같이 식별합니다.
<Windows 모니터 및 프로세스 창 해상도 식별 방식>
호출예시
{
"service": "WinInfo.SetProcessWindowPosition",
"requestKey": "Random Request Key",
"param": {
"processId": "28700",
"screenIndex": 1,
"screenSizeMode": 1,
"left": 0,
"top": 0,
"width": 900,
"height": 800
}
}
- processId
- 검색할 프로세스 ID.
- screenIndex
- 프로세스 창을 이동 시킬 모니터 인덱스
- 시스템이 인식하는 모니터 명칭에서 숫자 값. (예: DISPLAY4 → 4)
- screenSizeMode: 창의 표시 상태.
- 1: 일반 모드 (left, top, width, height 지정 가능)
- 2: 창 최대화 (left, top, width, height 지정 불가)
- 3: 창 최소화 (left, top, width, height 지정 불가)
- left
- 창을 이동 시킬 좌측 좌표 값.
- 창을 이동 시킬 모니터의 left ~ (left + 모니터 width) 범위 내의 값을 입력.
- screenSizeMode가 2 또는 3인 경우 0 입력.
- top
- 창을 이동 시킬 상단 좌표 값.
- 창을 이동 시킬 모니터의 top ~ (top + 모니터 height) 범위 내의 값을 입력.
- screenSizeMode가 2 또는 3인 경우 0 입력.
- width
- 창의 가로 길이.
- height
- 창의 세로 길이.
응답예시
{
"service":"WinInfo.SetProcessWindowPosition",
"requestKey":"호출시 사용한 Request Key",
"statusCode":"0000",
"return":0
}
- return
- 서비스 상태 코드.
6. 프로세스 IME 모드 변경
API명
- WinInfo.SetImeMode
정의
- 대상 프로세스의 IME 모드를 변경한다.
- 현재 테스트를 위해 다음 브라우저만 허용.
- "chrome", "msedge", "whale", "firefox", "iexplore", "opera"
- IME Mode는 입력 가능한 입력기(textbox, textarea 등)에 focus가 가 있어야 변경 가능하다.
호출예시
{
"service": "WinInfo.SetImeMode",
"requestKey": "Random Request Key",
"param": {
"toNative": true
}
}
- toNative: IME 입력기에 설정된 원어로 변경할지 여부. (ex. 한국어 입력기에서 원어: "한글")
- true: 원어로 설정한다.
- false: 영어로 설정한다.
응답예시
{
"service":"WinInfo.SetImeMode",
"requestKey":"호출시 사용한 Request Key",
"statusCode":"0000",
"return":0
}
- return
- 서비스 상태 코드.
7. 프로세스 IME 모드 획득
API명
- WinInfo.GetImeMode
정의
- 대상 프로세스에 현재 설정된 IME 모드를 획득한다.
- 현재 테스트를 위해 다음 브라우저만 허용.
- "chrome", "msedge", "whale", "firefox", "iexplore", "opera"
- IME Mode는 입력 가능한 입력기(textbox, textarea 등)에 focus가 가 있어야 획득 가능하다.
호출예시
{
"service": "WinInfo.GetImeMode",
"requestKey": "Random Request Key",
"param": {}
}
응답예시
{
"service":"WinInfo.GetImeMode",
"requestKey":"호출시 사용한 Request Key",
"statusCode":"0000",
"return":{
"returnValue":0,
"isNative":true
}
}
- return
- 서비스 상태 코드.
- isNative: IME 입력기에 설정된 언어 정보. (ex. 한국어 입력기에서 원어: "한글")
- true: 원어로 설정되어 있음.
- false: 영어로 설정되어 있음.