⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configdialog.cpp

📁 文件加密用的C++源代码
💻 CPP
字号:
#include "stdafx.h"
#include "ConfigDialog.h"
#include <stdio.h>
#include "registry.h"

ConfigDialog::ConfigDialog()
{
}

ConfigDialog::~ConfigDialog()
{
}

LRESULT ConfigDialog::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	return 1;
}

LRESULT ConfigDialog::OnCloseDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	EndDialog(0);
	return 0;
}

LRESULT ConfigDialog::OnBnClickedRegisterButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	char fullKey[100];
	_snprintf(fullKey, 100, "%s\\shell\\open\\command\0", _masterKey);

	Registry reg(HKEY_CLASSES_ROOT, fullKey);
	
	if (reg.checkValidity())
	{
        char *cmdLine = getCmdLine();        
		
		reg.setValue("", REG_SZ, cmdLine, (DWORD)strlen(cmdLine));

		delete cmdLine;
	}

	reg.changeKey(HKEY_CLASSES_ROOT, ".enc");
	
	if (reg.checkValidity())
	{
		// backing up old key (last parameter).
		reg.setValue("", REG_SZ, _masterKey, (DWORD)strlen(_masterKey), true);
	}

	MessageBox("Registry Settings added Successfully", "Finished", MB_ICONQUESTION);

	return 0;
}

LRESULT ConfigDialog::OnBnClickedUnregisterButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	SHDeleteKey(HKEY_CLASSES_ROOT, _masterKey);

	Registry reg(HKEY_CLASSES_ROOT, ".enc");

	if (!reg.restore(_masterKey))
	{
		reg.deleteKey(true);
	}

	MessageBox("Registry Settings removed Successfully", "Finished", MB_ICONQUESTION);
	
	return 0;
}

LRESULT ConfigDialog::OnBnClickedClosesettings(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	EndDialog(0);
	return 0;
}

LRESULT ConfigDialog::OnBnClickedSetcontestButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
    const char *encryptText = "Encrypt File";
	Registry reg(HKEY_CLASSES_ROOT, "*\\shell\\Dreamer.File.Encrypt");
	reg.setValue("", REG_SZ, encryptText, (DWORD)strlen(encryptText ), false);

	reg.changeKey(HKEY_CLASSES_ROOT, "*\\shell\\Dreamer.File.Encrypt\\command");
	char *cmdLine = getCmdLine();
	reg.setValue("", REG_SZ, cmdLine, (DWORD)strlen(cmdLine), false);

	MessageBox("Content Menu updated Successfully", "Finished", MB_ICONQUESTION);

	return 0;
}

LRESULT ConfigDialog::OnBnClickedRemovecontestButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	SHDeleteKey(HKEY_CLASSES_ROOT, "*\\shell\\Dreamer.File.Encrypt");

	MessageBox("File Encryption Content Menu Removed Successfully", "Finished", MB_ICONQUESTION);

	return 0;
}

char *ConfigDialog::getCmdLine()
{
	char filename[MAX_PATH];
	
	// get current executable filename.
	GetModuleFileName(0, filename, MAX_PATH);

	char *writeStr = new char[MAX_PATH];
	
	_snprintf(writeStr, MAX_PATH, "\"%s\" \"%%1\"\0", filename);

	return writeStr;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -