// CDialogProtectProcess.cpp: 구현 파일 // #include "pch.h" #include "tool.h" #include "afxdialogex.h" #include "CDialogProtectProcess.h" // CDialogProtectProcess 대화 상자 IMPLEMENT_DYNAMIC(CDialogProtectProcess, CDialogEx) CDialogProtectProcess::CDialogProtectProcess(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DIALOG_PROCESS_PROTECT, pParent) { } CDialogProtectProcess::~CDialogProtectProcess() { } void CDialogProtectProcess::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT1, editProcessNames_); DDX_Control(pDX, IDC_EDIT2, editProcessIds_); } BEGIN_MESSAGE_MAP(CDialogProtectProcess, CDialogEx) ON_BN_CLICKED(IDC_BUTTON_PROCESS_PROTECT_START, &CDialogProtectProcess::OnBnClickedButtonProcessProtectStart) ON_BN_CLICKED(IDC_BUTTON_PROCESS_PROTECT_STOP, &CDialogProtectProcess::OnBnClickedButtonProcessProtectStop) ON_BN_CLICKED(IDC_BUTTON_SET_PROTECT_PROCESSNAME, &CDialogProtectProcess::OnBnClickedButtonSetProtectProcessname) ON_BN_CLICKED(IDC_BUTTON_SET_PROTECT_PROCESSID, &CDialogProtectProcess::OnBnClickedButtonSetProtectProcessid) ON_BN_CLICKED(IDC_BUTTON_DEL_PROTECT_PROCESSNAME, &CDialogProtectProcess::OnBnClickedButtonDelProtectProcessname) ON_BN_CLICKED(IDC_BUTTON_DEL_PROTECT_PROCESSID, &CDialogProtectProcess::OnBnClickedButtonDelProtectProcessid) ON_BN_CLICKED(IDCANCEL, &CDialogProtectProcess::OnBnClickedCancel) ON_BN_CLICKED(IDOK, &CDialogProtectProcess::OnBnClickedOk) END_MESSAGE_MAP() // CDialogProtectProcess 메시지 처리기 void CDialogProtectProcess::OnBnClickedButtonProcessProtectStart() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. bs1flt_.Bs1FltProcessProtect(TRUE); } void CDialogProtectProcess::OnBnClickedButtonProcessProtectStop() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. bs1flt_.Bs1FltProcessProtect(FALSE); } void CDialogProtectProcess::OnBnClickedButtonSetProtectProcessname() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strInput; int curPos = 0; if (!bs1flt_.Bs1FltSetProcessProtectName) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } editProcessNames_.GetWindowText(strInput); if (strInput.IsEmpty()) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } CString strToken = strInput.Tokenize(_T("|"), curPos); while (curPos != -1) // 더 이상 토큰이 없으면 -1을 반환하지 않음 (빈 문자열 체크로 대체 가능) { if (!strToken.IsEmpty()) { strToken.Trim(); if (!strToken.IsEmpty()) { bs1flt_.Bs1FltSetProcessProtectName((LPCWSTR)strToken.GetBuffer(0)); } } // 다음 토큰 가져오기 strToken = strInput.Tokenize(_T("|"), curPos); } } void CDialogProtectProcess::OnBnClickedButtonDelProtectProcessname() { CString strInput; int curPos = 0; if (!bs1flt_.Bs1FltDelProcessProtectName) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } editProcessNames_.GetWindowText(strInput); if (strInput.IsEmpty()) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } CString strToken = strInput.Tokenize(_T("|"), curPos); while (curPos != -1) // 더 이상 토큰이 없으면 -1을 반환하지 않음 (빈 문자열 체크로 대체 가능) { if (!strToken.IsEmpty()) { strToken.Trim(); if (!strToken.IsEmpty()) { bs1flt_.Bs1FltDelProcessProtectName((LPCWSTR)strToken.GetBuffer(0)); } } // 다음 토큰 가져오기 strToken = strInput.Tokenize(_T("|"), curPos); } } void CDialogProtectProcess::OnBnClickedButtonSetProtectProcessid() { CString strInput; int curPos = 0; if (!bs1flt_.Bs1FltSetProcessProtectId) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } editProcessIds_.GetWindowText(strInput); if (strInput.IsEmpty()) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } CString strToken = strInput.Tokenize(_T("|"), curPos); while (curPos != -1) // 더 이상 토큰이 없으면 -1을 반환하지 않음 (빈 문자열 체크로 대체 가능) { if (!strToken.IsEmpty()) { strToken.Trim(); if (!strToken.IsEmpty()) { DWORD pid = _ttoi(strToken); bs1flt_.Bs1FltSetProcessProtectId(pid); } } // 다음 토큰 가져오기 strToken = strInput.Tokenize(_T("|"), curPos); } } void CDialogProtectProcess::OnBnClickedButtonDelProtectProcessid() { CString strInput; int curPos = 0; if (!bs1flt_.Bs1FltDelProcessProtectId) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } editProcessIds_.GetWindowText(strInput); if (strInput.IsEmpty()) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } CString strToken = strInput.Tokenize(_T("|"), curPos); while (curPos != -1) // 더 이상 토큰이 없으면 -1을 반환하지 않음 (빈 문자열 체크로 대체 가능) { if (!strToken.IsEmpty()) { strToken.Trim(); if (!strToken.IsEmpty()) { DWORD pid = _ttoi(strToken); bs1flt_.Bs1FltDelProcessProtectId(pid); } } // 다음 토큰 가져오기 strToken = strInput.Tokenize(_T("|"), curPos); } } void CDialogProtectProcess::OnBnClickedCancel() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CDialogEx::OnCancel(); } void CDialogProtectProcess::OnBnClickedOk() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CDialogEx::OnOK(); }