IT-개발/winapi 및 MFC(64)
-
[pipe] CreateProcess와 CreatePipe를 이용한 콘솔프로그램 입출력 제어 (펌)
표준IO 내용을 pipe를 통해서 생성한 process와 통신하겠다는 내용인데, pipe를 잘 사용하지 않아서 기록해두면 도움이 될듯 하다. (펌 - 출처 : https://yahon.tistory.com/277 ) 윈도우 콘솔프로그램들의 대부분은 특별한 동작을 위하여 사용되며 대표적인 콘솔 프로그램으로는 ping.exe netstat.exe 등이 해당된다. 윈도우 콘솔 프로그램은 아스키코드를 기반으로 사용자에게 정보를 출력해준다. 이러한 콘솔 기반 프로그램의 입출력을 제어하여 이용자가 보이지 않게끔 프로그램을 실행하고 결과를 받는 방법을 소개한다. 먼저 윈도우 표준 입출력을 위한 파이프의 개념부터 알아보자. 파이프는 리눅스에도 존재하는 개념으로 리눅스에서는 IPC(InterProcess Communic..
2019.10.08 -
CEdit - 한글기본으로 입력되게 처리
#include #pragma comment(lib, "imm32") void CxxEdit::OnEnSetfocus(){ // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. if (GetSafeHwnd() != NULL) { HIMC himc = ImmGetContext(GetSafeHwnd()); ImmSetConversionStatus(himc, IME_CMODE_NATIVE, IME_SMODE_CONVERSATION); ImmReleaseContext(GetSafeHwnd(), himc); } } 이런식으로 처리하면 될 듯~ 합니다. ㅋ 잘됩니다.
2018.11.30 -
process 실행 및 종료까지 대기 sample
(1. WaitForSingleObject 를 사용한 방법 : 펌 - http://sijoo.tistory.com/288) SHELLEXECUTEINFO info; // 실행을 위해 구조체 세트 ZeroMemory( &cinfo, sizeof(info) ); info.cbSize = sizeof(info); info.lpVerb = "open"; info.lpFile = "C:\\aaa\\aaa.exe"; info.lpParameters = "\"c:\\a.txt\""; info.fMask = SEE_MASK_NOCLOSEPROCESS; info.nShow = SW_SHOWDEFAULT; // 프로그램을 실행한다. int r = (int)ShellExecuteEx( &info ); //프로세스가 종료될 ..
2018.10.29 -
shlwapi - pathcreatefromurl (URL to FilePath)
url 로 현재 PC에 있는 파일의 경로 정보를 나타낼 수 있다. ex) file:///c:/sample/%23-00.html 그런데 이걸 윈도우에서 사용하는 MS DOS 시절 표시법 "C:\sample\....html" 로 바꾸려니 앞에 file:// 만 없앤다고 되는 일이 아니란걸 알게된다. 관련 자료를 찾다가 보니 위키백과에 관련 내용이 너무 좋아 Link 건다. https://en.wikipedia.org/wiki/File_URI_scheme 한마디로 변환이 필요한거다. C# 에서는 System namespace 에 있는 URI Class 의 Properties 중에 localpath 라는거 하나만 쓰면 된다는거 알게되니 너무 부럽니다. 역시, 이래서 C# 쓰나 싶다. 동일한 기능을 하는 MFC나..
2018.10.02 -
Web에서 Agent 실행하기(1) - Custom URI
Web page를 방문했을때, PC의 특정 Application이 실행되도록 하는 방법은 다양하지만, Custom URI 라는 거는 처음 본다. Custom URI에 대한 내용과 소개는 다른 분들이 너무 잘 정리해놓아서 ㅠ_ㅠ.. 이번에도 긁어다 놓습니다. 인생이 긁는 인생이네요. ㅋ 아래 내용보면 한마디로 이겁니다. OS의 Registry에 특정 EXE를 실행할 수 있도록 등록해 놓으면 Web page에서 해당 EXE를 실행해줄 수 있다~ 그런데, 이렇게 EXE를 실행시켜주려면, 당연히 1. 먼저 Registry에 등록해주는 프로그램(exe)가 있어야 겠죠? (관리자 권한 필요할 듯) 2. IE의 권한이 낮으므로 실행되는 exe가 권한이 똑같이 낮습니다. PC User에서 권한 상승동의를 받고 권한을 ..
2018.09.11 -
MAX_PATH - 파일명 및 전체경로 길이 제한
OS 마다 파일명 및 파일 전체경로 길이에 대한 제한이 다른것으로 인해 이기종 OS에서 파일을 다루(Create / Open / Rename)는 데에 여러가지 문제가 발생합니다. 여기서는 오로지 Window OS 에서의 MAX_PATH에 대해서만 이야기하려고 합니다. 프로그램을 개발할때에 MAX_PATH 라는 define을 흔히 사용하게 됩니다. #define MAX_PATH 260 저도 이렇게 나오네요. 실제로 PC 사용하시는 분 중에 이 이름보다 큰 경로길이를 요구하는 파일이름을 사용할 만한 분들은 별로 없습니다만 나름대로 파일 관리하신다면서 길게 파일이름을 쓰면 260을 넘기는 일이 종종생갑니다. 결론 부터 말씀드리면 \\?\ 요 문자를 사용해서 c:\0123456789\ .... 이렇게 길게 되어..
2018.06.01