分享
 
 
 

传神自动登陆研究

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如果大家玩过传奇,那么肯定知道外挂巴,尤其是脱机外挂比较好使。

近日,本人研究了利用传神私服代理,风雪验证器和热血传神脱机外挂得使用,如果用户需要挂机得话,必须自己一步一步来,很是麻烦。

因此,我编写了这个自动登陆的外挂。

主要用倒的是FindwindowEx和SendMessage,很简单的。

说一下功能:

1。自动运行,自动登陆

2。自动添加私服

3。自动执行脚本,解决小退招宝宝问题

4。解决异常窗口弹出

目前对云龙传奇有效。

不说了,贴代码。

/////////////////////////////////////////////////////////////.h////////////////////////////////////////////////////

class CMirDlg : public CDialog

{

// Construction

public:

CMirDlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data

//{{AFX_DATA(CMirDlg)

enum { IDD = IDD_MIR_DIALOG };

CString m_PSW;

CString m_User;

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CMirDlg)

public:

virtual BOOL DestroyWindow();

virtual BOOL PreTranslateMessage(MSG* pMsg);

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

HICON m_hIcon;

// Generated message map functions

//{{AFX_MSG(CMirDlg)

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

afx_msg void OnButtonBegin();

afx_msg void OnTimer(UINT nIDEvent);

afx_msg void OnButtonSet();

afx_msg void OnButton1();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

private:

BOOL CheckAllProgram();

void RegisterProgram();

void ActionScript();

BOOL SearchStr(LPCSTR lpBuf,int count,LPCSTR lpstr);

BOOL GetScriptState();

void ReadInfoFromRegister();

void WriteInfoToRegister();

BOOL FindHotPanel();

BOOL IsLoginOK();

BOOL FindRichEdit();

BOOL FindHotCSpnLogin();

BOOL FindHotCSDlg();

BOOL Find51pywgButton();

BOOL Find51pywgDlg();

BOOL FindWgButton();

BOOL FindWgComBox();

BOOL FindWgDlg();

BOOL CreateWgDlg(LPCSTR lpAppPath,PROCESS_INFORMATION *pi);

HWND hWgDlg; //˽·þ¾ä±ú

HWND hWgComBox; //˽·þÏÂÀ­Áбí

HWND hWgButton; //˽·þ¿ªÊ¼°´Å¥

HWND h51pywg; //51pywg¾ä±ú

HWND h51pywgButton; //51pywg°´Å¥¾ä±ú

HWND hHotWnd; //ÈÈѪ¾ä±ú

HWND hHotLoadButton; //ÈÈѪµÇ½¾ä±ú

HWND hHotEdit; //ÈÈѪ±à¼­¾ä±ú

HWND hHotUserEdit;

HWND hHotPSWEdit;

HWND hHotPanel;

PROCESS_INFORMATION mypi[3];

int nState;

int iReLoadTimeOut;

DWORD ulTimeOut;

char apppath[256];

BOOL bLoadState;

CString strwgPath;

CString str51PywgPath;

CString strHotcsPath;

CString strwgName;

UINT uPort;

BOOL bAutoRun;

BOOL bAutoLoad;

BOOL bAutoSave;

BYTE byteIPAddress[4];

int iWinState;

};

*********************cpp*********************************

// mirDlg.cpp : implementation file

//

#include "stdafx.h"

#include "mir.h"

#include "mirDlg.h"

#include "DialogSet.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

static BOOL CALLBACK enumProc(HWND hwnd, LPARAM lParam);

char szSection[]="ÍÑ»úÍâ¹ÒÖ®×Ô¶¯°æ";

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// Dialog Data

//{{AFX_DATA(CAboutDlg)

enum { IDD = IDD_ABOUTBOX };

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

// No message handlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CMirDlg dialog

CMirDlg::CMirDlg(CWnd* pParent /*=NULL*/)

: CDialog(CMirDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CMirDlg)

m_PSW = _T("");

m_User = _T("");

//}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CMirDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMirDlg)

DDX_Text(pDX, IDC_EDIT_PSW, m_PSW);

DDV_MaxChars(pDX, m_PSW, 20);

