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

812 lines
22 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// MyToolsKit.cpp : implementation file
//
#include "stdafx.h"
#include "Client.h"
#include "MyToolsKit.h"
#include <Winbase.h>
#include <assert.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyToolsKit dialog
CIcons *pIcons = NULL;
CMyToolsKit::CMyToolsKit(CWnd* pParent /*=NULL*/)
: CDialog(CMyToolsKit::IDD, pParent)
{
//{{AFX_DATA_INIT(CMyToolsKit)
m_Path = _T("");
m_time = 1;
//}}AFX_DATA_INIT
}
void CMyToolsKit::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMyToolsKit)
DDX_Control(pDX, IDC_SLIDER1, m_Sllider);
DDX_Control(pDX, IDC_LIST2, m_List);
DDX_Text(pDX, IDC_EDIT_PATH, m_Path);
DDX_Text(pDX, IDC_EDIT_TIME1, m_time);
DDV_MinMaxUInt(pDX, m_time, 1, 100000);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMyToolsKit, CDialog)
//{{AFX_MSG_MAP(CMyToolsKit)
ON_BN_CLICKED(IDC_SELECTICON, OnSelecticon)
ON_LBN_SELCHANGE(IDC_LIST2, OnSelchangeList2)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_BUTTON_SAVEAS, OnButtonSaveas)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_SELECTFILE, OnSelectfile)
ON_BN_CLICKED(IDC_START, OnStart)
ON_BN_CLICKED(IDC_STOP2, OnStop)
ON_WM_TIMER()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
ON_BN_CLICKED(IDC_FILE_PATH, OnFilePath)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER1, OnCustomdrawSlider1)
ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyToolsKit message handlers
BOOL CMyToolsKit::OnInitDialog()
{
CDialog::OnInitDialog();
HINSTANCE hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(IDI_MGICON_A),RT_GROUP_ICON);
HICON m_hIcon = (HICON)::LoadImage(hInstResource,MAKEINTRESOURCE(IDI_MGICON_A),IMAGE_ICON,24, 24, 0);
if( m_hIcon != 0 )
{
SetIcon(m_hIcon,TRUE);
}
// TODO: Add extra initialization here
// SetIcon(AfxGetApp()->LoadIcon(IDI_TOOL),FALSE);
// SetIcon(AfxGetApp()->LoadIcon(IDI_TOOL),TRUE);
//<2F><>ʼ<EFBFBD><CABC>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
lpIR = (LPICONRESOURCE )malloc(sizeof(ICONRESOURCE));
lstrcpy( lpIR->szOriginalICOFileName, "Untitled" );
lstrcpy( lpIR->szOriginalDLLFileName, "" );
lpIR->nNumImages = 0;
GetDlgItem(IDC_BUTTON_SAVEAS)->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_START))->EnableWindow(TRUE);
((CButton *)GetDlgItem(IDC_STOP2))->EnableWindow(FALSE);
GetDlgItem(IDC_SLIDER1)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON5)->EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CALLBACK MyEnumProcedure( HANDLE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG lParam )
{
TCHAR szBuffer[256];
LONG nIndex = LB_ERR;
LPTSTR lpID = NULL;
// Name is from MAKEINTRESOURCE()
if( HIWORD(lpszName) == 0 )
{
wsprintf( szBuffer, "ͼ<EFBFBD><EFBFBD> [%d]", (DWORD)lpszName );
lpID = lpszName;
}
else
{
// Name is string
//lpID = strdup( lpszName );
wsprintf( szBuffer, "ͼ<EFBFBD><EFBFBD> [%s]", lpszName);
}
// Add it to the listbox
nIndex = SendDlgItemMessage( (HWND)lParam, IDC_LIST2, LB_ADDSTRING, 0, (LPARAM)(szBuffer) );
// Set the item data to be the name of the resource so we can get it later
SendDlgItemMessage( (HWND)lParam, IDC_LIST2, LB_SETITEMDATA, (WPARAM)nIndex, (LPARAM)lpID );
return TRUE;
}
void CMyToolsKit::OnSelecticon()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("PE FILE (*.exe)\0*.exe\0*.dll\0*.ico\0*.bmp\0*.tcl\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>PE<EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
szOpenFileName = szFile;
char *Poiner = szFile;
WORD i = strlen(szFile);
Poiner+=i-3;
szOpenFileExtName.Format("%s",Poiner);
Poiner=NULL;
szOpenFileExtName.MakeLower ();
m_List.ResetContent (); //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
if(szOpenFileExtName == "exe")//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʾEXE<58><45>DLL<4C><4C><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD>
{
HINSTANCE hLibrary;
// Load the DLL/EXE - NOTE: must be a 32bit EXE/DLL for this to work
if( (hLibrary = LoadLibraryEx( szOpenFileName, NULL, LOAD_LIBRARY_AS_DATAFILE )) == NULL )
{
// Failed to load - abort
MessageBox( szOpenFileName+ "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>WIN32<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
return;
}
// Store the info
EDII.szFileName =szOpenFileName;
EDII.hInstance = hLibrary;
// Fill in the listbox with the icons available
if( ! EnumResourceNames( EDII.hInstance, RT_GROUP_ICON, (ENUMRESNAMEPROC )MyEnumProcedure, (LPARAM)GetSafeHwnd()) )
{
MessageBox( "<EFBFBD>о<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
return;
}
}
m_List.SetCurSel (0);
if( m_List.GetCount() == 0 )
{
MessageBox( "<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ư<EFBFBD>ťΪ<C5A5><CEAA>Ч״̬
GetDlgItem(IDC_BUTTON_SAVEAS)->EnableWindow(FALSE);
return;
}
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ư<EFBFBD>ťΪ<C5A5><CEAA>Ч״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GetDlgItem(IDC_BUTTON_SAVEAS)->EnableWindow(TRUE);
//ˢ<>µ<EFBFBD><C2B5><EFBFBD>OnPaint<6E><74><EFBFBD><EFBFBD>ʾͼ<CABE><CDBC>
InvalidateRect(NULL,TRUE);
}
}
void CMyToolsKit::OnSelchangeList2()
{
// TODO: Add your control notification handler code here
InvalidateRect(NULL,TRUE);
}
void CMyToolsKit::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
LPTSTR lpIconID;
HICON hIcon;
if((lpIconID=(LPTSTR)m_List.GetItemData(m_List.GetCurSel()))!=(LPTSTR)LB_ERR )
{
if(szOpenFileExtName=="exe"||szOpenFileExtName=="dll"||szOpenFileExtName=="icl")
{
hIcon=pIcons->GetIconFromInstance(EDII.hInstance,lpIconID);
CStatic* pStatic = (CStatic*) GetDlgItem(IDC_ICONS);
pStatic->SetIcon (hIcon);
}
}
// Do not call CDialog::OnPaint() for painting messages
}
void CMyToolsKit::OnButtonSaveas()
{
// TODO: Add your control notification handler code here
LPTSTR lpIconID;
CFileDialog fileDialog( FALSE,"*.ICO",NULL,NULL,"ͼ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.ICO)|*.ICO|λͼ<EFBFBD>ļ<EFBFBD>(*.BMP)|*.BMP||");
if (fileDialog.DoModal() == IDOK)
{
szSaveFileName=fileDialog.GetPathName();
szSaveFileExtName= fileDialog.GetFileExt ();
szSaveFileExtName.MakeLower ();
if(szOpenFileExtName=="exe"||szOpenFileExtName=="dll"||szOpenFileExtName=="icl")
{
if((lpIconID=(LPTSTR)m_List.GetItemData (m_List.GetCurSel()))!= (LPTSTR)LB_ERR)
{
lpIR=pIcons->ReadIconFromEXEFile (szOpenFileName,lpIconID);
}
}
if(szSaveFileExtName=="bmp")
{
if(lpIR!=NULL && m_List.GetCount ()>0)
{
BeginWaitCursor();
pIcons->IconImageToBMPFile (szSaveFileName,&lpIR->IconImages [0]);
EndWaitCursor();
}
else
MessageBox( "û<EFBFBD>пɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
}
else if(szSaveFileExtName=="ico")
{
if(lpIR!=NULL && m_List.GetCount ()>0)
{
BeginWaitCursor();
pIcons->WriteIconToICOFile (lpIR,szSaveFileName);
EndWaitCursor();
}
else
MessageBox( "û<EFBFBD>пɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ!", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
}
}
}
void CMyToolsKit::OnButton3()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("PE FILE (*.exe)\0*.exe\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>EXE<EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
SetDlgItemText(IDC_EDIT2,szFile);
}
}
void CMyToolsKit::OnButton1()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("ico FILE (*.ico)\0*.ico\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
SetDlgItemText(IDC_EDIT1,szFile);
}
}
#ifndef SAFE_RELEASE
#define SAFE_RELEASE(x) \
if(x != NULL) \
{ \
x->Release(); \
x = NULL; \
}
#endif
#ifndef SAFE_ARRAY_DELETE
#define SAFE_ARRAY_DELETE(x) \
if(x != NULL) \
{ \
delete[] x; \
x = NULL; \
}
#endif
typedef struct tagHEADER
{
WORD idReserved;
WORD idType;
WORD idCount;
}HEADER, *LPHEADER;
#pragma pack(push)
#pragma pack(2)
typedef struct tagGRPICONDIRENTRY
{
BYTE bWidth;
BYTE bHeight;
BYTE bColorCount;
BYTE bReserved;
WORD wPlanes;
WORD wBitCount;
DWORD dwBytesInRes;
WORD nID;
}GRPICONDIRENTRY, *LPGRPICONDIRENTRY;;
typedef struct tagGRPICONDIR
{
WORD idReserved;
WORD idType;
WORD idCount;
GRPICONDIRENTRY idEntries[1];
}GRPICONDIR, *LPGRPICONDIR;
#pragma pack(pop)
BOOL ChangeExeIcons(LPCTSTR lpExeName,PBYTE pIconFileData,DWORD dwDataSize)
{
LPICONDIRENTRY pIconDirEntry(NULL);
LPGRPICONDIR pGrpIconDir(NULL);
LPHEADER pHeader;
LPBYTE pIconBytes(NULL);
DWORD nGSize(0);
HANDLE hUpdate(NULL);
BOOL bReturn(FALSE);
do
{
BOOL bRet;
if(dwDataSize < sizeof(HEADER))break;
pHeader = LPHEADER(pIconFileData);
//<2F><><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(dwDataSize <
(sizeof(HEADER) + sizeof(ICONDIRENTRY) * pHeader->idCount))break;
pIconDirEntry = LPICONDIRENTRY(pIconFileData + sizeof(HEADER));
//<2F><><EFBFBD><EFBFBD>EXE<58>ļ<EFBFBD><C4BC><EFBFBD>RT_GROUP_ICON<4F><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nGSize = sizeof(GRPICONDIR) + sizeof(GRPICONDIRENTRY) * (pHeader->idCount - 1);
pGrpIconDir = LPGRPICONDIR(new BYTE[nGSize]);
ZeroMemory(pGrpIconDir,nGSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0B5B1>һ<EFBFBD><D2BB>ת<EFBFBD><D7AA><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
pGrpIconDir->idReserved = pHeader->idReserved;
pGrpIconDir->idType = pHeader->idType;
pGrpIconDir->idCount = pHeader->idCount;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ID<49><44>IDΪλ<CEAA><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(int i = 0;i < pHeader->idCount;i++)
{
pGrpIconDir->idEntries[i].bWidth = pIconDirEntry[i].bWidth;
pGrpIconDir->idEntries[i].bHeight = pIconDirEntry[i].bHeight;
pGrpIconDir->idEntries[i].bColorCount = pIconDirEntry[i].bColorCount;
pGrpIconDir->idEntries[i].bReserved = pIconDirEntry[i].bReserved;
pGrpIconDir->idEntries[i].wPlanes = pIconDirEntry[i].wPlanes;
pGrpIconDir->idEntries[i].wBitCount = pIconDirEntry[i].wBitCount;
pGrpIconDir->idEntries[i].dwBytesInRes = pIconDirEntry[i].dwBytesInRes;
pGrpIconDir->idEntries[i].nID = i+1; //ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ,<2C><><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>Ҫ<EFBFBD><D2AA>֮ǰ<D6AE><C7B0><EFBFBD>ڵ<EFBFBD><DAB5>г<EFBFBD>ͻ,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> FindResource(...,MAKEINTRESOURCE(n),RT_ICON);<3B><><EFBFBD><EFBFBD>
}
hUpdate = BeginUpdateResource(lpExeName, false);
if (hUpdate)
{
//<2F><><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD>RT_GROUP_ICON<4F><4E>Ϣ
bRet = UpdateResource(
hUpdate,
RT_GROUP_ICON,
MAKEINTRESOURCE(1),//EXE<58><45>ʾΪ<CABE><CEAA>СID<49><44>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
pGrpIconDir,
nGSize);
if (!bRet)break;
//<2F><><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ÿһ<C3BF><D2BB>Icon<6F><6E><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
for(int i = 0;i < pHeader->idCount;i++)
{
if(dwDataSize <
(pIconDirEntry[i].dwImageOffset +
pIconDirEntry[i].dwBytesInRes))break;
pIconBytes = pIconFileData + pIconDirEntry[i].dwImageOffset;
//׼<><D7BC>pIconBytes<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Byte<74><65>Ϣ<EFBFBD><CFA2><EFBFBD>ڸ<EFBFBD><DAB8>µ<EFBFBD>EXE<58>С<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>ID<49><44>Ӧ<EFBFBD><D3A6>RT_ICON<4F><4E>Ϣ
bRet = UpdateResource(
hUpdate,
RT_ICON,
MAKEINTRESOURCE(pGrpIconDir->idEntries[i].nID),
MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
pIconBytes,
pIconDirEntry[i].dwBytesInRes);
if(!bRet)break;
}
//<2F><><EFBFBD><EFBFBD>EXE<58><45>Դ<EFBFBD>ĸ<EFBFBD><C4B8>²<EFBFBD><C2B2><EFBFBD>
EndUpdateResource(hUpdate, false);
bReturn = TRUE;
}
}while(false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ر<EFBFBD>Icon<6F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SAFE_ARRAY_DELETE(pGrpIconDir);
return bReturn;
}
BOOL CMyToolsKit::ChangeExeIcon(LPSTR lpIconFile, LPSTR lpExeName)
{
HANDLE hIconFile = INVALID_HANDLE_VALUE;
PBYTE pIconFileData = NULL;
BOOL bSuceeded = FALSE;
do
{
hIconFile= CreateFile(
lpIconFile,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hIconFile == INVALID_HANDLE_VALUE)break;
DWORD dwIconFileSize = GetFileSize(hIconFile,NULL);
pIconFileData = new BYTE[dwIconFileSize];
if(!pIconFileData)break;
DWORD dwReaded;
if(!ReadFile(
hIconFile,
pIconFileData,
dwIconFileSize,
&dwReaded,
NULL))break;
if(dwReaded != dwIconFileSize)break;
if(!ChangeExeIcons(
lpExeName,
pIconFileData,
dwIconFileSize))break;
bSuceeded = TRUE;
}while(false);
if(pIconFileData)
delete pIconFileData;
if(hIconFile != INVALID_HANDLE_VALUE)
CloseHandle(hIconFile);
return TRUE;
}
void CMyToolsKit::OnButton2()
{
// TODO: Add your control notification handler code here
char ExePath[MAX_PATH]={NULL};
char IconPath[MAX_PATH]={NULL};
GetDlgItemText(IDC_EDIT2,ExePath,MAX_PATH);
GetDlgItemText(IDC_EDIT1,IconPath,MAX_PATH);
if(ChangeExeIcon(IconPath,ExePath))
{
MessageBox("<EFBFBD><EFBFBD>ϲ <20>ļ<EFBFBD><C4BC>޸ijɹ<C4B3>!!!");
}
else
{
MessageBox("<EFBFBD>ļ<EFBFBD><EFBFBD>޸<EFBFBD>ʧ<EFBFBD><EFBFBD>!!!");
}
}
void MD5_File (char * filename,char *MD5);
void CMyToolsKit::OnSelectfile()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("All File (*.*)\0*.*\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
TCHAR szPathA[MAX_PATH] = {0};
TCHAR szPathB[MAX_PATH] = {0};
char Md5[64]={NULL};
MD5_File(szFile,Md5);
SetDlgItemText(IDC_OMD3,Md5);
m_Path=szFile;
UpdateData(FALSE);
}
}
void CMyToolsKit::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_Path.GetLength()<1)
{
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>!!","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ",MB_ICONWARNING|MB_OK);
return ;
}
SetTimer(0x100,m_time*1000,NULL);
((CButton *)GetDlgItem(IDC_START))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_STOP2))->EnableWindow(TRUE);
}
void CMyToolsKit::OnStop()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
KillTimer(0x100);
((CButton *)GetDlgItem(IDC_START))->EnableWindow(TRUE);
((CButton *)GetDlgItem(IDC_STOP2))->EnableWindow(FALSE);
}
DWORD CountTimes=0;
void CMyToolsKit::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==0x100)
{
HANDLE m_Handle = CreateFile(m_Path.GetBuffer(0),GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
NULL);
if(m_Handle==INVALID_HANDLE_VALUE)
{
CDialog::OnTimer(nIDEvent);
return;
}
char VarMd5[64]={NULL};
ZeroMemory(VarMd5,64);
GetDlgItemText(IDC_CMD5,VarMd5,64);
if(strlen(VarMd5)<10)
SetFilePointer(m_Handle,0,0,FILE_END);
else
SetFilePointer(m_Handle,-100,NULL,FILE_END);
CHAR Buffer[100]={NULL};
// ((CGh0stApp *)AfxGetApp())->GetRandString(Buffer,100); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GetRandString(Buffer,100); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Buffer[0]=CountTimes*12;
DWORD WriteBytes=0;
WriteFile(m_Handle,Buffer,100,&WriteBytes,NULL); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CloseHandle(m_Handle);
char CMd5[64]={NULL};
MD5_File(m_Path.GetBuffer(0),CMd5); //<2F><><EFBFBD><EFBFBD>MD5
SetDlgItemText(IDC_CMD5,CMd5);
CountTimes++;
CString szStr;
szStr.Format("<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>޸Ĵ<EFBFBD><EFBFBD><EFBFBD> %d ",CountTimes);
// SetDlgItemText(IDC_STATIC_COUNT,szStr);
}
CDialog::OnTimer(nIDEvent);
}
void CMyToolsKit::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
void CMyToolsKit::OnButton4()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("ICON (*.ico)\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
SetDlgItemText(IDC_EDIT1,szFile);
}
}
void CMyToolsKit::OnFilePath()
{
// TODO: Add your control notification handler code here
TCHAR szFile[MAX_PATH] = {0};
OPENFILENAME OpenFileName;
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = m_hWnd;
OpenFileName.hInstance = AfxGetInstanceHandle();
OpenFileName.lpstrFilter = _T("All FILE (*.*)\0*.*\0\0");
OpenFileName.lpstrCustomFilter = NULL;
OpenFileName.nMaxCustFilter = 0;
OpenFileName.nFilterIndex = 0;
OpenFileName.lpstrFile = szFile;
OpenFileName.nMaxFile = sizeof(szFile);
OpenFileName.lpstrFileTitle = NULL;
OpenFileName.nMaxFileTitle = 0;
OpenFileName.lpstrInitialDir = _T(".");
OpenFileName.lpstrTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
OpenFileName.nFileOffset = 0;
OpenFileName.nFileExtension = 0;
OpenFileName.lpstrDefExt = NULL;
OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER;
if(GetOpenFileName(&OpenFileName))
{
SetDlgItemText(IDC_EDIT4,szFile);
HANDLE Handle = CreateFile(szFile,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(Handle == INVALID_HANDLE_VALUE)
{
MessageBox("<EFBFBD>ļ<EFBFBD><EFBFBD>ܾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..<2E><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>һ<EFBFBD><D2BB> <20><><EFBFBD>޸<EFBFBD>!");
return;
}
DWORD Size = GetFileSize(Handle,NULL)/1024;
m_Sllider.SetRange(Size,10240);
m_Sllider.SetPos(Size);
CloseHandle(Handle);
GetDlgItem(IDC_SLIDER1)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON5)->EnableWindow(TRUE);
}
}
void CMyToolsKit::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
SetDlgItemInt(IDC_EDIT5,m_Sllider.GetPos());
*pResult = 0;
}
void CMyToolsKit::OnButton5()
{
// TODO: Add your control notification handler code here
CHAR Path[MAX_PATH]={NULL};
ZeroMemory(Path,MAX_PATH);
GetDlgItemText(IDC_EDIT4,Path,MAX_PATH);
HANDLE Handle = CreateFile(Path,GENERIC_WRITE,FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(Handle == INVALID_HANDLE_VALUE)
{
MessageBox("<EFBFBD>ļ<EFBFBD><EFBFBD>ܾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..<2E><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>һ<EFBFBD><D2BB> <20><><EFBFBD>޸<EFBFBD>!");
return;
}
DWORD MotifySize=m_Sllider.GetPos();
DWORD FileSize = GetFileSize(Handle,NULL)/1024;
MotifySize = MotifySize - FileSize;
CHAR Buffer[1024]={NULL};
GetRandString(Buffer,1024);
SetFilePointer(Handle,0,0,FILE_END);
DWORD WriteBytes=0;
for (DWORD i=0;i<MotifySize;i++)
WriteFile(Handle,Buffer,1024,&WriteBytes,NULL);
CloseHandle(Handle);
MessageBox("<EFBFBD>޸ijɹ<EFBFBD>!");
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD>ʽ<EFBFBD>
void CMyToolsKit::GetRandString(LPSTR szStr,DWORD len)
{
assert(szStr != NULL);
char* pvCode = szStr;
char singleCode[2];
char verificationValue[64] = "00123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
memset(szStr,0 ,len);
memset(singleCode,0,2);
srand((unsigned int)time((time_t *)NULL));
for(unsigned int i=1; i <= len; ++i)
{
sprintf(singleCode,"%c",verificationValue[(rand()%62)+1]);
strcpy(szStr,singleCode);
}
}