亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? makedictdlg.cpp

?? 密碼字典生成器(源程序).zip
?? CPP
字號:
#include "stdafx.h"
#include "MakeDict.h"
#include "MakeDictDlg.h"
#include "math.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

struct MAKEPASS_INFO
{
	double dCount;
	double dNo;
	CString strCurWord;
	CString strWord;
};

#define MAKEPASS_INFO_MSG		WM_USER + 0xAA

static char g_chDefaultWord[] = "abcdefghijklmnopqrstuvwxyz0123456789";
static char *g_chWord = NULL;
static MAKEPASS_INFO g_mpInfo;

int MakePass(int nLen, CWnd *pWnd)
{
	int nRet = 0;
	int nCount = strlen(g_chWord);
	double nTotal = pow(nCount, nLen);
	char *chPass = new char[nLen+1];
	int *nIndex = new int[nLen];
	ZeroMemory(nIndex, sizeof(int)*nLen);
	ZeroMemory(chPass, nLen);
	CString strTemp;
	for(double i = 0; i < nTotal; i ++)
	{
		for(int j = 0; j < nLen; j ++)
		{
			if(nIndex[j] == nCount)
			{
				nIndex[j] = 0;
				nIndex[j+1] ++;
			}
		}
		for(j = 0; j < nLen; j ++)
		{
			chPass[nLen - j - 1] = g_chWord[nIndex[j]];
		}
		chPass[nLen] = '\0';
		nIndex[0] ++;
		strTemp += ((CString)(chPass));
		strTemp += _T("\n");
		g_mpInfo.dNo ++;
		if(pWnd && (((int)i)%1000) == 0)
		{
			g_mpInfo.strCurWord = CString(chPass);
			g_mpInfo.strWord = strTemp;
			::SendMessage(pWnd->GetSafeHwnd(), MAKEPASS_INFO_MSG, 0, 0);
			strTemp = _T("");
		}
	}
	if(pWnd)
	{
		g_mpInfo.strCurWord = CString(chPass);
		g_mpInfo.strWord = strTemp;
		::SendMessage(pWnd->GetSafeHwnd(), MAKEPASS_INFO_MSG, 0, 0);
		strTemp = _T("");
	}
	delete []nIndex;
	delete []chPass;

	return nRet;
}

UINT MakePassThread(LPVOID lParam)
{
	if(lParam)
	{
		g_mpInfo.dNo = 0;
		CMakeDictDlg *pDlg = (CMakeDictDlg *)lParam;
		for(int i = pDlg->m_nStart; i <= pDlg->m_nEnd; i ++)
		{
			MakePass(i, pDlg);
		}
		::SendMessage(pDlg->GetSafeHwnd(), MAKEPASS_INFO_MSG, 1, 0);
	}

	return 0;
}

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


CMakeDictDlg::CMakeDictDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMakeDictDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMakeDictDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_bIsDoing = FALSE;
	m_pMakeThread = NULL;
}

void CMakeDictDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMakeDictDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMakeDictDlg, CDialog)
	//{{AFX_MSG_MAP(CMakeDictDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BTN_FILE, OnBtnFile)
	ON_EN_CHANGE(IDC_EDIT_LEN, OnChangeEditLen)
	ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
	ON_CBN_SELCHANGE(IDC_COMBO_START, OnSelchangeComboStart)
	ON_EN_CHANGE(IDC_EDIT_PASS, OnChangeEditLen)
	//}}AFX_MSG_MAP
	ON_MESSAGE(MAKEPASS_INFO_MSG, OnMsgMakeInfo)
END_MESSAGE_MAP()

BOOL CMakeDictDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	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);
		}
	}

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);

	SetDlgItemText(IDC_EDIT_FILE, _T("c:\\dict.txt"));
	SetDlgItemText(IDC_EDIT_PASS, g_chDefaultWord);	
	SetDlgItemText(IDC_EDIT_LEN, _T("6"));
	((CEdit *)GetDlgItem(IDC_EDIT_LEN))->SetLimitText(1);
	((CEdit *)GetDlgItem(IDC_EDIT_PASS))->SetLimitText(99);

	return TRUE;
}

void CMakeDictDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

void CMakeDictDlg::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();
	}
}

