jiemishuoDlg.cpp
上传用户:qzzxgm
上传日期:2009-12-14
资源大小:1882k
文件大小:4k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // jiemishuoDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "jiemishuo.h"
  5. #include "jiemishuoDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CJiemishuoDlg dialog
  13. CJiemishuoDlg::CJiemishuoDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CJiemishuoDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CJiemishuoDlg)
  17. m_jms = 0;
  18. m_gkh = 0;
  19. //}}AFX_DATA_INIT
  20. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  21. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  22. }
  23. void CJiemishuoDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CJiemishuoDlg)
  27. DDX_Text(pDX, IDC_JMS, m_jms);
  28. DDX_Text(pDX, IDC_GKH, m_gkh);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(CJiemishuoDlg, CDialog)
  32. //{{AFX_MSG_MAP(CJiemishuoDlg)
  33. ON_WM_PAINT()
  34. ON_WM_QUERYDRAGICON()
  35. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  36. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  37. ON_BN_CLICKED(IDC_BUTTON3, OnAdd)
  38. //}}AFX_MSG_MAP
  39. END_MESSAGE_MAP()
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CJiemishuoDlg message handlers
  42. BOOL CJiemishuoDlg::OnInitDialog()
  43. {
  44. CDialog::OnInitDialog();
  45. // Set the icon for this dialog.  The framework does this automatically
  46. //  when the application's main window is not a dialog
  47. SetIcon(m_hIcon, TRUE); // Set big icon
  48. SetIcon(m_hIcon, FALSE); // Set small icon
  49. // TODO: Add extra initialization here
  50. //获得c盘序列号
  51. DWORD VolumeSerialNumber;
  52. GetVolumeInformation("c:\",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);
  53. VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算
  54. m_gkh=VolumeSerialNumber;
  55. UpdateData(0);
  56. return TRUE; 
  57. }
  58. // If you add a minimize button to your dialog, you will need the code below
  59. //  to draw the icon.  For MFC applications using the document/view model,
  60. //  this is automatically done for you by the framework.
  61. void CJiemishuoDlg::OnPaint() 
  62. {
  63. if (IsIconic())
  64. {
  65. CPaintDC dc(this); // device context for painting
  66. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  67. // Center icon in client rectangle
  68. int cxIcon = GetSystemMetrics(SM_CXICON);
  69. int cyIcon = GetSystemMetrics(SM_CYICON);
  70. CRect rect;
  71. GetClientRect(&rect);
  72. int x = (rect.Width() - cxIcon + 1) / 2;
  73. int y = (rect.Height() - cyIcon + 1) / 2;
  74. // Draw the icon
  75. dc.DrawIcon(x, y, m_hIcon);
  76. }
  77. else
  78. {
  79. CDialog::OnPaint();
  80. }
  81. }
  82. // The system calls this to obtain the cursor to display while the user drags
  83. //  the minimized window.
  84. HCURSOR CJiemishuoDlg::OnQueryDragIcon()
  85. {
  86. return (HCURSOR) m_hIcon;
  87. }
  88. void CJiemishuoDlg::OnButton1() 
  89. {
  90. DWORD num;
  91. UpdateData(1);
  92. num=m_jms;
  93. num^=0x1999aa98;
  94. if(num==m_gkh)
  95. MessageBox("ok"); //提示解密正确
  96. CFile ff;
  97. if(!ff.Open("play.exe",CFile::modeWrite))
  98. return;
  99. CString str;
  100. str.Format("%10d",m_jms);
  101. MessageBox(str);
  102. ff.Seek(-10,CFile::end);
  103. ff.Write(str,10);//添加到play.exe尾部
  104. ff.Close();
  105. }
  106. void CJiemishuoDlg::OnButton2() 
  107. {
  108. //功能:得到解密匙.
  109. UpdateData(1);
  110. long aa=m_gkh^0x1999aa98;
  111. m_jms=aa;
  112. UpdateData(0);
  113. }
  114. void CJiemishuoDlg::OnAdd() 
  115. {
  116. DWORD num;
  117. UpdateData(1);
  118. num=m_jms;
  119. num^=0x1999aa98;
  120. if(num==m_gkh)
  121. MessageBox("ok"); //提示解密匙正确
  122. CFile ff;
  123. if(!ff.Open("play.exe",CFile::modeWrite))
  124. return;
  125. CString str;
  126. str.Format("%10d",m_jms);
  127. MessageBox(str);
  128. ff.SeekToEnd();
  129. ff.Write(str,10);//改写解密匙
  130. ff.Close();
  131. }