Pārlūkot izejas kodu

Allow left/right control and left/right shift keys to be set as {vkey} keys

Scott Brogden 7 gadi atpakaļ
vecāks
revīzija
a37e4e2650
6 mainītis faili ar 86 papildinājumiem un 8 dzēšanām
  1. 26 1
      AdvGeneral.cpp
  2. 1 0
      DittoSetup/BuildDitto.bld
  3. 15 0
      Options.cpp
  4. 4 0
      Options.h
  5. 39 6
      SendKeys.cpp
  6. 1 1
      SendKeys.h

+ 26 - 1
AdvGeneral.cpp

@@ -108,6 +108,9 @@ END_MESSAGE_MAP()
 #define SETTING_CLIPBOARD_SAVE_DELAY 61
 #define SETTING_CLIPBOARD_SAVE_DELAY 61
 #define SETTING_SHOW_MSG_WHEN_RECEIVING_MANUAL_SENT_CLIP 62
 #define SETTING_SHOW_MSG_WHEN_RECEIVING_MANUAL_SENT_CLIP 62
 #define SETTING_MULTIPASTE_REVERSE_ORDER 63
 #define SETTING_MULTIPASTE_REVERSE_ORDER 63
+#define SETTING_DEFAULT_PASTE_STRING 64
+#define SETTING_DEFAULT_COPY_STRING 65
+#define SETTING_DEFAULT_CUT_STRING 66
 
 
 BOOL CAdvGeneral::OnInitDialog()
 BOOL CAdvGeneral::OnInitDialog()
 {
 {
@@ -139,7 +142,10 @@ BOOL CAdvGeneral::OnInitDialog()
 	
 	
 	AddTrueFalse(pGroupTest, _T("Allow Duplicates"), CGetSetOptions::GetAllowDuplicates(), SETTING_ALLOW_DUPLICATES);
 	AddTrueFalse(pGroupTest, _T("Allow Duplicates"), CGetSetOptions::GetAllowDuplicates(), SETTING_ALLOW_DUPLICATES);
 	AddTrueFalse(pGroupTest, _T("Always Show Scroll Bar"), CGetSetOptions::GetShowScrollBar(), SETTING_ALWAYS_SHOW_SCROLL_BAR);
 	AddTrueFalse(pGroupTest, _T("Always Show Scroll Bar"), CGetSetOptions::GetShowScrollBar(), SETTING_ALWAYS_SHOW_SCROLL_BAR);
-	pGroupTest->AddSubItem( new CMFCPropertyGridProperty(_T("Amount of text to save for description"), g_Opt.m_bDescTextSize, _T(""), SETTING_DESC_SIZE));
+	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Amount of text to save for description"), g_Opt.m_bDescTextSize, _T(""), SETTING_DESC_SIZE));
+	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Default Paste String"), CGetSetOptions::GetDefaultPasteString(), _T(""), SETTING_DEFAULT_PASTE_STRING));
+	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Default Copy String"), CGetSetOptions::GetDefaultCopyString(), _T(""), SETTING_DEFAULT_COPY_STRING));
+	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Default Cut String"), CGetSetOptions::GetDefaultCutString(), _T(""), SETTING_DEFAULT_CUT_STRING));
 	
 	
 	static TCHAR BASED_CODE szDiffFilter[] = _T("Diff Applications(*.exe)|*.exe||");
 	static TCHAR BASED_CODE szDiffFilter[] = _T("Diff Applications(*.exe)|*.exe||");
 	CMFCPropertyGridFileProperty* pDiffProp = new CMFCPropertyGridFileProperty(_T("Diff Application Path"), TRUE, CGetSetOptions::GetDiffApp(), _T("exe"), 0, szDiffFilter, (LPCTSTR)0, SETTING_DIFF_APP);
 	CMFCPropertyGridFileProperty* pDiffProp = new CMFCPropertyGridFileProperty(_T("Diff Application Path"), TRUE, CGetSetOptions::GetDiffApp(), _T("exe"), 0, szDiffFilter, (LPCTSTR)0, SETTING_DIFF_APP);
@@ -628,6 +634,25 @@ void CAdvGeneral::OnBnClickedOk()
 					CGetSetOptions::SetToolTipTimeout(pNewValue->lVal);
 					CGetSetOptions::SetToolTipTimeout(pNewValue->lVal);
 				}
 				}
 				break;
 				break;
