본문 바로가기

old drawer

WinExec() CreateProcess() ShellEcecute() ShellExecuteEx() Windows 95의 출현과 함께 문서의 개념이 중요성을 띠게 되었다. 이제는 실행파일이라는 개념이 좀더 복잡해 지고 단순히 구동한다는 의미를 떠나 아주 방대한 개념으로 자리 잡고 있다. 문서라고 하는 것은 시스템의 네임스페이스의 일부인 보다 일반적인 객체를 말하고자 하며, 이문서에 대하여 '열기(open)', '인쇄(print)', '탐색(explore)', '찾기(find)'를 하는 프로그램이 있다. 다시 말해서, 문서라는 것은 그것에 대해서 프로그램이 어떤 동사(Verb)를 실행할 수 있는 모든 아이템을 말한다. 지금의 프로그램 실행자의 모체였던 WinExec()에서 ShellExecuteEx()라는 함수로 그 진행이 옮겨가는 이유도 이해 따른다. 이 장에서는 다음과 같은 것들을 다룰 것이다. 1... 더보기
[ETC] Windows 7에서 빠른 실행(Quick Launch) 사용하기 다음 방법을 순서대로 따라 해 보세요. 작업 표시줄에서 마우스 오른쪽 단추 클릭하고 [도구 모음], [새 도구 모음]을 차례대로 클릭하세요. 그림 축소그림 확대 새 도구 모음 – 폴더 선택 화면에서 [%APPDATA%\Microsoft\Internet Explorer\Quick Launch] 경로를 입력하고 [폴더 선택]을 클릭하세요. 그림 축소그림 확대 작업 표시줄에 빠른 실행(Quick Launch)이 추가된 것을 확인할 수 있습니다. 그림 축소그림 확대 빠른 실행(Quick Launch)을 아이콘 형태로 나타나게 하기 위하여 Quick Launch에서 마우스 오른쪽 단추를 클릭하세요. 그림 축소그림 확대 [텍스트 표시], [제목 표시]를 클릭하여 설정을 해제하세요. 그림 축소그림 확대 빠른 실행(Q.. 더보기
[ETC]명령어로 path 환경 변수를 영구히 변경하는 방법 명령어로 path 환경 변수를 영구히 변경하는 방법 Windows 7 1 Command Prompt 실행 단축키 윈도우키 + R 누르기 입력창에 cmd 입력하고 확인 버튼 클릭 2 setx 명령으로 path 환경 변수에 C:\Program Files\java\jdk1.6.0_26\bin 추가 C:\>setx path "%PATH%;C:\Program Files\java\jdk1.6.0_26\bin" 3 Command Prompt 재실행 후 javac 명령 실행 C:\>javac Usage: javac where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,so.. 더보기
[cmd] What is the Xcopy Command? What is the Xcopy Command?: The xcopy command is a Command Prompt command used to copy one or more files and/or folders from one location to another location. The xcopy command is also a DOS command available in MS-DOS. The xcopy command, with its many options and ability to copy entire directories, is similar to, but much more powerful than, the traditional copy command. The robocopy command is.. 더보기
[문제해결] 구글 검색 불가 문제 해결법 구글을 주로 사용하는데 언제부턴가(OS 재설치후인가? ㅡㅡ) 브라우저에서 구글이 열리지 않더군요 ㅠ.ㅠ google_logo by keso http://www.google.com http://www.google.co.kr http://www.google.co.kr/search?sourceid=chrome&ie=UTF-8&q=검색어 등등 모두 접속 불가~!! OTL 브라우저 주소창에 검색어 넣어서 바로 검색하는게 편한데 이게 안되니 참 불편하더군요 ㅡㅡ http://www.google.com/webhp 위 주소 하나만 잘열리더군요 ^^;; 구글을 싫어하는 곳에서 만든 프로그램이라도 설치되어 있나 싶었는데 윈도우의 hosts 파일에 저장되어 있는 구글 IP 주소가 동작하지 않는 것이었습니다. hosts 파일.. 더보기
[ETC] cmd 명령어를 활용한 환경변수 추가 command 창을 활용한 환경변수 추가 실행 - cmd >path 현재 환경변수 정보 보여줌. >set path path명령과 동일한 현재 환경변수 정보와 동일한 path 정보와 pathext라는 시스템 실행파일 확장자 변수가 같이 나온다. >set path =%path%;추가하고자하는경로; ex) >set path=%path%;c:\java\bin; 환경변수 추가(일시적) >setx path "%PATH%;추가하고자하는경로" ex) >setx path "%PATH%;c:\java\bin" 환경변수 추가(영구적) %path%를 하는 이유는 현재 환경변수에 path 정보를 가져와서 현재 환경변수에 새로운 환경변수를 추가해야하기 때문이다. echo 명령어를 사용하면 %%를 이용하여 모든 환경변수 내용을 알.. 더보기
[Win32 API] ExpandEnvironmentStrings The following example uses the GetComputerName, GetUserName, GetSystemDirectory, GetWindowsDirectory, and ExpandEnvironmentStrings functions to get information that describes the system configuration. C++ Copy #include #include #include TCHAR* envVarStrings[] = { TEXT("OS = %OS%"), TEXT("PATH = %PATH%"), TEXT("HOMEPATH = %HOMEPATH%"), TEXT("TEMP = %TEMP%") }; #define ENV_VAR_STRING_COUNT (sizeof.. 더보기
[MFC/C++] SHGetFileInfo 를 이용한 파일 속성 파악 SHGetFileInfo는 매우 유용한 API다 어찌나 친절한 지 File의 정보를 몽땅 건내준다 (심지어 아이콘 정보까지 말이다) 여기서는 간단하게 파일 속성을 알기 위한 용도로 사용했다 CString strDrive; SHFILEINFO shInfo; .... SHGetFileInfo(strDrive,0,&shInfo,sizeof(SHFILEINFO),SHGFI_TYPENAME | SHGFI_ATTRIBUTES); .... if ( !(shInfo.dwAttributes & SFGAO_HIDDEN) ) // 숨김파일은 제외한다 코딩 여기서 붉은색 플래그는 #define SHGFI_ICON 0x000000100 // get icon #define SHGFI_DISPLAYNAME 0x000000200 /.. 더보기
[MFC/C++] 레지스트리 값 쓰기/읽기 http://sbrich.tistory.com/1771 더보기
[C/C++] 레지스트리 사용법 아래는 간단히 정리된 레지스트리 사용법입니다. MYAPP부분에 프로그램이름을 넣고 사용하시면 간단할 것입니다. #define REGISTRY_ADDRESS HKEY_LOCAL_MACHINE\SOFTWARE\MYAPP void m_RegWrite(const char* regItemName, const char* value) { HKEY m_hRegsKey; RegCreateKey(HKEY_CURRENT_USER, REGISTRY_ADDRESS, &m_hRegsKey); RegSetValueEx(m_hRegsKey, // subkey handle regItemName, // value name 0, // must be zero REG_SZ, // value type canbe REG_DWORD, (LPBYT.. 더보기
[배치파일] 디렉토리 복사(폴더복사) "도스창(명령 프롬프트)"에서 직접 또는, 배치 파일 속에서 디렉토리를 복사하는 방법입니다. 도스의 일반적인 COPY 명령에는 디렉토리 복사 기능이 없습니다. 파일만 복사할 수 있습니다. 그 외에도, 파일 속성을 복사할 수 없는 등의 제약이 아주 많습니다. XCOPY 라는 외부 명령어로 디렉토리를 복사할 수 있습니다. 하위 디렉토리까지 포함, 모든 파일 복사 예제 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: xcopy d:\z\*.* d:\x\ /e /h /k D드라이브의 Z디렉토리의 트리 구조를, D드라이브의 X디렉토리로 전부 복사하는 예제입니다. /e : 비어 있는 하위 디렉토리까지 복사 /h : 히든 파일과 시스템 속성의.. 더보기
[배치파일] 6강 함수 고급 배치파일 제 006강 : 함수 [목차보기] 입력문, 제어문, 반복문에 이어, 이제는 함수에 대해 알아 봅시다. ◆ 함수 C언어등 대부분의 프로그래밍 언어에서는 함수를 지원합니다. 그런데 배치파일 역시나, 함수를 지원할 수 있습니다. 배치파일의 함수는 크게 3가지로, - 내부함수 - 외부함수 - 외부 EXE 응용 함수 이렇게 나눌 수 있습니다. 내부함수란 같은 배치파일 내에 함수를 호출하는 구조이며, 외부함수는 배치파일을 따로 작성해서 함수를 호출하는 구조입니다. 그리고, 외부 EXE 응용 함수는 배치파일에서는 할 수 없는 기능들을 하거나(실수연산, 텍스트컬러, 좌표이동 등) 거대한 알고리즘(정렬 등) 을 해야 할 때 빠른 속도로 도움을 받아 배치파일에 적용하는 기술입니다. 이 기술은 환경변수 트릭 .. 더보기
[배치파일] 5강 FOR 반복문 고급 배치파일 제 005강 : FOR 반복문 모든 프로그래밍 언어는 흐름형 구조, 제어문 구조, 반복문 구조를 가지고 있습니다. 배치파일에서도 반복문을 쓸 수 있는데 이는 for 문 또는 set /a와 goto문을 응용해서 만들 수 있습니다. ◆ FOR 반복문 [코드] for /L %%변수 in (시점,증감,종점) do ( [for문 코드] ) :: 띄어쓰기 조심하라는 부분은 로 강조하였음, 특히 ) 뒤의 띄어쓰기도 조심 변수 : set변수가 아닌 for문 변수이므로 %변수%가 아닌 %%변수 시점 : for문 반복시 초기 값 증감 : for문 반복할 때 마다 오르는 값 종점 : for문 반복을 마치기 위한 값 for문 코드 : 수행할 코드 입력 (단, set /a에서도 '%%변수'로 써야 함) 1부터 1.. 더보기
[배치파일] 4강 정수형 수치연산 2 고급 배치파일 제 004강 : 정수형 수치연산 2 [목차보기] 지난번에는 단순히 set /a 를 이용한 수치연산이라면 이번엔, 복합 대입 연산 (+=, -=, *=, /=, %%=) 에 대해 알아봅시다. ◆ set /a opr= 수치처리 (단, opr는 연산자) set /a 변수 연산자=연산식 이 뜻은 풀어서 설명 한다면 set /a 변수=변수 연산자 (연산식) 이 됩니다. 예를들어, set /a a+=b 라는 것은 set /a a=a+b 으로 풀어쓸 수 있다라는 말입니다. 즉, 자기자신 a에 있는 값과 b에 있는 값을 서로 더해 다시 a로 저장을 하라라는 뜻입니다. 물론 역시, -, *, /, %%(나머지) 역시, 동일한 원리로 동작을 하게 됩니다. 아래 예제를 봅시다. 파일명 : 4-1.bat @ec.. 더보기
[배치파일] 3강 정수형 수치연산 고급 배치파일 제 003강 : 정수형 수치연산 입력문, 제어문에 이어 이제 정수를 처리해 봅시다. ◆ set /a 기본적인 수치처리 1강에서 그냥 set a=123 이라고 하면 a에 문자열 123이 저장되었는 걸 배웠습니다. 또, set /p b=입력: 으로 입력문을 받았습니다. 이번엔 set /a 로 수치데이터 저장 및 연산에 대해 알아봅시다. set /a 변수=식이나 값 및 변수 (연산자는 +,-,*,/,%%(나머지) 의 산술 연산 뿐만 아니라, , ^, &, | 등의 비트 연산자등 C언어에서 사용되는 연산자 이용가능, 단, 숫자는 9자리까지 연산가능) 예를들어 먼저, 예제를 봅시다. 파일 명 : 3-1.bat @echo off echo ============================== echo.. 더보기
[배치파일] 2강 일반 제어문 고급 배치파일 제 002강 : 일반 제어문 지난 001강에서는 배치파일 기초 문법과 입력문에 대해 알아보았습니다. 이번 시강에서는 제어문에 대해서 알아봅시다. ◆ goto문 goto문이란, 그 레이블로 뛰어 넘어 가라는 말로 거꾸로도 올라가게도 할 수 있습니다. [코드] goto 레이블 [코드] :레이블 [코드] :레이블 : goto문에서 사용할 레이블을 정의합니다. (앞에 콜론 주의하세요. 세미콜론(;) 아닙니다.) goto 레이블 : 정의한 레이블로 넘어갑니다. ※위로 올라가는 goto문은 뛰어넘은 후 또 다시 goto문에 의해 계속 올라가기 때문에 조건 없이 한다면 무한반복이 발생되므로 주의하시기 바랍니다. ※레이블 이름은 exit, dir 등등 예약어도 쓰실 수 있으며, 한글, 숫자 다 됩니다. .. 더보기
[배치파일] 1강 입력문 ※ 배치파일을 시작하기 전에 배치파일은 일반 메모장에서 작성이 가능하고, 배치파일의 확장자는 .bat이며, 윈도우에서는 그 파일을 더블 클릭 한다면 바로 실행이 가능 합니다. 즉, C언어처럼 컴파일하는 언어는 아닙니다. 아래는 기초 구문입니다. 배치파일의 주석문은 앞에 :: (콜론2개)을 붙이며, 주석붙은 것은 실행이 안되며 다음줄로 넘어 갑니다. 또한 rem으로도 주석 처리가 가능 합니다. @echo off는 'C:\Users\Administrator>' 의 지저분한 표시를 없애기 위한 필수 구문입니다. echo. :공백 한 줄을 출력하라는 뜻 echo 메시지 :화면에 표시 pause>nul :키보드 입력 대기 (cmd에서 하지 않고 탐색기에서 더블 클릭하면 배치파일의 실행이 끝난후에는 곧바로 닫으므로.. 더보기
[MFC] 파일 복사 함수 CopyFile(원본 파일 경로, 결과 파일 결로, 덮어쓰기 여부); 덮어쓰기여부는 TRUE는 fail, FALSE는 덮어쓰기 더보기
[MFC] MFC로 외부프로그램 실행 해보기! ShellExecute() MFC로 외부프로그램 실행 해보기! MFC ShellExecute 함수를 이용하여 실행 하는 프로그램 만드는 예제입니다. 위 스냅샷은 실행 결과입니다. 아무파일이나 선택하구 실행하기 버튼을 누르면 그에 맞는 프로그램으로 실행이됩니다. 결과가 궁금하시면 첨부 file을 직접 down 받아 실행해보시기 바랍니다. ShellExecute 함수원형 HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); 윈도우 탐색기에서 해당 파일을 더블 클릭한 것과 완벽하게 일치하는 동작을 하는 함수 Hwnd : 부모 윈도우의 핸들이며, 이 값이 NULL이므로 부모 윈도우는 바탕화면이 됩.. 더보기
[Win32API] 외부 프로그램 실행 함수, WinExec() [Win32API] 외부 프로그램 실행 함수, WinExec() WinExec("cmd.exe", SW_SHOW); SW_SHOW 또는 SW_HIDE 와 같이 상태설정(uCmdShow), Display options... (MSDN 참조) API, MFC에서 프로그램에서 윈도우에서 도스 명령 실행 후(WinExec), 명령프롬프트 창이 바로 닫혀지는 경우에는 "cmd.exe /K" 사용. [Source Code] WinExec("cmd.exe /K netstat -an", SW_SHOW); (cmd.exe /? 참조) 출처:[Win32API] 외부 프로그램 실행 함수, WinExec() 더보기
[Synodus OB] 회칙 v1.0.0 Synodus OB 회칙 제 1 장 총칙 제 1 조 (명칭) 본회는 Synodus OB회(이하 본회)라 칭한다. 제 2 조 (목적) 본회는 회원들 간 친목 도모에 그 목적이 있다. 제 2 장 회원 제 3 조 (회원의 자격) 본회의 회원은 Synodus YB 출신으로서, 본회에서 승인된 자에 준한다. 제 4 조 (회원의 권리와 의무) 본회의 회원은 총회에서 발언권, 의결권과 임원의 선거권, 피선거권을 가진다. 본회의 회원은 회칙 준수와 회비 납부의무를 가진다. 제 5 조 (회원의 탈퇴, 자격상실) 1. 본회의 회원은 언제든지 자신이 탈퇴할 수 있다. 2. 본회의 분위기를 흐리거나 타회원에게 피해를 주는 회원은 임원회의 후 탈퇴시킬 수 있으며 재가입은 본인 희망 시 총회에서의 결정에 따라 회원 자격을 회복할.. 더보기
[공감] 잘 산다는 것은... 지불해야할 세금이있다면 그건 나에게 직장이 있다는것이고.. 파티를 하고나서 치워야 할게 너무 많다면 그건 친구들과 즐거운 시간을 보냈다는 것이고.. 옷이 몸에 조금 낀다면 그건 잘먹고 잘살고 있다는 것이고.. 깍아야 할 잔디, 닦아야할 유리창, 고쳐야할 하수구가 있다면 그건 나에게 집이 있다는 것이고.. 정부에 대한 불평 불만의 소리가 많이 들리면 그건 언론의 자유가 있다는 것이고.. 주차장 맨끝 먼곳에 겨우 자리가 하나 있다면 그건 내가 걸을 수 있는데다 차도 있다는 것이고.. 난방비가 너무 많이 나왔다면 그건 내가 따뜻하게 살고 있다는 것이고.. 교회에서 뒷자리 아줌마의 엉터리 성가가 영 거슬린다면 그건 내가 들을 수 있다는 것이고.. 세탁하고 다림질 해야 할 일이 산더미라면 그건 나에게 입을 옷이 .. 더보기
[C++] 프로그램 실행파일의 경로 가져오기 ini 파일을 읽어들여 프로그램을 셋팅하거나 할 때, 간혹 실행파일의 경로가 필요해질때가 있다. 이런 경우 아래의 소스를 이용하면 실행파일명을 제외한 나머지 경로를 구해올 수 있다. //++++++ 실행파일의 경로를 Get ++++++// CString strFolderPath; // 현재 프로그램의 실행 파일이 있는 폴더명을 추출함 ::GetModuleFileName(NULL, strFolderPath.GetBuffer(MAX_PATH), MAX_PATH); strFolderPath.ReleaseBuffer(); if (strFolderPath.Find('\\') != -1) { for (int i = strFolderPath.GetLength() - 1; i >= 0; i--) { TCHAR ch =.. 더보기
자동차·전자업계, SW 아키텍트 양성 안간힘 자동차·전자업계, SW 아키텍트 양성 안간힘 소프트웨어(SW) 중요성이 커지면서 자동차·전자업계가 SW 최상위 개발자인 SW 아키텍트 양성에 안간힘을 쓴다. 글로벌 표준에 맞춘 SW 개발과 고품질 SW 요구가 늘어나면서 이를 책임질 SW 아키텍트가 필수 인력으로 부상했기 때문이다. 21일 한국소프트웨어기술진흥협회(KOSTA)와 제조업계에 따르면 최근 현대모비스가 처음으로 단체 인증을 실시해 공인 SW 아키텍트 7명을 배출했으며, 현대엠엔소프트, LG전자 등도 SW 아키텍트 양성에 힘을 쏟고 있다. 자동차 업계가 SW 아키텍트 양성에 힘을 쏟는 이유는 자동차 SW 개발 표준인 `오토사(AUTOSAR)`를 도입하기 위해서다. 오토사는 BMW, 벤츠 등 자동차 제조사와 보쉬, 지멘스 등 부품 제조사들이 200.. 더보기
한국SW 산업, 비즈니스분석가 양성 시급 한국SW 산업, 비즈니스분석가 양성 시급 소프트웨어(SW) 제품은 임베디드 SW, 패키지 SW 등 여러 종류가 있지만, 모든 SW는 결국 고객의 구매와 사용 목적을 달성시키는 제반 기능을 얼마나 잘 제공하는가에 따라 시장경쟁력이 좌우된다. 따라서 SW 제품 개발에 있어 사용자가 원하는 기능을 심층 분석하고, 경쟁제품보다 더 큰 사용가치를 창출하도록 상세스펙을 창안해 문서화하는 활동이 선행돼야 한다. 이런 활동을 요구분석, 분석산출물을 요구스펙, 요구분석을 체계화하는 프로세스, 방법론 및 툴의 체계를 요구공학이라 부른다. 애플은 요구분석시 사용자가 필요로 하는 기능, 사용자에게 정말 중요한 기능, 사용자가 가장 편하게 느끼는 사용 시나리오를 최대한 명세화하는 데 많은 시간과 노력을 기울이고 있다. 여기서 .. 더보기
[11/18] 범계 영어회화 1. Article Sharing - http://www.koreatimes.co.kr/www/news/biz/2012/11/123_124860.html 2. Script Reading - Modern Family Season 1 Episode 5 3. Presentation - About Music - Script : Today, The topic is Music. But What I want to talk about is actually a Movie, Billy Eliet. I think eveyone here knows the movie. Billy Eliteis so famous so it was remade as a musical as well. For ones who do not know i.. 더보기
[MFC] MFC COleDateTime 이용해 시스템 날짜 시간 얻기 1. COleDateTime는? COleDateTime는 유동적으로 변하는 시스템의 날짜와 시간의 값을 얻거나 수정할수 있다. 2. 사용 예제 1) 현재 시스템의 년/월/일/시/분/초 를 얻어 오는 예제 COleDateTime의 객체를 생성한다. static COleDateTime WINAPI GetCurrentTime( ) throw( ); 현재 날짜/시간을 리턴해 주는 메서드를 이용해 mdiStart를 초기화 해준다. 년/월/일/시/분/초 를 출력해서 값을 확인해 본다. 2) 요일 알아오기. int GetDayOfWeek( ) const throw( ); 메서드를 이용해서 요일을 알아 올수 있다. 보면 알겠지만 반환타입이 int이다. 1~7(일~월)을 리턴한다. 3) 날짜/시간 수정하기 int Set.. 더보기
[MFC] F1 도움말 기능 비활성화 MFC로 개발시, 빌드된 프로그램에서 F1을 누르면 도움말 기능이 실행된다. 문제는 CWinApp 클래스에 기본으로 포함되어있어 프로그램이 도움말 기능을 지원하지 않더라도 Help 파일을 찾으려는 메세지 창이 뜨게 된다. 이 경우 도움말 기능을 비활성화하고자 할때는 다음과 같이 하면 된다. -> ID_HELP 관련 커멘드 주석처리 BEGIN_MESSAGE_MAP(CToolDBHandlerApp, CWinApp) //ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() 더보기
[MFC] 키보드 키 값 VC깔린곳에 include폴더를 보시면 winuser.h파일이 있는데요. /* * Virtual Keys, Standard Set */ #define VK_LBUTTON 0x01 #define VK_RBUTTON 0x02 #define VK_CANCEL 0x03 #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ #define VK_BACK 0x08 #define VK_TAB 0x09 #define VK_CLEAR 0x0C #define VK_RETURN 0x0D #define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAP.. 더보기
[MFC] Enter Key 종료 방지 1. 원하는 다이얼로그에서 재정의를 클릭 2. PreTranslateMessage를 재정의한다고 하고 3. 원하는 메시지를 먹어버리면 됨... 여기서는 엔터키를 그냥 삼켰음. BOOL CSocketTestDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->message == WM_KEYDOWN){ // 엔터키가 눌렸다면 if(pMsg->wParam == VK_RETURN ){ return TRUE; } } return CDialog::PreTranslateMessage(pMsg); } [출처] mfc dialog 엔터키 종료 방지|작성자 Hyunnim 더보기