HCURSOR CMakeDictDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMakeDictDlg::OnOK()
{
	if(!m_bIsDoing)
	{
		if(ReadWord() <= 0)
		{
			MessageBox(_T("沒有密碼字符!請重新輸入!"));
			return ;
		}
		CString strFile;
		GetDlgItemText(IDC_EDIT_FILE, strFile);
		if(strFile.GetLength() <= 0)
		{
			MessageBox(_T("請指定輸出字典文件名!請重新輸入!"));
			return ;
		}
		if(m_file.m_hFile != CFile::hFileNull)
		{
			m_file.Close();
		}
		if(m_file.Open(strFile, CFile::modeCreate | CFile::modeWrite))
		{
			CComboBox *pCom = (CComboBox *)GetDlgItem(IDC_COMBO_START);
			int nIndex = pCom->GetCurSel();
			if(nIndex >= 0)
			{
				m_nStart = pCom->GetItemData(nIndex);
				ASSERT(m_nStart > 0 && m_nStart <= m_nEnd);
				if(!(m_nStart > 0 && m_nStart <= m_nEnd))
				{
					MessageBox(_T("哈哈,程序有BUG!給我寫信吧!"));
					return ;
				}
			}
			m_bIsDoing = TRUE;
			SetDlgItemText(IDOK, _T("停止(&M)"));
			EnableWnd();
			m_pMakeThread = AfxBeginThread(MakePassThread, this);
		}
		else
		{
			MessageBox(_T("寫文件錯誤!請確認文件名!"));
		}
	}
	else
	{
		StopThread();
		SetDlgItemText(IDOK, _T("生成(&M)"));
		m_bIsDoing = FALSE;
		EnableWnd();
		if(m_file.m_hFile != CFile::hFileNull)
		{
			m_file.Close();
		}
	}
}

int CMakeDictDlg::ReadWord()
{
	CString str;
	GetDlgItemText(IDC_EDIT_PASS, str);
	int nLen = str.GetLength();
	if(nLen > 0)
	{
		if(g_chWord != NULL)
		{
			delete []g_chWord;
			g_chWord = NULL;
		}
		g_chWord = new char[nLen + 1];
		ZeroMemory(g_chWord, nLen + 1);
		sprintf(g_chWord, "%s", str);
	}
	return nLen;
}

void CMakeDictDlg::OnCancel() 
{
	if(g_chWord != NULL)
	{
		delete []g_chWord;
		g_chWord = NULL;
	}
	StopThread();

	CDialog::OnCancel();
}

void CMakeDictDlg::OnBtnFile() 
{
	CFileDialog fileDlg(FALSE);
	if(fileDlg.DoModal() == IDOK)
	{
		SetDlgItemText(IDC_EDIT_FILE, fileDlg.GetPathName());
	}
}

void CMakeDictDlg::OnChangeEditLen() 
{
	GetCount();
}

void CMakeDictDlg::StopThread()
{
	if(m_pMakeThread)
	{
		::TerminateThread(m_pMakeThread->m_hThread, 0);
		::WaitForSingleObject(m_pMakeThread->m_hThread, INFINITE);
		m_pMakeThread->m_hThread = NULL;
		m_pMakeThread = NULL;
	}
}

HRESULT CMakeDictDlg::OnMsgMakeInfo(WPARAM wParam, LPARAM)
{
	if(wParam != 1)
	{
		CString str;
		double dRem = g_mpInfo.dCount - g_mpInfo.dNo;
		if(dRem > 999999999999.0f)
		{
			str = _T("Overlong!");
		}
		else
		{
			str.Format(_T("%.0lf"), dRem);
		}
		SetDlgItemText(IDC_STATIC_REM, str);
		SetDlgItemText(IDC_STATIC_CURPASS, g_mpInfo.strCurWord);
		if(m_file.m_hFile != CFile::hFileNull)
		{
			m_file.WriteString(g_mpInfo.strWord);
		}
	}
	else
	{
		SetDlgItemText(IDOK, _T("生成(&M)"));
		m_bIsDoing = FALSE;
		EnableWnd();
		if(m_file.m_hFile != CFile::hFileNull)
		{
			m_file.Close();
		}
	}
	return 0;
}

void CMakeDictDlg::OnBtnSave() 
{
	
}

