Microsoft MVP성태의 닷넷 이야기
실행 시간을 제한하는 NT 서비스 [링크 복사], [링크+제목 복사]
조회: 20629
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
아이들의 게임 습관이 중요한 시기이죠. ^^ 우리 아이도 그다지 예외가 아닙니다. "마비노기"라는 게임 프로그램을 하는데, 많이도 재미있는가 봅니다. 그러다 보니, 시간 가는 줄 모르고 하게 되지요.

요즘 들어, 아이들의 컴퓨터 시간을 제한하는 몇몇 솔루션들이 나오고 있습니다. Windows Vista의 경우에는 부모가 제어할 수 있는 옵션이 있기도 하고, KT의 경우에는 "타임 코디"라는 프로그램이 제공되기도 합니다.

위의 솔루션도 좋긴 한데. 우리 집 환경에는 다소 맞지 않아서 포기하고. ^^

오늘은, 문득 그동안 별러오던 프로그램을 하나 만들어야겠다는 생각을 했습니다. 제목에서 보시는 것처럼, "실행 시간"을 제한해서, 일정 시간 동안 켜져 있는 프로그램을 강제로 종료해 버리는 것입니다. 우리 집 같은 경우에는, 아이가 게임을 하루에 한 시간만 하도록 제한하고 있습니다. 하지만, 처음 얼마 동안만 시작 시간을 우리에게 알리고 하더니만, 나중에는 그것이 유야무야 되어 이제는 ^^; 순전히 임의로 한 시간 정도만을 하고 있습니다.

그런 모습을 그동안 멍하니 지켜보기만 했는데... 오늘은 급기야 이것을 바로 잡아야겠다는 생각이 들었습니다. 그래서, 간단한 기능의 시간 제한 프로그램을 만들었지요. 간단합니다.

아래의 URL에서 msi 파일을 다운로드하고,

32비트용
; https://www.sysnet.pe.kr/SysWebRes/download/PublicTools/ProcessControllerServiceSetup.msi

64비트용
; https://www.sysnet.pe.kr/SysWebRes/download/PublicTools/ProcessControllerServiceSetup64.msi

*** 컴퓨터에 ".NET Framework"이 설치되어 있어야 합니다.

컴퓨터에 설치를 합니다. 설치하면 자동으로 NT 서비스로 등록되어 시작하게 됩니다. 그다음, 제어해야 할 프로세스를 설정해야 하는데, 환경에 따라 각각 다음의 파일을 메모장으로 불러옵니다.

32비트용
; C:\Program Files\sysnet\ProcessControllerServiceSetup\ProcessConfigurationT.sample.config

64비트용
; C:\Program Files\sysnet\ProcessControllerServiceSetup64\ProcessConfigurationT.sample.config

내용을 보면, 미리 다음과 같이 들어가 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<ProcessConfigurationT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <TimeLimits>
        <ProcessTimeLimitT>
            <!-- 마비노기: 1시간 5분 이상 실행되면 종료 -->
            <ProcessName>Client32</ProcessName>
            <Time>3900</Time> <!-- 초단위 -->
        </ProcessTimeLimitT>
    </TimeLimits>
</ProcessConfigurationT>

만약, 노트패드를 1분 이상 실행시킨 경우 종료하고 싶다면 다음과 같이 추가해 주면 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<ProcessConfigurationT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <TimeLimits>
        <ProcessTimeLimitT>
            <!-- 마비노기: 1시간 5분 이상 실행되면 종료 -->
            <ProcessName>Client32</ProcessName>
            <Time>3900</Time> <!-- 초단위 -->
        </ProcessTimeLimitT>
        <ProcessTimeLimitT>
            <ProcessName>Notepad</ProcessName>
            <Time>60</Time>
        </ProcessTimeLimitT>
    </TimeLimits>
</ProcessConfigurationT>

혹시나, "리니지2" 프로그램을 실행제한하고 싶다면 "L2"라고 프로세스 이름을 주어야 하는데요. 아쉽게도 32비트 윈도우즈에서는 NC 소프트 측에서 프로세스를 숨겨놓는 바람에 동작하지 않습니다. 이 기능이 꼭 필요하신 분들은 우선 운영체제를 64비트로 업그레이드하시면 해결됩니다. ^^

편집이 끝났으면, "ProcessConfigurationT.config"이라는 이름으로 저장을 하시면 됩니다. 그걸로 끝! 그래서, 우리 집의 마비노기 프로그램은 1시간 5분 동안 실행되면 강제로 종료되도록 설정이 되어 있습니다.




부가적으로,

이 프로그램에는 몇 가지 맹점이 있습니다. 우선, 지정된 시간이 지나서 프로그램이 종료된 후에는 다시 실행하는 것이 가능합니다. 물론, 이것까지 막을 수는 있지만 아이들이 2명 이상인 경우에는 문제가 되기 때문에 구현하지 않았습니다. 혹시나, 이를 해결할 수 있는 좋은 아이디어가 있으면 알려주십시오. 반영해 드리겠습니다. ^^

