프로그래밍

해당되는 글 140
thumbnail
프로그래밍

GDI와 DC 개념 정리

GDI란(Graphics Device Interface)? 윈도우 OS를 위해 하드웨어 제조회사들이 MicroSoft에서 미리 정해놓은 사양에 따라 하드웨어를 구동할 수 있는 구동 프로그램인 Device Driver를 작성하여 배포합니다. 그렇기에 윈도우 설치시 그래픽카드와 맞는 Device Driver를 자동으로 윈도우가 설정합니다. 응용프로그램이 그래픽을 출력하고자 한다면 윈도우에 요청을 하게되고 윈도우는 Device Driver를 호출하면 Device Driver이 하드웨어를 구동시키게 됩니다. (Application -> Windows -> Device Driver -> Graphic Card) 이렇게 되면 하드웨어의 종류와 관계없이 항상 동일한 명령어를 이용하여 그래픽을 출력할 수 있어 하드웨어..
thumbnail
프로그래밍/C#

[C#] 자연스러운 정렬(natural sort) 사용하기

C#에서 정렬을 할때 (특히 리스트뷰) 원하는 대로 정렬이 안되는 경우가 있습니다. 여기서 원하는 대로 정렬이란 윈도우 탐색기에서 우리가 이름을 클릭해 정렬을 했을때 나오는 방식을 의미합니다. 리스트뷰에서 오름차순, 내림차순 옵션을 줘도 윈도우 탐색기랑 완벽히 똑같게 정렬이 되지 않는 경우가 많습니다. 또한 드래그 드롭으로 아이템을 추가할때도 따로 처리해주지 않으면 탐색기에서 보던 순서로 아이템이 추가되는게 아닌 뒤죽박죽 추가됩니다. 보통 shlwapi.dll 를 이용해 해결 합니다만.. 이를 사용하지 않고 윈도우 탐색기 수준의 정렬을 구현된 코드가 있어서 포스팅 합니다. public static int CompareNatural(string strA, string strB) { return Compar..
thumbnail
프로그래밍/Python

[Python] 엑셀파일 인덱스 차례대로 Pandas로 읽어오기

파이썬에서 엑셀 파일을 불러오기 위해 OpenPyxl 를 써봤으나 처리 속도가 너무 느렸습니다. 대안을 찾아보다가 pandas 가 괜찮은 성능을 보여줘서 엑셀파일을 읽는 간단한 예제를 남겨봅니다. pip install pandas 우선 엑셀파일을 읽어오기 위해선 pandas 라이브러리가 필요합니다. 다음 명령어를 입력하여 설치해줍니다. import pandas as pd try: #dtype=str -> 문자열 취급 -> 010 표시 df = pd.read_excel('example.xlsx', sheet_name = 'data', dtype=str) for i in df.index: #엑셀의 인덱스 수만큼 반복한다. name = df.loc[i, '이름'] #현재 인덱스의 이름을 가져온다 phone_n..
thumbnail
프로그래밍/Python

[Python] PushBullet으로 SMS 전송하기

Pushbullet API를 이용하면 손쉽게 SMS를 전송할 수 있습니다. 단 사용을 위해서 PushBullet 어플이 스마트폰에 깔려있어야 하고 PushBullet 어플에 신호를 주면 PushBullet 어플이 SMS를 그 스마트폰으로 직접 보내는 방식입니다. 이 PushBullet 어플에 신호를 주는걸 Python을 통해 구현해보겠습니다. PushBullet 사이트에서도 API 사용법을 친절하게 지원하나 더 쉽게 하는 방법은 Python에 PushBullet 라이브러리를 이용하는 방법입니다. pip install pushbullet.py 다음 명령어를 통해 PushBullet 라이브러리를 설치합니다. 사용방법은 이곳에 자세히 설명되어 있습니다. 당연히 여러가지가 가능하나 이 글에선 SMS 전송방법만을..
thumbnail
프로그래밍/C#

[C#] Selenium IEDRIVER이 작동하지 않을때 해결법

Selenium으로 IEDriver을 제어하면 일부 컴퓨터에서 프로그램 구동이 되지 않고 소리 소문 없이 꺼져 버리는 경우가 있었습니다. 닷넷 프레임워크를 지워보고 별짓 거리를 다해봤으나.. 원인이 다른데 있더군요 ^^;; 제 컴퓨터에선 잘 작동하던 게 다른 컴퓨터에 배포하면 안 켜지더라고요. 그래서 디버깅으로 확인해보니 IEDRIVER 쪽에서 오류가 나더라고요. 안되시는 분들은 아래 방법을 해보시길 바랍니다. 1. 익스플로러 톱니바퀴 - 인터넷 옵션 - 보안 탭으로 이동합니다 2. 아래의 보호 모드 사용에 체크합니다 인터넷뿐만 아니라 로컬 인트라넷, 신뢰할 수 있는 사이트, 제한된 사이트로 가셔서 보호 모드 사용에 모두 체크해주셔야 합니다. (중요) 3. 익스플로러 옵션에 가서 줌배율을 100%로 고정..
thumbnail
프로그래밍/C#

[C#] 음성인식 검색기 만들기 0편. 구상

더보기 안녕하세요 파일입니다. 오랜만에 C# 프로그래밍을 할 기회가 생겼습니다. 아이디어가 들어왔다고 해도 좋은데요 ^^ 바로 음성인식 검색기입니다. 저희 아버지가 컴퓨터 세대가 아니셔서 독수리 타자를 하시는데 신문 검색이나 인터넷 검색 등을 할 때 타자가 느려서 너무 고생이라고 하십니다. 말로 하는게 타자 입력보다 빠를거 같다며 음성인식으로 검색하면 좋을거 같다는 말을 듣고 바로 제작을 시행하였습니다. 우선 프로그램의 단계는 다음과 같이 구성했습니다. 1. 음성인식을 한다 (라이브러리 이용) 2. 음성인식한 값을 저장한다 3. Selenium 을 이용하여 웹을 제어하거나 인터넷 창을 연다 4. 중간중간 작업은 무료 TTS 엔진으로 읽어준다. 일단 들어보면 극히 간단해 보입니다. 저도 쉽게 될 줄 알았거..
thumbnail
프로그래밍/C#

[C#] Selenium 프로그램 종료 후 종료되게 하기와 Close,Quit, Dispose 차이 알아보기

Selenium에서 종료하는 명령어는 총 3가지가 있습니다. driver.Dispose(); driver.Close(); driver.Quit(); 다 종료하다는 의미를 가지고 있는데 그 차이가 무엇인지 오늘 알아보고, 프로그램 종료 후 Selenium 서비스를 완전히 종료하는 법을 알려드리겠습니다. IWebDriver driver = new InternetExplorerDriver(); //선언 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { driver.Close(); } 우선 Selenium 종료를 위해 driver.Close()를 시행해봅니다. Selenium이 컨트롤 하고있는 웹 브라우저는 꺼지지만 다음과 같은 콘솔..
thumbnail
프로그래밍/C#

[C#] NAUDIO 로 마이크 볼륨레벨 가져오기

var waveIn = new NAudio.Wave.WaveInEvent(); waveIn.DeviceNumber = 0; waveIn.WaveFormat = new NAudio.Wave.WaveFormat(16000, 1); waveIn.DataAvailable += WaveIn_DataAvailable; waveIn.StartRecording(); private void WaveIn_DataAvailable(object sender, WaveInEventArgs e) { //if (isRecording) //{ // writer.Write(args.Buffer, 0, args.BytesRecorded); //} float max = 0; // interpret as 16 bit audio for (i..
최근글
인기글
이모티콘창 닫기
울음
안녕
감사
당황
피폐