+
+			case SETTING_DEFAULT_PASTE_STRING:
+				if (wcscmp(pNewValue->bstrVal, pOrigValue->bstrVal) != 0)
+				{
+					CGetSetOptions::SetDefaultPasteString(pNewValue->bstrVal);
+				}
+				break;
+			case SETTING_DEFAULT_COPY_STRING:
+				if (wcscmp(pNewValue->bstrVal, pOrigValue->bstrVal) != 0)
+				{
+					CGetSetOptions::SetDefaultCopyString(pNewValue->bstrVal);
+				}
+				break;
+			case SETTING_DEFAULT_CUT_STRING:
+				if (wcscmp(pNewValue->bstrVal, pOrigValue->bstrVal) != 0)
+				{
+					CGetSetOptions::SetDefaultCutString(pNewValue->bstrVal);
+				}
+				break;
 			}
 			}
 		}
 		}
 	}
 	}

+ 1 - 0
DittoSetup/BuildDitto.bld

@@ -523,6 +523,7 @@ var sc_security="b3f57099";
 			<name><![CDATA[Replace Line Feeds with <br>]]></name>
 			<name><![CDATA[Replace Line Feeds with <br>]]></name>
 		</step>
 		</step>
 		<step action='FTP'>
 		<step action='FTP'>
+			<ExclExt>*.php</ExclExt>
 			<Ext>*.*</Ext>
 			<Ext>*.*</Ext>
 			<Filename>%workDir%\DittoSetup\output\</Filename>
 			<Filename>%workDir%\DittoSetup\output\</Filename>
 			<Incremental type='11'>-1</Incremental>
 			<Incremental type='11'>-1</Incremental>

+ 15 - 0
Options.cpp

@@ -1865,6 +1865,11 @@ CString CGetSetOptions::GetDefaultPasteString()
 	return GetProfileString(_T("DefaultPasteString"), _T("^{VKEY86}"));
 	return GetProfileString(_T("DefaultPasteString"), _T("^{VKEY86}"));
 }
 }
 
 
+void CGetSetOptions::SetDefaultPasteString(CString val)
+{
+	SetProfileString(_T("DefaultPasteString"), val);
+}
+
 CString CGetSetOptions::GetCopyString(CString csAppName)
 CString CGetSetOptions::GetCopyString(CString csAppName)
 {
 {
 	CString csString = GetProfileString(csAppName, _T(""), _T("CopyStrings"));
 	CString csString = GetProfileString(csAppName, _T(""), _T("CopyStrings"));
@@ -1881,6 +1886,11 @@ CString CGetSetOptions::GetDefaultCopyString()
 	return GetProfileString(_T("DefaultCopyString"), _T("^{VKEY67}"));
 	return GetProfileString(_T("DefaultCopyString"), _T("^{VKEY67}"));
 }
 }
 
 
+void CGetSetOptions::SetDefaultCopyString(CString val)
+{
+	SetProfileString(_T("DefaultCopyString"), val);
+}
+
 CString CGetSetOptions::GetCutString(CString csAppName)
 CString CGetSetOptions::GetCutString(CString csAppName)
 {
 {
 	CString csString = GetProfileString(csAppName, _T(""), _T("CutStrings"));
 	CString csString = GetProfileString(csAppName, _T(""), _T("CutStrings"));
@@ -1897,6 +1907,11 @@ CString CGetSetOptions::GetDefaultCutString()
 	return GetProfileString(_T("DefaultCutString"), _T("^{VKEY88}"));
 	return GetProfileString(_T("DefaultCutString"), _T("^{VKEY88}"));
 }
 }
 
 
