soma0sd

코딩 & 과학 & 교육

반응형

pywin32의 모듈인 win32gui를 이용하여 현재 열려있는 창의 이름과 핸들의 리스트를 얻도록 하겠습니다. 윈도우의 핸들은 비활성 창의 정보를 얻거나 명령을 내릴 때 사용합니다. 스크립트 이 스크립트는 python 3.6, 3.7에서 시험했습니다. from win32 import win32gui def getWindowList(self): def callback(hwnd, hwnd_list: list): title = win32gui.GetWindowText(hwnd) if win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd) and title: hwnd_list.append((title, hwnd)) return True output..

Python: 윈도우와 핸들 목록 얻기

기존의 개발환경 이미 파이썬(Python)을 써서 뭔가 하고 있기 때문에 사용하던 개발환경이 있습니다. 운영체제로는 윈도우즈 10을 사용하고 있고, 아나콘다(Anaconda)에서 제공하는 파이썬 배포판과 패키지 관리 프로그램인 conda를 사용하고 있습니다. 코딩을 위해서 사용하는 텍스트에디터는 비주얼 스튜디오 코드(VS Code)를 사용하고 있습니다. 이후의 설명은 이 상태에서 출발하는 것을 가정합니다. 어떤 매크로를 만들까 가장 먼저 고려할 점은 비활성 상태인 창을 컨트롤 할 수 있어야 한다는 것입니다. 관련 MSDN 문서(영문) 활성 창은 사용자가 현재 사용하고 있는 창입니다. 여러 창 중에서 가장 앞에 배치되어 있습니다. 비활성 창은 사용자의 입력이 없고, 활성창에 가려서 일부만 보이거나 완전히 ..

파이썬 매크로 제작: (1) 개발환경 구성