DDX_Text(pDX, IDC_EDIT_USER, m_User);

DDV_MaxChars(pDX, m_User, 20);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CMirDlg, CDialog)

//{{AFX_MSG_MAP(CMirDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON_BEGIN, OnButtonBegin)

ON_WM_TIMER()

ON_BN_CLICKED(IDC_BUTTON_SET, OnButtonSet)

ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CMirDlg message handlers

BOOL CMirDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

int i,len;

if(!RegisterHotKey(m_hWnd,0xA002,MOD_CONTROL|MOD_ALT,VK_F7))

{

//DWORD error=GetLastError();

return FALSE;

}

iWinState=0;

GetModuleFileName(AfxGetInstanceHandle(),apppath,256);

len=strlen(apppath);

i=1;

while(len>0)

{

if(apppath[len-i]=='\\')

{

apppath[len-i]='\0';

break;

}

i++;

}

ulTimeOut=0;

nState=0;

hWgDlg=NULL; //˽·þ¾ä±ú

hWgComBox=NULL; //˽·þÏÂÀ­Áбí

hWgButton=NULL; //˽·þ¿ªÊ¼°´Å¥

h51pywg=NULL; //51pywg¾ä±ú

h51pywgButton=NULL; //51pywg°´Å¥¾ä±ú

hHotWnd=NULL; //ÈÈѪ¾ä±ú

hHotLoadButton=NULL; //ÈÈѪµÇ½¾ä±ú

hHotEdit=NULL; //ÈÈѪ±à¼­¾ä±ú

hHotUserEdit=NULL;

hHotPSWEdit=NULL;

hHotPanel=NULL;

SetTimer(1,1000,NULL);

iReLoadTimeOut=0;

bLoadState=0;

ReadInfoFromRegister();

if(!bAutoSave)

{

m_User="";

m_PSW="";

bAutoLoad=FALSE;

WriteInfoToRegister();

}

else

{

if(bAutoLoad)

{

UpdateData(FALSE);

OnButtonBegin();

}

}

RegisterProgram();

UpdateData(FALSE);

return TRUE; // return TRUE unless you set the focus to a control

}

void CMirDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CMirDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CMirDlg::OnQueryDragIcon()

{

return (HCURSOR) m_hIcon;

}

void CMirDlg::OnButtonBegin()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);

bLoadState=!bLoadState;

if(bLoadState)

{

GetDlgItem(IDC_BUTTON_BEGIN)->SetWindowText("×¢Ïú");

GetDlgItem(IDC_EDIT_USER)->EnableWindow(FALSE);

GetDlgItem(IDC_EDIT_PSW)->EnableWindow(FALSE);

GetDlgItem(IDC_BUTTON_SET)->EnableWindow(FALSE);

}

else

{

GetDlgItem(IDC_BUTTON_BEGIN)->SetWindowText("怫");

GetDlgItem(IDC_EDIT_USER)->EnableWindow(TRUE);

GetDlgItem(IDC_EDIT_PSW)->EnableWindow(TRUE);

GetDlgItem(IDC_BUTTON_SET)->EnableWindow(TRUE);

}

if(bLoadState) nState=1;

else

{

::SendMessage(hHotWnd,WM_CLOSE,0,0);

//::SendMessage(h51pywg,WM_QUIT,0,0);

//::SendMessage(h51pywg,WM_CLOSE,0,0);

::SendMessage(hWgDlg,WM_CLOSE,0,0);

::TerminateProcess(mypi[1].hProcess,0);

}

// WriteInfoToRegister();

}

BOOL CMirDlg::CreateWgDlg(LPCSTR lpAppPath,PROCESS_INFORMATION *pi)

{

CString str;

STARTUPINFO startInfo;

startInfo.cb = sizeof(STARTUPINFO);

startInfo.lpReserved = NULL;

startInfo.lpTitle = "";

startInfo.lpDesktop = NULL;

startInfo.dwX = 0;

startInfo.dwY = 0;

startInfo.dwXSize = 0;

startInfo.dwYSize = 0;

startInfo.dwXCountChars = 0;

startInfo.dwYCountChars = 0;

startInfo.dwFlags = STARTF_USESTDHANDLES;

startInfo.wShowWindow = 0; //SW_SHOWDEFAULT;

startInfo.lpReserved2 = NULL;

startInfo.cbReserved2 = 0;

startInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE);

startInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);

startInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE);

if(CreateProcess(lpAppPath,NULL,NULL,NULL,0,0,NULL,NULL,&startInfo,pi))

{

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindWgDlg()

{

hWgDlg=NULL;

hWgDlg=FindWindowEx(NULL,hWgDlg,"ThunderRT6FormDC","£¨·½Ð°棩----´«Éñ˽·þÍâ¹Ò");

if(hWgDlg)

{

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindWgComBox()

{

if(hWgDlg==NULL)return FALSE;

unsigned short int nID;

hWgComBox=NULL;

hWgComBox=FindWindowEx(hWgDlg,hWgComBox,"ThunderRT6ComboBox",NULL);

if(hWgComBox)

{

::SendMessage(hWgComBox,CB_SETCURSEL,0,0);

nID=::GetDlgCtrlID(hWgComBox);

::SendMessage(hWgDlg, WM_COMMAND,MAKEWPARAM(nID,CBN_SELCHANGE),(LPARAM)hWgComBox);

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindWgButton()

{

if(hWgDlg==NULL)return FALSE;

unsigned short int nID;

hWgButton=NULL;

hWgButton=FindWindowEx(hWgDlg,hWgButton,"ThunderRT6CommandButton","¿ªÊ¼(&S)");

if(hWgComBox)

{

nID=::GetDlgCtrlID(hWgButton);

::PostMessage(hWgDlg, WM_COMMAND,nID,(LPARAM)hWgButton);

return TRUE;

}

return FALSE;

}

void CMirDlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default

switch(nState)

{

case 0:

break;

case 1:

if(CreateWgDlg(strwgPath,&mypi[0]))

{

nState=2;

}

break;

case 2:

if(FindWgDlg())

{

nState=3;

}

break;

case 3:

if(FindWgComBox())

{

nState=4;

}

break;

case 4:

if(FindWgButton())

{

::ShowWindow(hWgDlg,SW_HIDE);

nState=16;

}

break;

case 5:

if(CreateWgDlg(str51PywgPath,&mypi[1]))

{

nState=6;

}

break;

case 6:

if(Find51pywgDlg())

{

nState=7;

}

break;

case 7:

if(Find51pywgButton())

{

nState=8;

//::ShowWindow(h51pywg,SW_HIDE);

::SendMessage(h51pywg,WM_SYSCOMMAND,SC_MINIMIZE,0);

}

break;

case 8:

if(CreateWgDlg(strHotcsPath,&mypi[2]))

{

nState=9;

}

break;

case 9:

if(FindHotCSDlg())

{

nState=10;

}

break;

case 10:

if(FindRichEdit())

{

nState=11;

}

break;

case 11:

ulTimeOut+=1000;

if(FindHotCSpnLogin())

{

nState=12;

}

break;

case 12:

ulTimeOut+=1000;

iReLoadTimeOut+=1000;

if(iReLoadTimeOut>=15000)

{

iReLoadTimeOut=0;

if(IsLoginOK())

{

ulTimeOut=0;

nState=13;

}

else

nState=11;

}

if(ulTimeOut>=2*60*1000)

{

//nState=1;

//::SendMessage(hHotWnd,WM_CLOSE,0,0);

//::SendMessage(h51pywg,WM_CLOSE,0,0);

//::SendMessage(hWgDlg,WM_CLOSE,0,0);

OnButtonBegin();

OnButtonBegin();

}

break;

case 13:

if(FindHotPanel())

{

nState=14;

ulTimeOut=0;

}

break;

case 14:

iReLoadTimeOut+=1000;

if(iReLoadTimeOut>=10000)

{

iReLoadTimeOut=0;

if(GetScriptState())

{

ActionScript();

nState=15;

}

else

{

ulTimeOut++;

}

}

if(ulTimeOut>=1)

{

if(CheckAllProgram())

{

OnButtonBegin();

}

ulTimeOut=0;

}

break;

case 15:

ulTimeOut=0;

ActionScript();

// ::ShowWindow(hHotWnd,SW_HIDE);

nState=14;

break;

case 16:

EnumWindows(enumProc,0);

nState=5;

break;

}

CDialog::OnTimer(nIDEvent);

}

BOOL CMirDlg::Find51pywgDlg()

{

h51pywg=NULL;

h51pywg=FindWindowEx(NULL,h51pywg,"TFRMMAIN","·çÑ©51pywgÑéÖ¤Æ÷1.02°æ");

//h51pywg=FindWindowEx(NULL,h51pywg,"TForm1","·çÑ©´«ÉñÑéÖ¤Æ÷1.10°æ");

if(h51pywg)

{

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::Find51pywgButton()

{

if(h51pywg==NULL)return FALSE;

int nID;

h51pywgButton=NULL;

h51pywgButton=FindWindowEx(h51pywg,h51pywgButton,"TBUTTON","´«Éñ");

if(h51pywgButton)

{

nID=::GetDlgCtrlID(h51pywgButton);

::SendMessage(h51pywg,WM_COMMAND,nID,(LPARAM)h51pywgButton);

//::SendMessage(h51pywgButton,WM_KEYDOWN,13,0);

::ShowWindow(h51pywgButton,SW_HIDE);

::ShowWindow(h51pywgButton,SW_SHOW);

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindHotCSDlg()

{

hHotWnd=NULL;

hHotWnd=FindWindowEx(NULL,hHotWnd,"TFrmmain","V 1.0");

if(hHotWnd)

{

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindHotCSpnLogin()

{

HWND hwnd1,hwnd2;

char szBuf[256];

int nIdFirst;

int i;

hwnd1=NULL;

hwnd2=NULL;

hwnd1=FindWindowEx(hHotWnd,hwnd1,"TPanel","pnlLogin");

if(hwnd1)

{

hwnd2=::GetWindow(hwnd1,GW_CHILD);

if(hwnd2 == NULL || !::IsWindow(hwnd2)) return FALSE;

i=0;

nIdFirst=::GetDlgCtrlID(hwnd2);

do

{

::GetClassName(hwnd2,szBuf,256);

if(hwnd2)

{

if(::IsWindow(hwnd2))

{

i++;

::GetWindowText(hwnd2,szBuf,256);

switch(i)

{

case 2:

hHotLoadButton=hwnd2;

break;

case 4:

hHotPSWEdit=hwnd2;

break;

case 5:

hHotUserEdit=hwnd2;

break;

}

}

}

hwnd2=::GetWindow(hwnd2,GW_HWNDNEXT);

if(!::IsWindow(hwnd2) || hwnd2==NULL)

break;

}while(nIdFirst != ::GetDlgCtrlID(hwnd2));

//***********************

if(hHotLoadButton==NULL)return FALSE;

if(hHotPSWEdit==NULL)return FALSE;

if(hHotUserEdit==NULL)return FALSE;

char buf1[20],buf2[20];

strcpy(buf1,m_User);

strcpy(buf2,m_PSW);

::SendMessage(hHotUserEdit,WM_SETTEXT,0,LPARAM(buf1));

::SendMessage(hHotPSWEdit,WM_SETTEXT,0,LPARAM(buf2));

if(::BringWindowToTop(hHotWnd))

{

::SendMessage(hHotLoadButton,WM_SETFOCUS,NULL,0);

::SendMessage(hHotLoadButton,WM_KEYDOWN,VK_SPACE,0);

::SendMessage(hHotLoadButton,WM_KEYUP,VK_SPACE,0);

return TRUE;

}

return TRUE;

}

return FALSE;

}

BOOL CMirDlg::FindRichEdit()

{

if(hHotEdit!=NULL)return TRUE;

if(hHotWnd==NULL)return FALSE;

char szBuf[256];

char buf[1024];

int nIdFirst1,nIdFirst2;

HWND hwnd1,hwnd2;

hwnd1=NULL;

hwnd2=NULL;

hwnd1=::GetWindow(hHotWnd,GW_CHILD);

if(hwnd1 == NULL || !::IsWindow(hwnd1)) return FALSE;

nIdFirst1=::GetDlgCtrlID(hwnd1);

do

{

::GetClassName(hwnd1,szBuf,256);

::GetWindowText(hwnd1,buf,100);

if(strcmp(szBuf,"TPanel")==0)

{

hwnd2=::GetWindow(hwnd1,GW_CHILD);

if(hwnd2||::IsWindow(hwnd2))

{

nIdFirst2=::GetDlgCtrlID(hwnd2);

do

{

::GetClassName(hwnd2,szBuf,256);

::GetWindowText(hwnd2,buf,1024);

if(strcmp(szBuf,"TRichEdit")==0)

{

hHotEdit=hwnd2;

return TRUE;

}

hwnd2=::GetWindow(hwnd2,GW_HWNDNEXT);

if(!::IsWindow(hwnd2) || hwnd2==NULL) break;

}while(nIdFirst2 != ::GetDlgCtrlID(hwnd2));

}

}

hwnd1=::GetWindow(hwnd1,GW_HWNDNEXT);

if(!::IsWindow(hwnd1) || hwnd1==NULL) break;

}while(nIdFirst1 != ::GetDlgCtrlID(hwnd1));

return FALSE;

}

BOOL CMirDlg::IsLoginOK()

{

if(hHotEdit==NULL)return FALSE;

char buf[2048];

int len;

EnumWindows(enumProc,0);

::SendMessage(hHotWnd,WM_SETFOCUS,WPARAM(hHotEdit),0);

memset(buf,0,2048);

::SendMessage(hHotEdit,WM_GETTEXT,2048,LPARAM(buf));

len=strlen(buf);

::SendMessage(hHotEdit,WM_SETTEXT,0,LPARAM(""));

return SearchStr(buf,len,"»¶Ó­¹âÁÙÔÆÁú´«Ææ");

}

static BOOL CALLBACK enumProc(HWND hwnd, LPARAM lParam)

{

if (hwnd == NULL) return FALSE;

HWND hwnd1;

if (::IsWindow(hwnd) && ::IsWindowVisible(hwnd))

{

TCHAR szCap[255] = {0};

TCHAR buf[255]={0};

::GetClassName(hwnd, szCap, 255);

::GetWindowText(hwnd,buf,255);

if(strcmp(buf,"51pywg´«Éñ")==0)

{

hwnd1=NULL;

hwnd1=::FindWindowEx(hwnd,hwnd1,"Button","È·¶¨");

::GetWindowText(hwnd1,szCap,255);

int nID=::GetDlgCtrlID(hwnd1);

::SendMessage(hwnd,WM_COMMAND,nID,LPARAM(hwnd1));

return TRUE;

}

if(strcmp(szCap,"#32770")==0)

{

hwnd1=NULL;

hwnd1=::FindWindowEx(hwnd,hwnd1,"Static","´«Éñ˽·þ´úÀíÒÑ×¼±¸ºÃ£¬Çë°´¡°È·¶¨¡±°´Å¥ºó½øÈë´«Éñ");

if(hwnd1==NULL)return TRUE;

hwnd1=NULL;

hwnd1=::FindWindowEx(hwnd,hwnd1,"Button","È·¶¨");

int nID=::GetDlgCtrlID(hwnd1);

::SendMessage(hwnd,WM_COMMAND,nID,LPARAM(hwnd1));

return TRUE;

}

}

return TRUE;

}

BOOL CMirDlg::FindHotPanel()

{

if(hHotWnd==NULL)return FALSE;

char szBuf[256];

int nIdFirst;

CRect rect;

hHotPanel=NULL;

hHotPanel=::GetWindow(hHotWnd,GW_CHILD);

if(hHotPanel||::IsWindow(hHotPanel))

{

nIdFirst=::GetDlgCtrlID(hHotPanel);

do

{

::GetClassName(hHotPanel,szBuf,256);

if(strcmp(szBuf,"TPanel")==0)

{

::GetWindowRect(hHotPanel,&rect);

if(rect.Width()==64)

{

ActionScript();

return TRUE;

}

}

hHotPanel=::GetWindow(hHotPanel,GW_HWNDNEXT);

if(!::IsWindow(hHotPanel) || hHotPanel==NULL) break;

}while(nIdFirst != ::GetDlgCtrlID(hHotPanel));

}

return FALSE;

}

void CMirDlg::OnButtonSet()

{

// TODO: Add your control notification handler code here

CDialogSet myDlg;

UpdateData(TRUE);

myDlg.lpAppPath=apppath;

myDlg.m_atuo=bAutoLoad;

myDlg.m_save=bAutoSave;

myDlg.m_run=bAutoRun;

myDlg.m_sfname=strwgName;

myDlg.m_SF_Path=strwgPath;

myDlg.m_CheckPath=str51PywgPath;

myDlg.m_pywgPath=strHotcsPath;

myDlg.m_Port=uPort;

memcpy(myDlg.byteIP,byteIPAddress,4);

if(myDlg.DoModal()==IDOK)

{

bAutoLoad=myDlg.m_atuo;

bAutoSave=myDlg.m_save;

bAutoRun=myDlg.m_run;

strwgName=myDlg.m_sfname;

strwgPath=myDlg.m_SF_Path;

str51PywgPath=myDlg.m_CheckPath;

strHotcsPath=myDlg.m_pywgPath;

uPort=myDlg.m_Port;

memcpy(byteIPAddress,myDlg.byteIP,4);

RegisterProgram();

WriteInfoToRegister();

}

UpdateData(FALSE);

}

void CMirDlg::WriteInfoToRegister()

{

CString str;

str.Format("%03d.%03d.%03d.%03d",

byteIPAddress[0],

byteIPAddress[1],

byteIPAddress[2],

byteIPAddress[3]);

AfxGetApp()->WriteProfileString(szSection,"´«Éñ˽·þ",strwgPath);

AfxGetApp()->WriteProfileString(szSection,"·çÑ©ÑéÖ¤Æ÷",str51PywgPath);

AfxGetApp()->WriteProfileString(szSection,"51pywg´«Éñ",strHotcsPath);

AfxGetApp()->WriteProfileString(szSection,"̞",m_User);

AfxGetApp()->WriteProfileString(szSection,"ÃÜÂë",m_PSW);

AfxGetApp()->WriteProfileString(szSection,"˽·þÃû³Æ",strwgName);

AfxGetApp()->WriteProfileString(szSection,"IPµØÖ·",str);

AfxGetApp()->WriteProfileInt(szSection,"¶Ë¿Ú",uPort);

AfxGetApp()->WriteProfileInt(szSection,"Æô¶¯ÔËÐÐ",bAutoRun);

AfxGetApp()->WriteProfileInt(szSection,"Õʺű£´æ",bAutoSave);

AfxGetApp()->WriteProfileInt(szSection,"×Ô¶¯µÇ½",bAutoLoad);

}

void CMirDlg::ReadInfoFromRegister()

{

CString str;

strwgPath=AfxGetApp()->GetProfileString(szSection,"´«Éñ˽·þ",apppath);

str51PywgPath=AfxGetApp()->GetProfileString(szSection,"·çÑ©ÑéÖ¤Æ÷",apppath);

strHotcsPath=AfxGetApp()->GetProfileString(szSection,"51pywg´«Éñ",apppath);

m_User=AfxGetApp()->GetProfileString(szSection,"̞","");

m_PSW=AfxGetApp()->GetProfileString(szSection,"ÃÜÂë","");

strwgName=AfxGetApp()->GetProfileString(szSection,"˽·þÃû³Æ","ÔÆÁú´«Ææ");

str=AfxGetApp()->GetProfileString(szSection,"IPµØÖ·","219.136.248.138");

uPort=AfxGetApp()->GetProfileInt(szSection,"¶Ë¿Ú",7077);

bAutoRun=AfxGetApp()->GetProfileInt(szSection,"Æô¶¯ÔËÐÐ",0);

bAutoSave=AfxGetApp()->GetProfileInt(szSection,"Õʺű£´æ",0);

bAutoLoad=AfxGetApp()->GetProfileInt(szSection,"×Ô¶¯µÇ½",0);

sscanf(str,"%d.%d.%d.%d",

&byteIPAddress[0],

&byteIPAddress[1],

&byteIPAddress[2],

&byteIPAddress[3]);

}

BOOL CMirDlg::GetScriptState()

{

if(hHotPanel==NULL)return FALSE;

char buf[2048];

int len;

EnumWindows(enumProc,0);

memset(buf,0,1024);

::SendMessage(hHotWnd,WM_SETFOCUS,WPARAM(hHotEdit),0);

::SendMessage(hHotEdit,WM_GETTEXT,2048,LPARAM(buf));

::SendMessage(hHotEdit,WM_SETTEXT,0,LPARAM(""));

len=strlen(buf);

return SearchStr(buf,len,"»¶Ó­¹âÁÙÔÆÁú´«Ææ");

}

BOOL CMirDlg::SearchStr(LPCSTR lpBuf, int count, LPCSTR lpstr)

{

int i,j;

int len;

len=strlen(lpstr);

j=len;

for(i=count-1;i>=0;i--)

{

if(lpstr[j-1]==lpBuf[i])

{

j--;

if(j==0)

{

return TRUE;

}

}

else

j=len;

}

return FALSE;

}

void CMirDlg::ActionScript()

{

// ::ShowWindow(hHotWnd,SW_SHOW);

// ::SendMessage(hHotWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);

// ::BringWindowToTop(hHotWnd);

//OnButton1();

SendMessage(WM_COMMAND,MAKELPARAM(IDC_BUTTON1,BN_CLICKED),LPARAM(GetDlgItem(IDC_BUTTON1)->m_hWnd));

// ::BringWindowToTop(hHotWnd);

// ::SendMessage(hHotWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);

SetCursorPos(34,312);

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

}

void CMirDlg::OnButton1()

{

// TODO: Add your control notification handler code here

FindHotCSDlg();

// ::SendMessage(hHotWnd,SC_RESTORE,SC_MAXIMIZE,0);

::ShowWindow(hHotWnd,SW_SHOW);

::SendMessage(hHotWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);

::BringWindowToTop(hHotWnd);

}

void CMirDlg::RegisterProgram()

{

HKEY hKEY;

char CurrentPath[MAX_PATH];

long ret;

LPSTR FileName;

DWORD type=REG_SZ;

DWORD size=MAX_PATH;

if(!bAutoRun)return;

LPCTSTR Rgspath="Software\\Microsoft\\Windows\\CurrentVersion\\Run" ;

GetModuleFileName(NULL,CurrentPath,size);

//Open key

ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,Rgspath,0,KEY_WRITE, &hKEY);

if(ret!=ERROR_SUCCESS)

{

RegCloseKey(hKEY);

return ;

}

//Set Key

FileName = CurrentPath;

ret=RegSetValueEx(hKEY,"System_Funny",NULL,type,(const unsigned char*)FileName,size);

if(ret!=ERROR_SUCCESS)

{

RegCloseKey(hKEY);

return ;

}

RegCloseKey(hKEY);

}

BOOL CMirDlg::DestroyWindow()

{

// TODO: Add your specialized code here and/or call the base class

UnregisterHotKey(NULL,0xA002);

WriteInfoToRegister();

::SendMessage(hHotWnd,WM_CLOSE,0,0);

::SendMessage(hWgDlg,WM_CLOSE,0,0);

::TerminateProcess(mypi[1].hProcess,0);

return CDialog::DestroyWindow();

}

BOOL CMirDlg::PreTranslateMessage(MSG* pMsg)

{

// TODO: Add your specialized code here and/or call the base class

if(pMsg->message==WM_HOTKEY)

{

if(pMsg->wParam==0xA002)

{

iWinState++;

if(iWinState%2==0)

{

ShowWindow(SW_HIDE);

}

else

{

ShowWindow(SW_SHOW);

}

}

}

char buf[1];

CString str;

str+=buf;

return CDialog::PreTranslateMessage(pMsg);

}

BOOL CMirDlg::CheckAllProgram()

{

HANDLE handle;

handle=NULL;

for(int i=0;i<3;i++)

{

handle=OpenProcess(PROCESS_ALL_ACCESS,TRUE,mypi[i].dwProcessId);

if(handle==NULL)

{

OnButtonBegin();

return TRUE;

}

CloseHandle(handle);

handle=NULL;

}

return FALSE;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有