+void CGetSetOptions::SetDefaultCutString(CString val)
+{
+	SetProfileString(_T("DefaultCutString"), val);
+}
+
 BOOL CGetSetOptions::GetEditWordWrap()
 BOOL CGetSetOptions::GetEditWordWrap()
 {
 {
 	return GetProfileLong(_T("EditWordWrap"), TRUE);
 	return GetProfileLong(_T("EditWordWrap"), TRUE);

+ 4 - 0
Options.h

@@ -364,13 +364,17 @@ public:
 	static BOOL		GetSetCurrentDirectory();
 	static BOOL		GetSetCurrentDirectory();
 
 
 	static CString GetPasteString(CString csAppName);
 	static CString GetPasteString(CString csAppName);
+
 	static CString GetDefaultPasteString();
 	static CString GetDefaultPasteString();
+	static void SetDefaultPasteString(CString val);
 
 
 	static CString GetCopyString(CString csAppName);
 	static CString GetCopyString(CString csAppName);
 	static CString GetDefaultCopyString();
 	static CString GetDefaultCopyString();
+	static void SetDefaultCopyString(CString val);
 
 
 	static CString GetCutString(CString csAppName);
 	static CString GetCutString(CString csAppName);
 	static CString GetDefaultCutString();
 	static CString GetDefaultCutString();
+	static void SetDefaultCutString(CString val);
 
 
 	static BOOL	GetEditWordWrap();
 	static BOOL	GetEditWordWrap();
 	static void	SetEditWordWrap(BOOL bSet);
 	static void	SetEditWordWrap(BOOL bSet);

+ 39 - 6
SendKeys.cpp

@@ -400,10 +400,26 @@ void CSendKeys::PopUpShiftKeys()
 	{
 	{
       SendKeyUp(VK_SHIFT);
       SendKeyUp(VK_SHIFT);
 	}
 	}
+	if (m_bLShiftDown)
+	{
+		SendKeyUp(VK_LSHIFT);
+	}
+	if (m_bRShiftDown)
+	{
+		SendKeyUp(VK_RSHIFT);
+	}
     if (m_bControlDown)
     if (m_bControlDown)
 	{
 	{
       SendKeyUp(VK_CONTROL);
       SendKeyUp(VK_CONTROL);
 	}
 	}
+	if (m_bLControlDown)
+	{
+		SendKeyUp(VK_LCONTROL);
+	}
+	if (m_bRControlDown)
+	{
+		SendKeyUp(VK_RCONTROL);
+	}
     if (m_bAltDown)
     if (m_bAltDown)
 	{
 	{
       SendKeyUp(VK_MENU);
       SendKeyUp(VK_MENU);
@@ -413,7 +429,7 @@ void CSendKeys::PopUpShiftKeys()
       SendKeyUp(VK_LWIN);
       SendKeyUp(VK_LWIN);
 	}
 	}
 
 
-    m_bWinDown = m_bShiftDown = m_bControlDown = m_bAltDown = false;
+    m_bWinDown = m_bShiftDown = m_bLShiftDown = m_bRShiftDown = m_bControlDown = m_bLControlDown = m_bRControlDown = m_bAltDown = false;
   }
   }
 }
 }
 
 
@@ -431,7 +447,7 @@ bool CSendKeys::SendKeys(LPCTSTR KeysString, bool Wait)
 
 
   m_bWait = Wait;
   m_bWait = Wait;
 
 
-  m_bWinDown = m_bShiftDown = m_bControlDown = m_bAltDown = m_bUsingParens = false;
+  m_bWinDown = m_bShiftDown = m_bLShiftDown = m_bRShiftDown = m_bControlDown = m_bLControlDown = m_bRControlDown = m_bAltDown = m_bUsingParens = false;
 
 
   while (ch = *pKey)
   while (ch = *pKey)
   {
   {
@@ -566,10 +582,27 @@ bool CSendKeys::SendKeys(LPCTSTR KeysString, bool Wait)
         }
         }
 
 
         // A valid key to send?
         // A valid key to send?
-        if (MKey != INVALIDKEY)
-        {
-          SendKey(MKey, NumTimes, true);
-          PopUpShiftKeys();
+		if (MKey != INVALIDKEY)
+		{
+			if (MKey == VK_LCONTROL ||
+				MKey == VK_RCONTROL)
+			{
+				m_bLControlDown = (MKey == VK_LCONTROL);
+				m_bRControlDown = (MKey == VK_RCONTROL);
+				SendKeyDown(MKey, 1, false);
+			}
+			else if (MKey == VK_LSHIFT ||
+					 MKey == VK_RSHIFT)
+			{
+				m_bLShiftDown = (MKey == VK_LSHIFT);
+				m_bRShiftDown = (MKey == VK_RSHIFT);
+				SendKeyDown(MKey, 1, false);
+			}
+			else
+			{		
+				SendKey(MKey, NumTimes, true);	
+				PopUpShiftKeys();
+			}
         }
         }
       }
       }
       break;
       break;

+ 1 - 1
SendKeys.h

@@ -8,7 +8,7 @@
 class CSendKeys
 class CSendKeys
 {
 {
 private:
 private:
-  bool m_bWait, m_bUsingParens, m_bShiftDown, m_bAltDown, m_bControlDown, m_bWinDown;
+  bool m_bWait, m_bUsingParens, m_bShiftDown, m_bLShiftDown, m_bRShiftDown, m_bAltDown, m_bControlDown, m_bLControlDown, m_bRControlDown, m_bWinDown;
   DWORD  m_nDelayAlways, m_nDelayNow, m_keyDownDelay;
   DWORD  m_nDelayAlways, m_nDelayNow, m_keyDownDelay;
 
 
   static BOOL CALLBACK enumwindowsProc(HWND hwnd, LPARAM lParam);
   static BOOL CALLBACK enumwindowsProc(HWND hwnd, LPARAM lParam);