728x90

Application 172

[Python] 웹 크롤링 (selenium)

selenium을 통해서 웹 크롤링 하는 법을 간단히 소개해 드리겠습니다 우선 java se를 다운로드하여 설치를 진행합니다 https://www.oracle.com/kr/java/technologies/downloads/#jdk20-windows Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 설치 진행 후 환경 변수를 지정합니다 시스템 속성에 들어가신 후 환경 변수 창을 활성화하고 사용자 변수에 JAVA_HOME 변수를 지정합니다 이후 시스템 변수에 설치된 ..

Application/Python 2023.04.03

[MFC] 디스크 Offline / Online

디스크 상태를 변경하고 싶다면 아래와 같이 함수를 작성하면 됩니다 #define IOCTL_DISK_SET_DISK_ATTRIBUTES CTL_CODE(IOCTL_DISK_BASE, 0x003d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define DISK_ATTRIBUTE_OFFLINE 0x0000000000000001 typedef struct _SET_DISK_ATTRIBUTES { ULONG Version; BOOLEAN Persist; BOOLEAN RelinquishOwnership; BOOLEAN Reserved1[2]; ULONGLONG Attributes; ULONGLONG AttributesMask; GUID Owner; } ..

Application/MFC 2023.03.22

[MFC] 볼륨으로 디스크 번호 가져오기 (Get Volume Disk Number)

볼륨의 디스크 번호를 가져오려면 아래와 같이 코드를 작성하면 됩니다 #include int GetVolumDiskNumber(WCHAR cVolume) { CString strVolume; strVolume.Format(_T("\\\\.\\%c:"), cVolume); HANDLE hVolume = CreateFile( strVolume, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hVolume == INVALID_HANDLE_VALUE) { return -1; } VOLUME_DISK_EXTENTS vde; DWORD dwRet; if(DeviceIoControl(hVolume, IOCTL_VOLUME_GET_VOL..

Application/MFC 2023.03.21

[MFC] WriteFile & ReadFile & OVERLAPPED 사용 방법

비동기로 파일 입/출력을 하기 위해서는 Overlapped 를 사용해야 합니다 간단한 사용법을 소개합니다 우선 헤더 파일에 변수 선언을 진행합니다 OVERLAPPED m_overlapped; 이후 초기화 및 Event 초기화를 진행합니다 MyClass() { memset(&m_overlapped, NULL, sizeof(m_overlapped)); m_overlapped.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); } 소멸자에서도 처리해 줍니다 ~MyClass() { SetEvent(m_overlapped.hEvent); CloseHandle(m_overlapped.hEvent); m_overlapped.hEvent = NULL; } 그리고 마지막으로 아래와 같이..

Application/MFC 2023.03.17

[정보] VirtualBox 물리 디스크 연결 하기(Physical)

Oracle VM VirtualBox 으로 가상 머신을 사용할 때 현재 연결된 물리 디스크를 마운트 하려는 경우 방법을 소개합니다 Command 창을 열어서 VirtualBox가 설치된 위치로 이동합니다 기본적으로 설치된 위치라면 C:\Program Files\Oracle\VirtualBox 위치로 이동을 합니다 디스크 관리에서 디스크 번호를 확인합니다 (diskmgmt.msc) 그리고 마지막으로 Command 창에서 > VBoxManage.exe internalcommands createrawvmdk -filename {File Path}.vmdk -rawdisk \\.\PhysicalDrive{X} 위와 같이 입력을 합니다 {File Path}는 실제 물리 디스크가 파일 형태로 표시될 위치의 값을 넣..

Application/정보 2023.03.15

[MFC] Static 글자 색 및 배경 색 변경

MFC에서 Static 컨트롤 및 다른 컨트롤의 글자색 및 배경색을 변경하려고 할 때는 OnCtlColor 함수를 이용하면 됩니다 MFC 클래스 마법사를 이용하여 메시지 탭에서 WM_CTLCOLOR 를 선택 후 처리기를 추가합니다 이후 추가된 처리기에 아래와 같이 작성해 주면 됩니다 HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 여기서 DC의 특성을 변경합니다. switch(pWnd->GetDlgCtrlID()) { case IDC_STATIC_NOTICE: pDC->SetBkColor(RGB(0, 0, 0)); pDC..

Application/MFC 2023.03.14

[MFC] CMD로 명령어 실행 하기

CMD로 특정 명령어를 실행하고 완료시까지 대기를 하려면 SHELLEXECUTEINFO 구조체를 사용해서 ShellExecuteEx SellAPI를 이용하면 됩니다 void CMyClass::Commander(CString strCommand) { SHELLEXECUTEINFO ExecInfo; memset(&ExecInfo, NULL, sizeof(SHELLEXECUTEINFO)); ExecInfo.cbSize = sizeof(ExecInfo); ExecInfo.lpVerb = _T("open"); ExecInfo.lpFile = _T("cmd.exe"); ExecInfo.lpParameters = strCommand; ExecInfo.fMask = SEE_MASK_FLAG_NO_UI | SEE_MAS..

Application/MFC 2023.03.13

[C# WinForm] 키움 증권 Open API 분봉차트 가져오기

특정 종목의 분봉차트를 가져오고 싶다면 opt10080 TR 코드를 사용해서 가져올 수 있습니다 //종목코드 = 전문 조회할 종목코드 SetInputValue("종목코드", "입력값 1"); //틱범위 = 1:1분, 3:3분, 5:5분, 10:10분, 15:15분, 30:30분, 45:45분, 60:60분 SetInputValue("틱범위", "입력값 2"); //수정주가구분 = 0 or 1, 수신데이터 1:유상증자, 2:무상증자, 4:배당락, 8:액면분할, 16:액면병합, 32:기업합병, 64:감자, 256:권리락 SetInputValue("수정주가구분", "입력값 3"); //Tr 요청 CommRqData( "주식분봉차트조회요청","opt10080","0", "화면번호"); 위의 방식으로 Tr을 요청..

[MFC] 난수 생성하기(랜덤 값 생성)

랜덤 한 값을 생성하고 싶을 때 srand 함수를 이용해서 난수표를 만든 후 값을 가져옵니다 srand((unsigned int)time(NULL)); int iRand = rand() % 1000; 위와 같이 작성할 경우 1000 미만의 난수를 발생시킬 수 있습니다 하지만 쓰레드 같이 거의 동시에 난수를 발생할 경우 같은 값을 가지는 경우가 생깁니다 이를 회피하고자 현재 시간의 millisecond 단위를 활용해 프로그램을 구동시키면 다른 난수값을 가져올 수 있는 것을 확인할 수 있습니다 SYSTEMTIME st; GetLocalTime(&st); srand((unsigned int)st.wMilliseconds); int iRand = rand() % 1000; 위와 같이 작성하면 됩니다 제 글이 도..

Application/MFC 2023.03.08
728x90
반응형