728x90

전체 글 260

[Windows] 통신 포트(Port) 사용 중인 프로세스 확인

특정 포트를 사용 중인 프로세스를 확인하기 위해서는 netstat 명령어와 tasklist 명령어 그리고 findstr 명령어를 조합하여 사용하면 됩니다 우선 netstat 명령어로 아래와 같이 검색을 합니다 > netstat -ano |findstr {검색 포트} Ex) >netstat -ano |findstr 8000 검색하면 위와 같이 포트를 사용 중인 프로세스 아이디를 얻을 수 있습니다 이제 프로세스 번호를 검색하면 됩니다 위의 검색된 기준으로 프로세스 아이디로 프로세스 이름을 찾으려면 아래와 같이 검색하시면 됩니다 > tasklist |findstr 11524 검색 결과 이렇게 위와 같이 프로세스 이름을 얻을 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

OS/Windows 2023.05.23

[C# WinForm] ListBox 오른쪽 마우스 클릭 선택

ListBox의 오른쪽 마우스를 눌렀을 때 해당 항목을 선택하게 하고 싶다면 아래와 같이 코드를 작성하면 됩니다 private void listBox1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { listBox1.SelectedIndex = listBox1.IndexFromPoint(e.X, e.Y); //추가 코드 입력 } } 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[C# WinForm] 프린트 다중 페이지 출력

PrintDocument의 이벤트 PrintPageEventHandler 에서 다중 페이지를 출력하고자 할 때는 함수 내 e.HasMorePages 변수를 true로 변경해주면 됩니다 가령 페이지를 2페이지 출력을 원한다면 아래와 같이 코드를 작성하면 됩니다 private int m_iTotalPages = 2; private int m_iProcPages = 1; private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { if (m_iTotalPages > m_iProcPages) { e.HasMorePages = true; m_iProcPages++; } // 출력을 위한 Grap..

[C# WinForm] 프린트 하기

C#의 기본 클래스를 활용해 프린트하는 방법입니다 private void Print() { PrintDocument Doc = new PrintDocument(); Doc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Test_PrintPage); Doc.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("A4", 840, 1188); PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.Document = Doc; ppd.ShowDialog(); } private void Test_PrintPage(object send..

[C# WinForm] 구조체 내부 배열 초기화

구조체 안의 배열을 선언은 가능하지만 배열의 할당을 위해서는 아래와 같이 코드를 작성해 주어야 합니다 private struct _STRUCT_DATA { public string strValue; public string []strValues; public _STRUCT_DATA(int iArraySize) { strValue = ""; strValues = new string[iArraySize]; } }; // 구조체 선언 _STRUCT_DATA struct_data = new _STRUCT_DATA(5); 초기화를 위해서는 배열 안의 모든 변수에 초기값 설정이 필요하며 배열 크기를 입력받아 할당을 해야 합니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[MFC] CWnd 화면을 클립 보드로 복사하기

화면을 클립보드에 넣기 위한 코드입니다 함수 호출 이후 그림판 등으로 붙여 넣기 했을 시 저장된 화면이 보입니다 void CWndToClipboard(CWnd *pWnd, CRect rect) { CBitmap bmp; CClientDC dc(pWnd); CDC memDC; memDC.CreateCompatibleDC(&dc); bmp.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height()); CBitmap* pOldbmp = memDC.SelectObject(&bmp); memDC.BitBlt(0,0,rect.Width(),rect.Height(), &dc, 0,0,SRCCOPY); pWnd->OpenClipboard(); EmptyClipboard(); Set..

Application/MFC 2023.05.09

[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
728x90
반응형