카테고리 보관물: 유용한 프로그램

NirCmd 를 이용해서 프로그램 화면 중앙에 띄우기

개요

큰 모니터를 사용하면서 전체 화면으로 프로그램을 사용하면 양쪽 끝 부분이 한눈에 들어오지 않아 불편할 때가 있었습니다. 화면 가운데 원하는 크기로 나타났으면 좋겠다는 생각이 가끔 드는데 화면의 크기를 조정하기도 어렵고 위치도 가운데로 옮기기 어려웠습니다. 여러가지 프로그램을 잠시 사용해 보았는데 필자에게 딱 맞는 것은 없었습니다. 그러다가 NirCmd 라는 유틸리티 프로그램을 알게 되었습니다.

NirCmd

이 프로그램은 명령 프롬프트에서 원하는 동작을 실행할 수 있는 프로그램 입니다. 다음 주소에서 확인하실 수 있습니다.

https://www.nirsoft.net/utils/nircmd.html

간단한 설명과 여러 응용방법이 설명되어 있습니다. 화면 맨 아래에 다운로드 받을 수 있는 주소가 있습니다. 압축을 풀고 그냥 실행하면 다음과 같은 화면이 나타납니다.

그냥 실행하면 나타나는 화면
그냥 실행하면 나타나는 화면

Copy To Windows Directory 버튼을 클릭해서 복사해도 되고 Path에 설정된 디렉토리에서 실행해도 됩니다.

활용

필자는 프로그램의 크기와 위치를 변경하는 용도로 사용했습니다. 먼저 Visual Studio Code를 활성화합니다. Visual Studio Code 를 크기를 조절하고 화면가운데 오도록 명령 프롬프트에 다음과 같이 입력하고 실행합니다.

nircmd win setsize ititle "Visual Studio Code" 0 0 2560 1440

nircmd win center ititle "Visual Studio Code"

첫번째는 윈도우 제목이 Visual Studio Code를 포함하는 프로그램의 크기를 2560*1440 크기로 조절하고 위치를 0, 0(x, y)로 이동하라는 명령입니다. ititle은 제목을 찾을 때 입력한 글자가 포함된 것을 찾으라는 의미입니다. 아래의 주소에 자세한 내용이 있으므로 참조하시면 됩니다. title, stitle, etitle 의 내용을 보시면 용도에 따라 약간 다름을 알 수 있습니다.

https://www.nirsoft.net/utils/nircmd2.html

두번째는 윈도우 제목이 Visual Studio Code를 포함하는 프로그램을 화면 가운데로 위치 시키는 명령입니다. 이 명령을 내리면 화면 가운데로 위치가 변경되는 것을 알 수 있습니다.

게임화면

필자는 FPS 종류 게임을 가끔하는데 이상하게 조금만 플레이 해도 멀미(?) 증상이 생기면서 도저히 할 수 없는 경우가 있었습니다. 이런 경우 게임내에서 창모드로 실행해 주고 위의 명령을 실행하면 화면이 작은 상태에서 가운데에 위치하게 됩니다. Far Cry 게임을 예로 들면 다음과 같습니다.

nircmd win center ititle "Far Cry"

NirCmd 유틸리티가 다양한 기능이 있으므로 설명을 잘 살펴보시면 원하시는 기능을 쉽게 조합하실 수 있을 것으로 생각됩니다.

최대절전 모드에서 다시 시작하지 못하는 문제 해결

개요

필자는 최대절전 모드를 잘 활용하고 있습니다. PC의 상태가 작업하던 상태로 유지되어 있기 때문에 다시 업무를 시작할 때 많은 시간을 절약해 줍니다. 그런데 얼마전부터 정상적으로 부팅되지 않고 켜지는 듯 하다가 다시 재부팅되는 현상이 나타났습니다. 부팅이 되면 새로 시작한 것과 같은 상태가 되어버렸습니다.

조치사항

검색해보니 필자와 같은 현상을 경험한 사람들이 많았습니다. 근래에 변화가 있었던 부분은 이전 하드디스크 대신 메모리 저장 장치를 장착한 것과 몇 가지 프로그램을 설치한 것이 전부였습니다.

일단 새로 설치한 프로그램부터 제거하고 최대 절전 모드에서 다시 정상적으로 부팅되는지 확인해 보았습니다. 새로 부팅되는 현상이 반복되었습니다.

혹시 그래픽카드 드라이버 문제인가해서 최신 버전으로 업데이트 했습니다. 그래도 문제가 반복되었습니다.

절전모드를 다음 명령어로 껐다가 재시작 해 보았지만 문제가 해결되지 않았습니다.

powercfg /h off

powercfg /h on

또 다른 방법으로 레지스트리 값을 추가해 보았습니다. 레지스트리 에디터를 관리자 모드로 실행시키고 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power 경로로 접근합니다. CsEnabled 항목이 있는 경우 값이 1이면 0으로 바꾸어 줍니다. 필자는 CsEnabled 항목 자체가 없어서 생성하고 값을 0으로 했습니다.

레지스트리에 CsEnabled 항목 추가

한 두번은 정상적으로 되는 것 같다가 결국 같은 현상이 나타났습니다.

덤프 파일 분석

원인이 있을 것으로 생각되어 이벤트 로그를 확인해보니 다음과 같은 내용이 등록되어 있었습니다.

Windows를 최대 절전 모드에서 다시 시작하지 못했습니다(오류 상태: 0xC0000001).

컴퓨터가 오류 검사 후 다시 부팅되었습니다. 오류 검사: 0x000000a0 (0x0000000000000608, 0xffffb70f42f22018, 0x0000000000000000, 0x0000000000000000). 덤프 저장 위치: C:\WINDOWS\MEMORY.DMP. 보고서 ID: 00000000-0000-0000-0000-000000000000

그와 함께 덤프(dump) 파일이 기록되었다는 정보가 같이 있었습니다. 생각해 보니 덤프 파일을 분석해보는 것이 원인을 파악하는데 가장 정확한 방법이라고 판단되었습니다.

윈도우에서 덤프 파일을 분석하는 프로그램을 설치 후 기록된 덤프파일을 열어 분석을 진행했습니다. 덤프 파일을 분석하는 방법은 검색해 보시면 좋은 글이 많이 있으므로 그것을 참조하시면 됩니다.

확인해보니 두 가지 문제가 있을 가능성이 있었습니다. 하나는 nvme 드라이버에 관련한 것 이었고 다른 것은 키보드와 마우스의 기능을 보조해 주는 서비스 프로그램이었습니다. 마침 nvme 를 추가로 장착한 상태이고 키보드 마우스 프로그램은 이전부터 사용하던 것이라서 nvme드라이버가 문제라고 판단했고 삭제했습니다.

어떤 이유 때문에 드라이버가 문제를 일으킨 것인지 모르겠지만 삭제 후 아무런 문제없이 최대절전 모드에서 잘 깨어닜습니다.

필자와 비슷한 문제를 겪으신 분들 중 잘 해결이 되지 않으면 덤프파일을 분석해서 원인을 찾아보시는 것을 추천드립니다.