void CMakeDictDlg::OnSelchangeComboStart() 
{
	CComboBox *pCom = (CComboBox *)GetDlgItem(IDC_COMBO_START);
	int nIndex = pCom->GetCurSel();
	if(nIndex >= 0)
	{
		m_nStart = pCom->GetItemData(nIndex);
	}
	CString str;
	GetDlgItemText(IDC_EDIT_PASS, str);
	int nLen = str.GetLength();
	double dTotal = 0.0f;
	for(int i = m_nStart; i <= m_nEnd; i ++)
	{
		dTotal += pow(nLen, i);
	}
	g_mpInfo.dCount = dTotal;
	if(dTotal > 999999999999.0f)
	{
		str = _T("Overlong!");
	}
	else
	{
		str.Format(_T("%.0lf"), dTotal);
	}
	SetDlgItemText(IDC_STATIC_COUNT, str);
	SetDlgItemText(IDC_STATIC_REM, str);
}

void CMakeDictDlg::GetCount()
{
	m_nEnd = GetDlgItemInt(IDC_EDIT_LEN);
	CComboBox *pCom = (CComboBox *)GetDlgItem(IDC_COMBO_START);
	pCom->ResetContent();
	for(int i = 1; i <= m_nEnd; i ++)
	{
		CString str;
		str.Format(_T("%d"), i);
		int nIndex = pCom->AddString(str);
		if(nIndex >= 0)
		{
			pCom->SetItemData(nIndex, i);
		}
	}
	pCom->SetCurSel(pCom->GetCount() - 1);
	CString str;
	GetDlgItemText(IDC_EDIT_PASS, str);
	int nLen = str.GetLength();
	double dTotal = pow(nLen, m_nEnd);
	if(m_nEnd == 0)
	{
		dTotal = 0;
	}
	g_mpInfo.dCount = dTotal;
	if(dTotal > 999999999999.0f)
	{
		str = _T("Overlong!");
	}
	else
	{
		str.Format(_T("%.0lf"), dTotal);
	}
	SetDlgItemText(IDC_STATIC_COUNT, str);
	SetDlgItemText(IDC_STATIC_REM, str);
}

