瀏覽代碼

Auto start Ditto when windows app

Scott Brogden 9 年之前
父節點
當前提交
df1bfa1ae1
共有 2 個文件被更改,包括 18 次插入2 次删除
  1. 3 0
      DittoSetup/BuildDitto.bld
  2. 15 2
      OptionsGeneral.cpp

+ 3 - 0
DittoSetup/BuildDitto.bld

@@ -379,6 +379,9 @@ DittoSetup*]]></X>
        Description="Ditto" />
     </Application>
   </Applications>
+  <desktop:Extension Category="windows.startupTask" Executable="Ditto.exe" EntryPoint="Windows.FullTrustApplication">
+    <desktop:StartupTask TaskId="DittoStartupTask" Enabled="true" DisplayName="Ditto Service" />
+  </desktop:Extension>
 </Package>]]></Text>
 			<buildfailsteps type='11'>0</buildfailsteps>
 			<indent type='3'>2</indent>

+ 15 - 2
OptionsGeneral.cpp

@@ -89,7 +89,15 @@ BOOL COptionsGeneral::OnInitDialog()
 	
 	m_pParent = (COptionsSheet *)GetParent();
 
-	m_btRunOnStartup.SetCheck(CGetSetOptions::GetRunOnStartUp());
+	if (CGetSetOptions::GetIsWindowsApp())
+	{
+		m_btRunOnStartup.SetCheck(BST_CHECKED);
+		GetDlgItem(IDC_START_ON_STARTUP)->EnableWindow(FALSE);
+	}
+	else
+	{
+		m_btRunOnStartup.SetCheck(CGetSetOptions::GetRunOnStartUp());
+	}
 	m_btShowIconInSysTray.SetCheck(CGetSetOptions::GetShowIconInSysTray());
 	m_btMaximumCheck.SetCheck(CGetSetOptions::GetCheckForMaxEntries());
 	m_btExpire.SetCheck(CGetSetOptions::GetCheckForExpiredEntries());
@@ -186,7 +194,12 @@ BOOL COptionsGeneral::OnApply()
 	::SendMessage(theApp.m_MainhWnd, WM_SHOW_TRAY_ICON, m_btShowIconInSysTray.GetCheck(), 0);
 
 	CGetSetOptions::SetShowIconInSysTray(m_btShowIconInSysTray.GetCheck());
-	CGetSetOptions::SetRunOnStartUp(m_btRunOnStartup.GetCheck());
+
+	if (CGetSetOptions::GetIsWindowsApp() == FALSE)
+	{
+		CGetSetOptions::SetRunOnStartUp(m_btRunOnStartup.GetCheck());
+	}
+
 	CGetSetOptions::SetCheckForMaxEntries(m_btMaximumCheck.GetCheck());
 	CGetSetOptions::SetCheckForExpiredEntries(m_btExpire.GetCheck());
 	CGetSetOptions::SetHideDittoOnHotKeyIfAlreadyShown(m_btHideDittoOnHotKey.GetCheck());