728x90

Programing Story's 260

[Windows] 특정 확장자 마우스 우클릭 메뉴 추가

필자의 경우 vhd 파일을 마운트와 언마운트를 자동화하기 위해 메뉴를 추가했습니다 우선 regedit 프로그램을 실행 하여 아래의 경로로 이동합니다 HKEY_CLASSES_ROOT\SystemFileAssociations 이후 확장자를 검색 합니다 확장자가 없을 경우 해당 확장자를 [새로 만들기] - [키]로 추가하면 됩니다 필자의 경우도 확장자가 존재하지 않아 추가 후 작업을 진행하였습니다 구성은 아래와 같습니다 .vhd 확장자에 shell 키를 등록 후 mount 키와 unmount 키를 등록하여 줍니다 mount키의 기본값에는 마운트라는 값을 넣어주고 unmount키의 기본값에는 언마운트라는 값을 넣어 줍니다 mount 하위 command 구문의 기본값에는 마운트 커맨드가 지정된 배치 파일경로와 %..

OS/Windows 2023.05.04

[MFC] Thread 동기화 (CreateEvent)

Thread 사용 시 함수의 중복된 실행을 막기 위해 사용하는 방법입니다 우선 헤더 파일에 이벤트 핸들을 추가합니다 HANDLE m_hEvent; 그 후 생성자 함수에서 이벤트를 생성합니다 CMyClass::CMyClass() { m_hEvent = CreateEvent(NULL, FALSE, TRUE, NULL); } CreateEvent 함수의 인자값으로는 첫 번째 : 이벤트 속성 (기본 NULL 값) 두 번째 : 매뉴얼 설정 (자동 설정의 경우 FALSE) 세 번째 : 초기값 (초기 활성화 시 TRUE) 네 번째 : 이벤트명 ( 기본 NULL 값) 생성 후 함수에서 아래와 같이 작성하면 동기화가 완료됩니다 void CMyClass::MyFunc() { WaitForSingleObject(m_hEve..

Application/MFC 2023.05.03

[Windows] 윈도우 비밀번호 초기화

윈도우 비밀번호를 잊어버렸을 경우 초기화하는 방법을 소개합니다 우선 윈도우 설치 USB 혹은 기타 윈도우 PE USB를 준비합니다 필자는 설치 USB를 기준으로 소개해 드리겠습니다 위의 화면에서 Shift + F10 키를 누릅니다 프롬프트 화면이 뜨면 diskpart 를 실행시켜 윈도우가 설치된 볼륨을 확인합니다 필자의 경우 E 볼륨이 OS 설치 볼륨이라 E 볼륨을 기준으로 작성해 드리겠습니다 exit 명령어로 diskpart를 빠져나와 아래와 같은 명령어로 Utilman.exe 백업 후 cmd.exe파일을 복사하여 Utilman.exe 파일로 만듭니다 이후 재 부팅을 진행 합니다 부팅 후 로그인 화면에 존재하는 접근성을 선택해 실행해 줍니다 실행하면 위의 화면처럼 cmd.exe가 실행되는 것을 확인하실..

OS/Windows 2023.05.02

[MFC] 한글 로그 파일 작성 (WideCharToMultiByte)

로그파일에 한글을 쓰고 싶다면 아래와 같은 함수를 작성하면 됩니다 BOOL CMyClass::WriteLog(CString strLog) { HANDLE hFile; SYSTEMTIME t; CString strData; CString strPath; DWORD dwWrite; GetLocalTime(&t); strPath.Format(_T("C:\\Log_%04d-%02d-%02d.txt"), t.wYear, t.wMonth, t.wDay); strData.Format(_T("%02d:%02d:%02d - %s\r\n"), t.wHour, t.wMinute, t.wSecond, strLog); int iRes = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, ..

Application/MFC 2023.04.26

[Windows] 부팅 오류시 복구 (bcdboot)

설치 USB로 부팅 후 Shift + F10 버튼을 눌러 Command Prompt 화면을 띄운 후 진행합니다 부팅 디스크에서 EFI\Microsoft\Boot\BCD 파일 혹은 Boot\BCD 파일을 삭제 후 진행합니다 폴더 및 파일 삭제의 경우 아래의 링크로 확인 가능 합니다 https://devsalix.tistory.com/137 [Windows] 폴더 및 파일 삭제 Command Prompt에서 폴더 및 파일의 삭제를 하고 싶을 때는 DEL 명령어와 RD 명령어를 사용하면 됩니다 DEL 명령어는 아래와 같은 명령의 설정을 가집니다 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] devsalix.tistory.com UEFI의 경우 bc..

OS/Windows 2023.04.24

[Windows] 폴더 및 파일 삭제

Command Prompt에서 폴더 및 파일의 삭제를 하고 싶을 때는 DEL 명령어와 RD 명령어를 사용하면 됩니다 DEL 명령어는 아래와 같은 명령의 설정을 가집니다 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 하나 이상의 파일 또는 디렉터리를 지정합니다. 와일드카드를 사용하면 여러 개의 파일을 삭제할 수 있습니다. 디렉터리를 지정한 경우 해당 디렉터리 내의 모든 파일을 삭제할 수 있습니다. /P 각 파일을 삭제하기 전에 삭제를 확인하는 메시지를 표시합니다. /F 읽기 전용 파일을 강제 삭제합니다. /S 지정된 파일을 모든 하위 디렉터리에서 삭제합니다. /..

OS/Windows 2023.04.20

[MFC] 프로세스 우선 순위 변경

프로그램의 중요도가 높아서 프로세스 우선순위를 변경하려고 할 때는 아래와 같이 프로그램 시작 위치에서 설정을 하면 됩니다 CMyClass::CMyClass(void) { SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); } 설정값의 경우 WinBase.h 헤더 파일에 존재하며 아래의 값들로 설정이 가능합니다 #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 #define BELOW_NORMAL_PRIORITY..

Application/MFC 2023.04.18

[MFC] ReverseMemcpy 메모리값 반전

특정 통신의 경우 메모리 값을 반전해서 보낼 때가 있는데 이럴 때 유용하게 사용할 수 있는 함수를 소개합니다 void ReverseMemcpy(LPVOID pDst, LPVOID pSrc, int iSize) { for(int iCnt = 0; iCnt < iSize; iCnt++) { ((BYTE *)pDst)[iCnt] = ((BYTE *)pSrc)[iSize - iCnt - 1]; } } 위의 함수를 사용하면 쉽게 메모리값을 반전시킬 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/MFC 2023.04.17

[정보] MTU & MSS (TCP Segment / Packet / Network)

TCP 통신을 하다 보면 패킷의 문제로 데이터 전송이 원할하지 않을 때가 존재합니다 네트워크 장비의 설정을 할 수 있다면 얘기가 다르지만 그게 아니라면 통신의 패킷을 정형화된 사이즈로 맞게 잘라서 주고 받는게 효율적입니다 보통 일반적인 TCP 통신의 경우 MTU (Maximum Transmission Unit) Size에 맞춰서 보내면 됩니다 MTU의 크기는 1500 Byte 이며 통신을 위한 IP Header와 TCP Header를 빼면 MSS(Maximum Segment Size)를 얻을 수 있습니다 [MTU (1500 Byte)] - [IP Header (20 Byte)] - [TCP Header(20 Byte)] = [MSS(1460 Byte)] 결과적으로 안정적인 정송의 데이터 크기는 1460 ..

Application/정보 2023.04.13
728x90
반응형