void CMakeDictDlg::EnableWnd()
{
	GetDlgItem(IDC_EDIT_FILE)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_BTN_OPEN)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_BTN_SAVE)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_BTN_FILE)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_EDIT_LEN)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_COMBO_START)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDC_EDIT_PASS)->EnableWindow(!m_bIsDoing);
	GetDlgItem(IDCANCEL)->EnableWindow(!m_bIsDoing);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产91洋老外米糕| 一区二区三区中文在线| 亚洲日本va在线观看| 日本一道高清亚洲日美韩| 岛国一区二区在线观看| 日韩午夜在线观看视频| 亚洲一卡二卡三卡四卡| www.综合网.com| 精品区一区二区| 视频一区二区国产| 在线免费亚洲电影| 亚洲视频在线观看一区| 成人国产电影网| 精品国产一区二区三区不卡| 日韩不卡一区二区| 欧美日韩三级一区二区| 综合自拍亚洲综合图不卡区| 极品少妇xxxx精品少妇偷拍| 9191久久久久久久久久久| 亚洲一区二区三区影院| 91国内精品野花午夜精品| 综合久久给合久久狠狠狠97色| 国产一区啦啦啦在线观看| 91麻豆精品国产91久久久资源速度| 亚洲免费观看高清完整版在线观看熊 | 在线免费观看视频一区| 亚洲欧美自拍偷拍色图| 不卡视频在线看| 久久精品亚洲乱码伦伦中文| 国产一区二区精品久久| 久久品道一品道久久精品| 国产一二精品视频| 日本一区二区三级电影在线观看 | 91亚洲精品久久久蜜桃| 中文字幕一区二区不卡| av午夜精品一区二区三区| 亚洲天堂久久久久久久| 色天天综合久久久久综合片| 亚洲精品视频在线观看免费| 日本道精品一区二区三区| 亚洲永久精品国产| 欧美日韩www| 狠狠色狠狠色综合| 久久久一区二区三区| 高清国产一区二区| 自拍偷自拍亚洲精品播放| 99久久精品免费看国产免费软件| 中文字幕乱码一区二区免费| www.欧美日韩| 亚洲国产一二三| 日韩一区二区不卡| 国产成人av在线影院| 国产精品高清亚洲| 欧美午夜精品一区二区蜜桃| 视频一区中文字幕国产| 久久看人人爽人人| 色婷婷激情综合| 日韩电影在线观看一区| 国产午夜久久久久| 色八戒一区二区三区| 免费在线观看一区二区三区| 国产亚洲成aⅴ人片在线观看 | 精品写真视频在线观看| 日本一区二区三区久久久久久久久不 | 国产福利一区二区| 一区二区国产视频| 欧美成人精品二区三区99精品| av网站免费线看精品| 首页国产欧美久久| 国产精品私房写真福利视频| 精品视频在线免费看| 国产精品自拍在线| 一区二区三区在线看| 精品久久免费看| 欧美性猛片aaaaaaa做受| 国产一区二区三区在线观看免费视频| 国产精品女主播在线观看| 欧美日韩中文字幕一区二区| 国产高清精品网站| 亚洲成av人片一区二区三区| 国产色综合一区| 制服丝袜在线91| 日本久久电影网| 国产在线国偷精品产拍免费yy| 亚洲自拍偷拍av| 成人欧美一区二区三区1314| 日韩欧美在线不卡| 欧美亚州韩日在线看免费版国语版| 国产麻豆午夜三级精品| 免费日本视频一区| 亚洲乱码日产精品bd| 国产蜜臀av在线一区二区三区| 欧美日本韩国一区二区三区视频 | 亚洲色图第一区| 国产亚洲一区二区三区在线观看| 欧美高清视频www夜色资源网| 成人97人人超碰人人99| 国产成人av电影在线观看| 久久成人免费日本黄色| 日本aⅴ精品一区二区三区| 亚洲一二三专区| 中文字幕欧美一| 日本一区二区不卡视频| 日韩亚洲欧美综合| 欧美视频日韩视频在线观看| 色综合久久天天| 9久草视频在线视频精品| 国产精品亚洲一区二区三区妖精| 蜜乳av一区二区三区| 婷婷久久综合九色综合绿巨人 | 国产精品丝袜久久久久久app| 日韩欧美国产麻豆| 精品伦理精品一区| 久久久综合激的五月天| xvideos.蜜桃一区二区| 精品国产91久久久久久久妲己 | 777奇米成人网| 欧美老女人第四色| 91精品国产免费| 91精品视频网| 日韩久久精品一区| 精品国产1区二区| 国产三级精品视频| 国产女主播在线一区二区| 中文一区二区在线观看| 日韩毛片一二三区| 亚洲综合图片区| 日韩国产高清在线| 国内精品免费**视频| 国产成人在线观看免费网站| 成人免费毛片片v| 91久久国产综合久久| 在线电影院国产精品| 日韩欧美激情四射| 欧美激情一区三区| 一区二区三区欧美| 日韩av一区二| 国产成人av影院| 欧洲一区二区三区免费视频| 666欧美在线视频| 国产色91在线| 悠悠色在线精品| 久久不见久久见免费视频1| 丁香激情综合国产| 欧美日韩精品二区第二页| 久久久久亚洲综合| 亚洲天堂久久久久久久| 美女视频黄频大全不卡视频在线播放| 激情六月婷婷综合| 色婷婷国产精品综合在线观看| 欧美肥大bbwbbw高潮| 欧美国产乱子伦| 午夜精品视频在线观看| 国产a久久麻豆| 91精品国产综合久久久久久漫画| 国产日韩欧美高清| 天堂精品中文字幕在线| 成人黄色电影在线| 欧美久久高跟鞋激| 亚洲欧洲av色图| 蜜桃久久久久久久| 欧美自拍偷拍午夜视频| 国产亚洲精品精华液| 午夜精品福利视频网站| 国产91在线看| 亚洲精品一区二区三区在线观看 | 精品一区在线看| 欧日韩精品视频| 国产精品成人一区二区艾草| 日本不卡一二三| 欧美三级欧美一级| 亚洲日本中文字幕区| 国产精品自拍网站| 欧美成人一级视频| 日日摸夜夜添夜夜添国产精品| av毛片久久久久**hd| 久久久亚洲高清| 七七婷婷婷婷精品国产| 精品视频在线视频| 一区二区在线观看av| 成人av影院在线| 国产精品视频yy9299一区| 国产精品88888| 国产调教视频一区| 国模大尺度一区二区三区| 日韩一区二区三区四区五区六区| 中文字幕综合网| 99在线热播精品免费| 国产精品视频在线看| 国产成人av一区二区三区在线| 精品国一区二区三区| 久久精品国产久精国产| 日韩一二三四区| 美女免费视频一区二区| 日韩一区和二区| 日韩精品视频网站| 日韩视频免费观看高清完整版在线观看| 午夜伦欧美伦电影理论片| 91精品国产综合久久香蕉的特点| 性感美女久久精品|