어쨌든, 우리 집에서는 그다지 문제되지 않는 것이 지정된 시간 동안 한 다음에는 못하는 분위기가 조성되어 있기 때문에 위의 정도로도 충분하긴 합니다. 설령, 아이들이 여러 명 있는 경우에는, 뒤 이은 순번들이 이제나 저제나 기다리고 있기 때문에 위와 같은 정책으로도 충분하지 싶고. ^^

그리고, 또 한 가지는 시간이 "초" 단위까지 설정 가능하긴 하지만 현실적으로 아이들에게 초 단위로 체크해서 제한시킬 필요까지는 없기 때문에 이런 시간을 체크하는 주기를 "1분"으로 설정해 두었습니다. 빈번하게 체크 모듈을 실행하는 것은 그다지 좋은 선택이 아니기 때문에 그렇게 했습니다. 물론, 이 주기는 바꿀 수 있는 옵션이 있긴 한데,,, 뭐 여기까지 설명드릴 필요는 없을 것 같습니다. ^^

마지막으로, 한 가지. 요즘의 Windows Vista나 Windows Server 2008은 "C:\Program Files\" 이하의 폴더를 임의로 변경하는 것을 허용하지 않습니다. 그런데 위의 .config 파일을 거기에 두었기 때문에 혹시나 Vista/Server 2008을 사용하시는 분들은 해당 파일을 여는 "편집 프로그램"을 "관리자 권한"으로 열어야 합니다. 물론, 일반 사용자 폴더로 돌리는 것도 가능하지만,,, 여러 가지 이유로 인해 그냥 프로그램이 설치된 폴더에 두었습니다. 혹시나 이 파일의 위치로 적당한 곳이 있으면 추천해 주십시오. ^^ 그것 역시 합리적이라면 반영하도록 하겠습니다.

소스 코드도 물론 공개됩니다. 다음의 경로에서 빌드가능한 유형의 솔루션 파일이 제공됩니다.

소스 코드 다운로드
; https://www.sysnet.pe.kr/bbs/DownloadAttachment.aspx?fid=436&boardid=635954948

[연관 글]


donaricano-btn



[최초 등록일: ]
[최종 수정일: 6/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 쓴 사람
 




[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
536정성태1/13/2022562021년 블로그 기부 수익 공개 ^^
535정성태11/25/20215982021년 새로운 PC
534정성태10/19/2021660파판14 - 에오르제아의 시간 알람을 위한 C# WinForms 응용 프로그램파일 다운로드1
533정성태10/6/2021813모바일 브라우저에서 "비공개 연결이 아닙니다." NET::ERR_CERT_AUTHORITY_INVALID 오류가 발생하는 현상 [1]
531정성태9/1/202191816GB로도 모자란 근래의 개발 환경
530정성태7/27/2021569그동안 마이크로소프트 계정으로 가입한 웹 서비스 및 응용 프로그램을 알아내는 방법
529정성태7/18/2021554C:\$Windows.~BT 용도와 삭제하는 방법
528정성태7/17/2021446Logitech Webcam이 있는 경우, %LOCALAPPDATA%\temp\LWSDebugOut.txt 파일의 (무제한) 증가 현상
527정성태7/13/2021494Microsoft Edge의 뉴스 알림 창 끄는 방법
526정성태7/11/20211482AMD CPU를 장착한 컴퓨터에서 Windows 11을 위한 fTPM 활성화 방법
525정성태6/30/2021672저작권 표시 없는 상업적 사용 가능한 무료 아이콘 구하기
524정성태6/25/20212003Windows 11 설치를 가로막는 TPM 칩, 운이 좋다면 구매할 수 있습니다. [2]
523정성태5/3/20212791절전 모드로 내려가는 우분투 머신 [7]
522정성태9/16/202043802020년 작업 PC ^^ [7]
521정성태11/25/20195117[종료] "시작하세요. C# 8.0 프로그래밍" 책을 1만원에 판매합니다. (4권 한정) [2]
520정성태8/26/20192405Snagit 2019(Build 3847) 사용 시 Effect 변경 후 창을 닫는 시점에 응용 프로그램이 종료하는 현상
519정성태7/15/20194000youtube-dl.exe를 윈도우 샌드 박스에서 실행
518정성태7/1/20194679크로미움 기반의 Microsoft Edge 웹 브라우저... 쓸만하네요. ^^ [4]
517정성태5/16/20194219윈도 운영체제는 태생적으로 갖고 있는 문제들로 인해 아직도 매우 취약한 운영체제로 분류됩니다?!! [2]
516정성태5/16/20193319배터리 사용 중인 태블릿에는 크롬보다는 Edge 브라우저가 더 낫습니다.
515정성태11/19/20187128LED 전등 교체와 잔광 현상 제거 콘덴서 - 두 번째 이야기
514정성태10/30/20188548LED 매입등 교체와 잔광 현상 제거 콘덴서
513정성태9/13/20185089블로거 분들 랜섬웨어 메일 "저작권관련 이미지 무단사용 안내메일(장명옥 본인제작)" 조심하세요. [2]
512정성태8/10/20184785번개는 땅에서부터 하늘로 올라가는 현상?
511정성태7/21/20184837[종료] DDR 3 4GB * 4EA, AMD 페넘II-X4 905e, 메인 보드 GA-770TA-UD3를 드립니다. [3]
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...