일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Callback
- Sync
- C
- install
- write
- API
- Close
- c++
- JavaScript
- range
- package
- windows
- json
- 영화
- http
- FOR
- GO 언어
- go언어
- 리뷰
- window
- Golang
- mutex
- 책
- File
- bitcoin
- Python
- Linux
- channel
- tcp
- go
- Today
- Total
목록전체 글 (203)
Code Habit
GetMonitorInfo를 사용하여 모니터 Display 정보를 구할 수 있다. BOOL GetMonitorInfoA( [in] HMONITOR hMonitor, [out] LPMONITORINFO lpmi ); hMonitor에 구하고자 하는 모니터 핸들을 넘기면 해당 모니터의 Display 정보를 MONITORINFO(structure)로 전달 받는다. 이때 MONITORINFO의 멤버변수 중 cbSize를 sizeof(MONITORINFO) (or sizeof(MONITORINFOEX)로 초기화하고 전달해야 한다. typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO..
멀티 모니터 구성에서 개발한 Application이 속한 모니터 정보를 구하고 싶을때 다음과 같은 API 함수들을 활용할 수 있다. - MonitorFromWindow - MonitorFromRect - MonitorFromPoint 각각 Window (or Rect or Point) 가 위치한 ( 혹은 영역이 많이 포함된 ) 모니터의 핸들을 반환해준다. HMONITOR MonitorFromPoint( [in] POINT pt, [in] DWORD dwFlags ); HMONITOR MonitorFromRect( [in] LPCRECT lprc, [in] DWORD dwFlags ); HMONITOR MonitorFromWindow( [in] HWND hwnd, [in] DWORD dwFlags ); 매..
tkinter 라이브러리를 통해 Button 및 Label을 간단히 만들어 볼 수 있다. 각 컨트롤을 만들기 전 이를 배치할 window 창을 만든다. from tkinter import * win = Tk() win.title("button & label") win.geometry("540x380") win.option_add("*Font", "돋움20") win.mainloop() Button() 함수로 버튼을 생성하고 pack() 함수로 버튼을 배치한다. btn = Button(win) btn.config(width=20, height=20) btn.config(text="버튼1") def clicked(): print("Clicked !") btn.config(command = clicked) b..
tkinter는 Python 설치 시 기본적으로 내장되어 있는 파이썬 표준 라이브러리이기 때문에 쉽고 간단한 GUI 프로그램을 만드는데 사용할 수 있다. 단 다른 GUI 프레임워크나 툴킷에 비해 지원되는 위젯들이 부족하고 이쁜 UI를 꾸미는데 적합하지 않다는 단점이 있다. tkinter는 다음과 같이 사용할 수 있다. from tkinter import * win = Tk() win.mainloop() tkinter 모듈을 import 하고 Tk클래스 객체를 생성한다. 그리고 실제 화면에 window를 띄우려면 mainloop() 함수를 호출하면 된다. title() 함수를 통해 window 타이틀을 수정하거나 geometry() 함수를 통해 윈도우 크기를 변경할 수 있다. win.title("title..
윈도우 녹음(마이크)장치에 연결하여 Master Volume 제어 및 변경되는 값을 가져오는 예제이다. COM 기반의 DirectShow 객체들을 이용할 것이고 이를 위해 다음과 같이 초기화 한다. // COM 초기화 HRESULThr = CoInitializeEx(NULL, ::COINIT::COINIT_APARTMENTTHREADED); if (FAILED(hr)) { } // GUID 구하기 hr = CoCreateGuid(&m_guidEventContext); if (FAILED(hr)) { } // NULL 체크 if (IsEqualGUID(m_guidEventContext, GUID_NULL)) { } 캡쳐(마이크)장치 타입의 장치 리스트를 가져오고 이 중 한가지 장치에 연결하여 현재 설정된 ..
Promise는 자바스크립트 비동기 처리에 사용되는 객체이다. 대부분의 작업이 비동기로 이루어지는 자바스크립트에서 콜백함수로 인한 복잡도가 높아지는 문제를 해결하기 위해 Promise 패턴이 고안되었다. Promise는 콜백 중첩으로 인한 문제점들을 해소하면서 비동기 작업들의 컨트롤이 수월해지고 코드의 가독성을 높이는데 기여하였다. 다음은 Promise를 사용하는 기본 예제이다. // Promise 생성 const promise = (param)=> { return new Promise((resolve, reject)=> { if(param) { resolve("true"); } else { reject("false"); } }); }; // Promise 실행 promise(true) .then((me..
일정 시간이 지난 뒤 함수를 실행 시키고 싶을 때, 혹은 일정시간마다 함수를 실행하고 싶을 때 setTimeout, setInterval 함수를 사용할 수 있다. - setTimeout(func, milliseconds, arg1, arg2...) : milliseconds 후 func 함수를 실행. (arg1, arg2... 매개변수 전달) - setInterval(func, milliseconds, arg1, arg2...) : milliseconds 마다 func 함수를 실행 (arg1, arg2... 매개변수 전달) clearTimeout, clearInterval함수로 위에 등록된 함수 호출을 취소할 수 있다. 예시 ) // setTimeout function OnTimeoutFunc(msg) ..
콜백함수(Callback Function)란 코드를 통해 명시적으로 호출하는 함수가 아니라, 함수를 등록해 놓으면 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 말한다. 콜백함수는 사용자 이벤트 처리나( Event Handler ) 네트워크 응답 처리 등의 비동기적 처리를 요할 때 사용된다. 콜백함수의 사용 예다. - 다른함수의 파라미터로 전달 function hello(callback) { callback("hi"); } function callbackFunc(msg) { console.log(msg); } hello(callbackFunc); - Event Handler 등록 const btnElement = document.querySelector("#buttonTes..