Beispiel #1
0
void CInfo::Save() const
{
  CS_LOCK

  CKey key;
  CreateMainKey(key, kKeyName);
  key.SetValue(kLevel, (UInt32)Level);
  key.SetValue(kArchiver, ArcType);
  key.SetValue(kShowPassword, ShowPassword);
  key.SetValue(kEncryptHeaders, EncryptHeaders);
  key.RecurseDeleteKey(kArcHistory);
  key.SetValue_Strings(kArcHistory, ArcPaths);

  key.RecurseDeleteKey(kOptionsKeyName);
  {
    CKey optionsKey;
    optionsKey.Create(key, kOptionsKeyName);
    for (int i = 0; i < Formats.Size(); i++)
    {
      const CFormatOptions &fo = Formats[i];
      CKey fk;
      fk.Create(optionsKey, fo.FormatID);
      
      SetRegUInt32(fk, kLevel, fo.Level);
      SetRegUInt32(fk, kDictionary, fo.Dictionary);
      SetRegUInt32(fk, kOrder, fo.Order);
      SetRegUInt32(fk, kBlockSize, fo.BlockLogSize);
      SetRegUInt32(fk, kNumThreads, fo.NumThreads);

      SetRegString(fk, kMethod, fo.Method);
      SetRegString(fk, kOptions, fo.Options);
      SetRegString(fk, kEncryptionMethod, fo.EncryptionMethod);
    }
  }
}
HRESULT CMainFrame::UpdateMenuURL(CMenu* Menu)
{
	m_ListURL.RemoveAll();

	// read from registry
	HKEY key;
	DWORD type, size, data_size;
	LONG lr;

	CString Path = CString(DCGF_TOOLS_REG_PATH) + "\\MenuURL";

	size = MAX_PATH;
	data_size = 1024;
	char Name[MAX_PATH];
	BYTE Data[1024];

	//CMenu* Menu = CMenu::FromHandle(m_hMenuDefault);
	

	int Index = 0;
	lr = RegOpenKeyEx(HKEY_CURRENT_USER, Path, 0, KEY_READ, &key);
	if(lr==ERROR_SUCCESS){

		while(ERROR_SUCCESS==RegEnumValue(key, Index, Name, &size, NULL, &type, Data, &data_size)){			

			if(type==REG_SZ){
				m_ListURL.Add(Data);
				Menu->ModifyMenu(ID_HELP_WEB1 + Index, MF_BYCOMMAND|MF_STRING, ID_HELP_WEB1 + Index, Name);
			}

			if(m_ListURL.GetSize()==10) break;


			Index++;
			size = MAX_PATH;
			data_size = 1024;
		}

	}


	if(m_ListURL.GetSize()==0){
		SetRegString(HKEY_CURRENT_USER, Path, "WME Homepage", "http://dead-code.org/");
		SetRegString(HKEY_CURRENT_USER, Path, "WME Forum", "http://forum.dead-code.org/");

		return UpdateMenuURL(Menu);
	}
	else{
		for(int i=Index; i<10; i++){
			Menu->RemoveMenu(ID_HELP_WEB1 + i, MF_BYCOMMAND);
		}
	}

	return S_OK;
}
Beispiel #3
0
BOOL InstallRegStr(HKEY hkBase, char *szKeyName, char *szName, char *szValue) {
	char buf[256];

	if (!SetRegString(hkBase, szKeyName, szName, szValue)) {
		sprintf(buf,"Couldn't set registry key %s\\%s",szKeyName,szName?szName:"(default)");
		MessageBox(NULL, buf, "Install error", MB_OK);
		return FALSE;
	}

	return TRUE;
}
void CApp::DoSomeNagging()
{
	CString Magic = GetRegString(HKEY_CURRENT_USER, DCGF_TOOLS_REG_PATH, "BBID");
	CNumEncoder Enc;
	Enc.DecodeFromString(Magic);

	CTime Time = CTime::GetCurrentTime();
	
	int Year     = Enc.GetNumber(0, Time.GetYear());
	int Month    = Enc.GetNumber(1, Time.GetMonth());
	int Day      = Enc.GetNumber(2, Time.GetDay());
	int DaysUsed = Enc.GetNumber(3, 1);
	int Answer   = Enc.GetNumber(4, 0); // 0..remind later, 1..done already, 2..don't wanna

	// we started a new day
	if(Year != Time.GetYear() || Month != Time.GetMonth() || Day != Time.GetDay())
	{
		DaysUsed++;

		// nag every 10th day
		if(DaysUsed % 10 == 0 && Answer == 0)
		{
			// display dialog
			CReminderDlg Dlg;
			Dlg.DoModal();
			Answer = Dlg.m_SelectedOption;
		}
	}

	Enc.SetNumber(0, Time.GetYear());
	Enc.SetNumber(1, Time.GetMonth());
	Enc.SetNumber(2, Time.GetDay());
	Enc.SetNumber(3, DaysUsed);
	Enc.SetNumber(4, Answer);

	Magic = Enc.EncodeToString();
	SetRegString(HKEY_CURRENT_USER, DCGF_TOOLS_REG_PATH, "BBID", Magic);
}