BSOne.SFC/Tocsg.Module/Bs1Flt/tool/CDialogProtectProcess.cpp

217 lines
5.7 KiB
C++

// 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();
}