VSC에서Ctrl + F 를 사용하면 에디터 상단에 찾기 도구가 나타납니다. 가장 왼쪽의 화살표를 누르면 바꾸기 메뉴도 지원하죠. 특정 단어를 찾아서 자꿔야 하는 경우, 에지간하면 이것을 쓰게 될 상황이 식별자를 모두 바꿀 때 뿐이라 Ctrl + F2로 해결하게 됩니다. 이쪽이 굳이 수고롭게 클릭해가며 설정 맞출 필요 없이 키보드 안에서 해결할 수 있거든요. 찾기 도구의 진가는 정규표현식을 사용할 때 나타납니다. 문제 위의 파이썬 파일에서 보이는 수많은 식별자와 값들은 목적이 같습니다. 그래서 저는 이것을 flags라는 이름의 사전형 변수(dict)로 만드려고 하는데요 수십개나 되는 변수를 일일히 사전형으로 바꾸기에는 노력이 너무 많이 듭니다. 대상 찾기 제 경우 모든 대상을 찾기 위해서 itp_([\w..

VS Code: 정규표현식을 이용한 찾기, 바꾸기

다른 라이브러리의 도움 없이 순수 자바스크립트로 만든 자동목차 생성 기능입니다. 방식 본문 내용이 article-wrap클래스 안에 있다는 가정을 두고 본문에 있는 표제(heading)를 h1, h2, h3의 3단계까지 찾아서 각각의 id를 만들고, 목차에 항목을 추가하는 작업을 합니다. 중복을 피하고자 내부링크는 태그이름과 내용의 조합으로 만들었지만 같은 단계의 같은 제목인 경우 오작동을 피할 수 없습니다. 만든 목차는 ul리스트이며, toc-wrap 클래스를 가지고 있는 컨테이너 안에 들어가게 됩니다. 스킨편집등을 통해 별도로 제작해야 합니다. 소스코드 타입스크립트 // 본문 컨테이너와 목차 컨테이너 선택 var article_wrapper = document.querySelector(".articl..

순수 JavaScript로 만드는 자동 목차 기능

태그는 키보드 입력을 나타냅니다. 문서에 단축키 표시 등을 넣을 때 사용합니다. Ctrl+C로 내용을 복사할 수 있습니다. 와 같은 방식으로 사용합니다. 스타일 시트 kbd { font-weight: bold; font-size: 0.8em; vertical-align: middle; margin: 0 0.3rem; border: 1px solid #aaa; border-radius: 4px; display: inline-block; padding: 1px 8px; background: linear-gradient(178deg, #fff, #fff, #fff, #ddd); box-shadow: 1px 1px 2px #777; }

스킨 업데이트: <kbd> 스타일 추가

아나콘다(ANACONDA)는 과학/수학/통계 등을 위한 패키지가 미리 설치되어 있는 배포판과 함께 각종 도구를 패키지로 만든 통합개발도구입니다. 저도 이걸로 파이썬을 사용하고 있는데요. 현재 사용하고 있는 버전은 3.7.4입니다. 하지만 최근에 마운트 앤 블레이드 모드 개발을 뜯어보니 파이썬 2.X환경에서 제작되었고, 파이썬은 2.X와 3.X에 문법 차이가 심해서 실행할 수 없는 상황입니다. 하지만, 3.X 아나콘다를 설치했는데 2.X 아나콘다를 또 설치할 필요는 없습니다. 환경 만들기 아나콘다 네비게이터(ANACONDA Navigator)를 실행하면 왼쪽에 환경(environment) 탭이 있습니다. 생성(Create)을 눌러 환경을 새로 하나 만듭니다. 이름과 파이썬 버전을 선택합니다. 환경 이름은 ..

아나콘다 환경에서 여러 버전의 파이썬 사용하기

객관식 퀴즈나 간단한 심리테스트 등에 이용할 수 있는 마크업 규칙과 그것을 작동하게 하는 스크립트를 만들어보려고 합니다. 이전 글 오늘의 JS 놀이: 정적 페이지를 위한 퀴즈 엔진을 만들 계획에 이어서, 계획을 실제로 작동하게 하는 스크립트를 제작합니다. 스크립트는 초기화 단계와 작동 단계로 나눌 수 있습니다. 퀴즈 초기화 document.addEventListener('DOMContentLoaded', (event) => { // 컨텐츠 로드 후에 할 일 }); 웹 페이지가 모든 요소를 표시할 준비가 끝나면 퀴즈를 초기화하도록 합니다. 모종의 이유로 마크업을 모두 표시하기 전에 작동해버리면 오류로 인해 멈출 수 있거든요. document.addEventListener('DOMContentLoaded',..

오늘의 JS 놀이: 정적 페이지를 위한 퀴즈엔진 제작

복잡한 일은 최대한 스크립트에 맞기고 간단한 마크업만 사용하여 객관식 퀴즈를 구현하고 총점을 확인할 수 있는 자바스크립트 엔진을 만들어보려고 합니다. 티스토리에 써볼 생각이니 하나의 정적 페이지 안에서 출제와 결과가 모두 나와야 합니다. 간단한 마크업 대충 문제라는 내용 대충 답안이라는 내용 대충 10점짜리 답이라는 내용 대충 결과페이지라는 내용 적당히 점수: / 다시하기 이런 식으로 만들 수 있도록 스크립트를 구현할 생각입니다. 태그 자체가 다르니 스타일시트에서 관리하기에도 나쁘지 않을 듯하고, 굳이 있는 태그 안에 class니 id니 data-quiz니 넣어가며 불편하게 만들고 싶은 생각이 없어요. 만들때 만큼은 간단했으면 좋겠습니다. 간단한 기능 문제를 내는 페이지는 각각 태그로 구분합니다. 봐야 ..

오늘의 JS 놀이: 정적 페이지를 위한 퀴즈엔진을 만들 계획

그리드 레이아웃은 가상의 격자에 요소를 배치합니다. 여기서는 배치를 할 요소들을 감싸는 부모 요소를 컨테이너(container)라 하고 배치할 대상인 자식 요소를 아이템(item)이라 하겠습니다. 컨테이너에 의해 배치된 아이템은 컨테이너의 속성과 조합되어 배치되고 정렬합니다. 아이템 속성 배치 .item { grid-column-start: 열이름 or 열번호; grid-column-end: 열이름 or 열번호; grid-row-start: 행이름 or 행번호; grid-row-end: 행이름 or 행번호; } .item { grid-column: 시작열 / 끝열 grid-row: 시작행 / 끝행 } 그리드의 행이나 열을 지정해서 아이템을 배치합니다. 각 번호는 1부터 시작해서 열은 오른쪽으로 행은 아래..

CSS: 그리드(Grid) 아이템 속성

End of content

No more pages to load

◀ PREVNEXT ▶