Jelajahi Sumber

优化 - 支持Ctrl+A、Ctrl+C复制路径内容,安装路径过长限制、vba脚本内容,优化其他内容

chenrongqian 2 tahun lalu
induk
melakukan
fcdc9c050d
23 mengubah file dengan 229 tambahan dan 52 penghapusan
  1. 3 3
      PDFReaderPro_Installer/Bin/XMLFile.xml
  2. 3 2
      PDFReaderPro_Installer/Bin/msg.xml
  3. TEMPAT SAMPAH
      PDFReaderPro_Installer/Bin/warning.png
  4. 65 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CCmd.cpp
  5. 1 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CCmd.h
  6. 13 3
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CFrameWnd.cpp
  7. 1 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CFrameWnd.h
  8. 7 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CLanguage.cpp
  9. 2 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CLanguage.h
  10. 19 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CMsgWnd.cpp
  11. 13 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CMsgWnd.h
  12. 3 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstallPage.cpp
  13. 1 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstallPage.h
  14. 1 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstalledPage.cpp
  15. 1 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstalledPage.h
  16. 1 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/KeyCore.cpp
  17. 5 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/KeyCore.h
  18. 2 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/PDFReaderPro_Insrtaller.vcxproj
  19. 37 31
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/PDFReaderPro_Insrtaller.vcxproj.filters
  20. 1 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndBanner.cpp
  21. 7 1
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndInstall.cpp
  22. 39 5
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndInstalling.cpp
  23. 4 0
      PDFReaderPro_Installer/PDFReaderPro_Insrtaller/main.cpp

+ 3 - 3
PDFReaderPro_Installer/Bin/XMLFile.xml

@@ -39,7 +39,7 @@
 			<HorizontalLayout visible="true" padding="40,0,0,0" width="680" bkcolor="0xFFEAECF2" height="1" />
 			<HorizontalLayout padding="40,10,0,0" width="760" autocalcheight="true">
 				<Label name="InstallationfolderTitle" font="0" height="30" autocalcwidth="true" padding="0,0,8,0" text="Installation folder" textcolor="0xFF000000" />
-				<Edit name="EdFilepath" readonly="true" font="0" textpadding="4,0,4,0" height="32" bordercolor="0xFFDFDFDF" bordersize="1,1,1,1" />
+				<RichEdit name="EdFilepath" autohscroll="true" readonly="true" text="1111222222222222222222222211122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" font="0" textpadding="4,4,4,0" height="32" bordercolor="0xFFDFDFDF" bordersize="1,1,1,1" />
 				<HorizontalLayout visible="false" width="32" height="32" bordercolor="0xFFDFDFDF" bordersize="0,1,1,1">
 					<Button name="BtnIconSelectFolder" padding="10,8,0,0" width="16" height="16" bkimage="arrow.png" hotforeimage="file='arrow.png' source='0,0,30,20'" maxheight="16" />
 				</HorizontalLayout>
@@ -62,14 +62,14 @@
 				<Control padding="350,120,0,0" height="80" width="80" minwidth="80" minheight="80" bkimage="Logo.png" />
 				<Label font="1" padding="290,20,0,0" height="30" width="760" text="PDF Reader Pro" textcolor="0xFFFFFFFF" />
 			</VerticalLayout>
-			<HorizontalLayout width="760" height="64" padding="0,32,0,0">
+			<HorizontalLayout width="760" height="64" padding="0,45,0,0">
 				<Container />
 				<Button name="BtnOpenApp" font="0" text="Open app" width="300" height="64" textcolor="0xFFFFFFFF" bkcolor="0xff273C62" hotbkcolor="0xff31538D" pushedbkcolor="0xff1B2944" />
 				<Container />
 			</HorizontalLayout>
 			<HorizontalLayout padding="10,32,10,0" width="760" visible="true">
 				<HorizontalLayout />
-				<Text name="LbInstalledPath" font="0" width="600" padding="0,0,0,0" text="C:\Users\Public\Documents\Wonder" textcolor="0xFF000000" />
+				<RichEdit name="LbInstalledPath" readonly="true" font="0" width="600" align="center" text="C:\\" />
 				<HorizontalLayout />
 			</HorizontalLayout>
 		</VerticalLayout>

+ 3 - 2
PDFReaderPro_Installer/Bin/msg.xml

@@ -8,13 +8,14 @@
 			<Button name="closebtn" hotbkcolor="0xFFFF0000" pushedbkcolor="0xFFFF5757" normalimage="close.png" hotimage="close.png" pushedimage="close.png" pushedbkcolor="0xFFFF0000" height="32" width="32" hotbkcolor="0xFFFF5757" />
 		</HorizontalLayout>
 		<HorizontalLayout inset="20,10,20,10">
-			<Control bkimage="question.png" width="32" height="32" padding="28,48,16,0" />
+			<Control name="questionIcon" bkimage="question.png" width="32" height="32" padding="28,48,16,0" />
+			<Control name="warningIcon" bkimage="warning.png" visible="false" width="32" height="32" padding="28,48,16,0" />
 			<Text name="MessageText" text="hello" textcolor="#FF000000" padding="0,55,0,0" font="1" />
 		</HorizontalLayout>
 		<HorizontalLayout height="60" inset="10,10,10,10">
 			<Control />
 			<Button name="confirm_btn" width="112" height="32" text="OK" bordersize="2" hotbkcolor="#FFE1EAFA" pushedbkcolor="#FFC7D8F5" bkcolor="#FFFFFFFF" hotbordercolor="#FFE1EAFA" pushedbordercolor="#FFC7D8F5" bordercolor="0xFFECECEC" />
-			<Control width="20" />
+			<Control name="paddControl" width="20" />
 			<Button name="cancel_btn" width="112" height="32" text="Cancle" textcolor="0xFFFFFF" bkcolor="#FF273C62" hotbkcolor="#FF31538D" pushedbkcolor="#FF1B2944" />
 			<Control width="30" />
 		</HorizontalLayout>

TEMPAT SAMPAH
PDFReaderPro_Installer/Bin/warning.png


+ 65 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CCmd.cpp

@@ -25,7 +25,6 @@ BOOL CCmd::Installcmd()
 	cmd = L"/k " + cdDisk + L"cd \"" + AppCore::smPath_Install + L"\"" + L" & start/wait " + AppCore::smName_InstallPackage + L" APPDIR=\"" + AppCore::smPath_Install + L"\" /qb /qn /norestart";
 
 	WriteInIniFile("Install cmd", cmd);
-
 	TCHAR* tc = (TCHAR*)(&cmd[0]);
 	return Executecmd(tc);
 }
@@ -145,3 +144,68 @@ BOOL CCmd::Executecmd(TCHAR pszCmdLine[])
 ////C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
 //	/*Start - Process - FilePath C : \Users\kdan\Desktop\Demo\PDFReaderPro.exe / qn*/
 //	return true;
+
+string CCmd::GetVBAContent()
+{
+
+	std::wstring bat = L"";
+	std::wstring echo = L"ECHO.";
+	bat = L"@echo off\u79c1" +
+		echo + L"\u79c1" +
+		L"cd " + AppCore::smPath_Install.substr(0, 1) + L":" + L"%~dp0" + L"\u79c1" +
+		echo + L"\u79c1" +
+		echo + L"\u79c1" +
+		L"start/wait " + AppCore::smName_InstallPackage + L" APPDIR=%cd% /qb /qn" + L"\u79c1" +
+		echo + L"\u79c1" +
+		L"EXIT";
+
+	LPCWSTR sss = _T("C:\\Program Files\\PDF Technologies, Inc\\PDF Reader Pro\\install.bat");
+
+	wchar_t* rootptr = _wcsdup(AppCore::smPath_Install.substr(0, 1).c_str());
+	auto rootch = AppCore::GetWideCharToMultiByte(rootptr);
+
+	wchar_t* ptrInstallPackage = _wcsdup(AppCore::smName_InstallPackage.substr(0, 1).c_str());
+	auto InstallPackagech = AppCore::GetWideCharToMultiByte(ptrInstallPackage);
+
+	std::string cmdd = "";
+	std::string echoc = "ECHO.";
+	cmdd = "@echo off\n" +
+		echoc + "\n" +
+		"cd " + rootch + ":" + "%~dp0" + "\n" +
+		echoc + "\n" +
+		echoc + "\n" +
+		"start/wait " + InstallPackagech + " APPDIR=%cd% /qb /qn" + "\n" +
+		echoc + "\n" +
+		"EXIT";
+	char* chBuffer = &cmdd[0];
+
+	HANDLE hDevice = CreateFile(sss, GENERIC_READ | GENERIC_WRITE, 0, 0,
+		OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
+
+	if (hDevice == INVALID_HANDLE_VALUE)
+	{
+		DWORD errorCode = GetLastError();
+		return 0;
+	}
+	DWORD dwSize = GetFileSize(hDevice, NULL);
+	//char* chBuffer = d2;
+	DWORD dwWriteSize = 0;
+	BOOL bRet = WriteFile(hDevice, chBuffer, cmdd.length(), &dwWriteSize, NULL);
+	if (bRet)
+	{
+
+	}
+	FlushFileBuffers(hDevice);   //将缓冲区数据写入磁盘
+
+	LONG IDistance = 0;
+	DWORD dwPtr = SetFilePointer(hDevice, IDistance, NULL, FILE_BEGIN);  //调整文件指针到文件开头
+	DWORD dwReadSize = 0;
+	bRet = ReadFile(hDevice, chBuffer, 10, &dwReadSize, NULL);
+	if (bRet)
+	{
+		printf("chbuffer is %s /n", chBuffer);
+	}
+	CloseHandle(hDevice);
+
+
+}

+ 1 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CCmd.h

@@ -20,5 +20,6 @@ public:
 	 BOOL Executecmd(TCHAR pszCmdLine[]);
 	 //²âÊÔ´úÂ룺ʼþÈÕÖ¾
 	 void WriteInIniFile(string contentType, wstring cmdContent);
+	 string GetVBAContent();
 };
 

+ 13 - 3
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CFrameWnd.cpp

@@ -331,12 +331,11 @@ LRESULT CFrameWnd::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam,
 	/*case WM_DPICHANGED:
 		lRes = OnDPIChanged(uMsg, wParam, lParam, bHandled); 
 		break;*/
-
     case WM_TIMER:  
 		lRes = OnTimer(uMsg, wParam, lParam, bHandled);
 		break;
 	case WM_KEYDOWN:
-		//lRes = OnKeyDown(uMsg, wParam, lParam, bHandled);
+		lRes = OnKeyDown(uMsg, wParam, lParam, bHandled);
 	default:
 		break;
 	}
@@ -359,8 +358,19 @@ LRESULT CFrameWnd::OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan
 		{
 			if (m_InstallationPage->EdFilepath->IsFocused())
 			{
-			//	m_InstallationPage->EdFilepath->SetReadOnly(false);
+				m_InstallationPage->EdFilepath->SetSelAll();
+			}
+		}
+	}
 
+	case _T('C'):
+	{
+		if (GetKeyState(VK_CONTROL) < 0)
+		{
+			if (m_InstallationPage->EdFilepath->IsFocused() &&
+				m_InstallationPage->EdFilepath->GetSelText() == m_InstallationPage->EdFilepath->GetText())
+			{
+				m_InstallationPage->EdFilepath->Copy();
 			}
 		}
 	}

+ 1 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CFrameWnd.h

@@ -119,6 +119,7 @@ public:
 #pragma region 安装主页
 public:
 	bool m_isCanInstall = false;//有没有满足条件安装
+	
 private:
 	InstallationPage* m_InstallationPage;
 	bool ischeckCustom = false;

+ 7 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CLanguage.cpp

@@ -124,6 +124,13 @@ std::wstring CLanguage::GetContent(TextType textType)
             L"程式已安裝,是否稍後啟動?");
         break;
 
+    case TextType::MSG_DiskNoSpace:
+        content = LoadLanguage(
+            L"Available space is less than 1GB, please change installation folder.",
+            L"当前磁盘剩余空间不足1G,请修改安装路径",
+            L"當前磁碟可用空間不足1G,請變更安裝路徑。");
+        break;
+
     case TextType::MSG_BtnCancel:
         content = LoadLanguage(L"Cancel", L"取消", L"取消");
         break;

+ 2 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CLanguage.h

@@ -55,6 +55,8 @@ enum class TextType
 
 	MSG_InstalledIsExitApp,
 
+	MSG_DiskNoSpace,
+
 	MSG_BtnCancel,
 	MSG_BtnOK,
 	MSG_BtnYes,

+ 19 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CMsgWnd.cpp

@@ -27,8 +27,26 @@ void CMsgWnd::SetMsg(LPCTSTR lpstrMsg)
 	if (pControl) pControl->SetText(lpstrMsg);
 }
 
-void CMsgWnd::SetConfirmBtn(LPCTSTR lpstrConfirmBtn)
+void CMsgWnd::SetConfirmBtn(LPCTSTR lpstrConfirmBtn,bool isOnlyConfirmBtn)
 {
+
+	if (isOnlyConfirmBtn)
+	{
+		CControlUI* confirm_btn = static_cast<CControlUI*>(m_pm.FindControl(_T("confirm_btn")));
+		if (confirm_btn) confirm_btn->SetVisible(false);
+
+		CControlUI* paddControl = static_cast<CControlUI*>(m_pm.FindControl(_T("paddControl")));
+		if (paddControl) paddControl->SetVisible(false);
+
+		CControlUI* questionIcon = static_cast<CControlUI*>(m_pm.FindControl(_T("questionIcon")));
+		if (questionIcon) questionIcon->SetVisible(false);
+
+		CControlUI* warningIcon = static_cast<CControlUI*>(m_pm.FindControl(_T("warningIcon")));
+		if (warningIcon) warningIcon->SetVisible(true);
+
+		return;
+	}
+
 	if (lstrlen(lpstrConfirmBtn) <= 0) return;
 
 	CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(_T("confirm_btn")));

+ 13 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/CMsgWnd.h

@@ -17,6 +17,18 @@ public:
 		return pWnd->ShowModal();
 	}
 
+	static int MessageBox(HWND hParent, LPCTSTR lpstrTitle, LPCTSTR lpstrMsg, LPCTSTR lpstrConfirmBtn)
+	{
+		CMsgWnd* pWnd = new CMsgWnd();
+		pWnd->Create(hParent, _T("msgwnd"), WS_POPUP | WS_CLIPCHILDREN, WS_EX_TOOLWINDOW);
+		pWnd->CenterWindow();
+		pWnd->SetTitle(lpstrTitle);
+		pWnd->SetMsg(lpstrMsg);
+		pWnd->SetConfirmBtn(L"",true);
+		pWnd->SetCancelBtn(lpstrConfirmBtn);
+		return pWnd->ShowModal();
+	}
+
 	static void ShowMessageBox(HWND hParent, LPCTSTR lpstrTitle, LPCTSTR lpstrMsg, LPCTSTR lpstrConfirmBtn, LPCTSTR lpstrCancelBtn)
 	{
 		CMsgWnd* pWnd = new CMsgWnd();
@@ -35,7 +47,7 @@ public:
 
 	void SetMsg(LPCTSTR lpstrMsg);
 	void SetTitle(LPCTSTR lpstrTitle);
-	void SetConfirmBtn(LPCTSTR lpstrConfirmBtn);
+	void SetConfirmBtn(LPCTSTR lpstrConfirmBtn, bool isOnlyConfirmBtn = false);
 	void SetCancelBtn(LPCTSTR lpstrCancelBtn);
 
 public:

+ 3 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstallPage.cpp

@@ -33,7 +33,9 @@ void InstallationPage::InitControls()
 
 	TextShowContentLink = static_cast<CTextUI*>(m_pm->FindControl(UI_TextShowContentLink));//因无法修改超链颜色,所以暂时停用
 	CheckInstallSetting = static_cast<CCheckBoxUI*>(m_pm->FindControl(UI_CheckInstallSetting));
-	EdFilepath = static_cast<CEditUI*>(m_pm->FindControl(UI_EdFilepath));
+	EdFilepath = static_cast<CRichEditUI*>(m_pm->FindControl(UI_EdFilepath));
+	EdFilepath->SetContextMenuUsed(true);
+
 	Lbicon = static_cast<CButtonUI*>(m_pm->FindControl(UI_Lbicon));
 
 	BtnClose = static_cast<CButtonUI*>(m_pm->FindControl(UI_BtnClose));

+ 1 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstallPage.h

@@ -52,7 +52,7 @@ public:
 
 	CTextUI* TextShowContentLink;
 	CCheckBoxUI* CheckInstallSetting;
-	CEditUI* EdFilepath;
+	CRichEditUI* EdFilepath;
 
 	CProgressUI* InstallingProgress;
 	CTabLayoutUI* pTabSwitch;

+ 1 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstalledPage.cpp

@@ -18,7 +18,7 @@ InstalledPage::~InstalledPage()
 void InstalledPage::InitControls()
 {
 	LayoutInstalled = static_cast<CVerticalLayoutUI*>(m_pm->FindControl(UI_LayoutInstalled));
-	LbInstalledPath = static_cast<CTextUI*>(m_pm->FindControl(UI_LbInstalledPath));
+	LbInstalledPath = static_cast<CRichEditUI*>(m_pm->FindControl(UI_LbInstalledPath));
 	BtnOpenApp = static_cast<CButtonUI*>(m_pm->FindControl(UI_BtnOpenApp));
 	
 }

+ 1 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/InstalledPage.h

@@ -19,7 +19,7 @@ private:
 	CPaintManagerUI* m_pm;	
 public:
 	CVerticalLayoutUI* LayoutInstalled;
-	CTextUI* LbInstalledPath;
+	CRichEditUI* LbInstalledPath;
 	CLabelUI* InstallationfolderTitle;
 	CButtonUI* BtnOpenApp;
 	CLabelUI* Lbicon;

+ 1 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/KeyCore.cpp

@@ -0,0 +1 @@
+#include "KeyCore.h"

+ 5 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/KeyCore.h

@@ -0,0 +1,5 @@
+#pragma once
+class KeyCore
+{
+};
+

+ 2 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/PDFReaderPro_Insrtaller.vcxproj

@@ -172,6 +172,7 @@
     <ClInclude Include="InstallPage.h" />
     <ClInclude Include="InstalledPage.h" />
     <ClInclude Include="InstallingPage.h" />
+    <ClInclude Include="KeyCore.h" />
     <ClInclude Include="resource.h" />
     <ClInclude Include="stdafx.h" />
     <ClInclude Include="tinyxml\tinystr.h" />
@@ -190,6 +191,7 @@
     <ClCompile Include="CSystemInfo.cpp" />
     <ClCompile Include="CAdsBanner.cpp" />
     <ClCompile Include="InstallPage.cpp" />
+    <ClCompile Include="KeyCore.cpp" />
     <ClCompile Include="tinyxml\tinystr.cpp" />
     <ClCompile Include="tinyxml\tinyxml.cpp" />
     <ClCompile Include="tinyxml\tinyxmlerror.cpp" />

+ 37 - 31
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/PDFReaderPro_Insrtaller.vcxproj.filters

@@ -31,18 +31,6 @@
     <Filter Include="头文件\strings">
       <UniqueIdentifier>{8717e26d-dab7-4343-aef7-843926af5d9f}</UniqueIdentifier>
     </Filter>
-    <Filter Include="源文件\json">
-      <UniqueIdentifier>{7dc9b2f1-a10d-44ab-96ad-34efcd6651f2}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="tinyxml">
-      <UniqueIdentifier>{cbf7a2c1-33aa-4882-8730-5722cef59135}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="头文件\Core\LibraryOrSystem">
-      <UniqueIdentifier>{a1465ee9-d6bb-4e0d-be23-5beb1d874f06}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="源文件\Core\LibraryOrSystem">
-      <UniqueIdentifier>{4979cdb4-80a7-40d3-937e-49aeab513da9}</UniqueIdentifier>
-    </Filter>
     <Filter Include="源文件\Layout\UI">
       <UniqueIdentifier>{19eee284-558a-49b2-baa3-c42c78b5aeb7}</UniqueIdentifier>
     </Filter>
@@ -55,6 +43,18 @@
     <Filter Include="头文件\Layout\UX">
       <UniqueIdentifier>{1ab2e973-0935-440f-a383-1707d3448fb7}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Library">
+      <UniqueIdentifier>{c7d5a308-6146-4c17-923e-03fbd3fb4d67}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Library\tinyxml">
+      <UniqueIdentifier>{cbf7a2c1-33aa-4882-8730-5722cef59135}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Library\json">
+      <UniqueIdentifier>{7dc9b2f1-a10d-44ab-96ad-34efcd6651f2}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Library\LibraryOrSystem">
+      <UniqueIdentifier>{a1465ee9-d6bb-4e0d-be23-5beb1d874f06}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="CAccessRegedit.h">
@@ -85,22 +85,22 @@
       <Filter>头文件\strings</Filter>
     </ClInclude>
     <ClInclude Include="tinyxml\tinystr.h">
-      <Filter>tinyxml</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClInclude>
     <ClInclude Include="tinyxml\tinyxml.h">
-      <Filter>tinyxml</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClInclude>
     <ClInclude Include="XmlNode.h">
-      <Filter>头文件\Core\LibraryOrSystem</Filter>
+      <Filter>Library\LibraryOrSystem</Filter>
     </ClInclude>
     <ClInclude Include="stdafx.h">
-      <Filter>头文件\Core\LibraryOrSystem</Filter>
+      <Filter>Library\LibraryOrSystem</Filter>
     </ClInclude>
     <ClInclude Include="resource.h">
-      <Filter>头文件\Core\LibraryOrSystem</Filter>
+      <Filter>Library\LibraryOrSystem</Filter>
     </ClInclude>
     <ClInclude Include="duilib.h">
-      <Filter>头文件\Core\LibraryOrSystem</Filter>
+      <Filter>Library\LibraryOrSystem</Filter>
     </ClInclude>
     <ClInclude Include="InstalledPage.h">
       <Filter>头文件\Layout\UI</Filter>
@@ -117,6 +117,9 @@
     <ClInclude Include="CMsgWnd.h">
       <Filter>头文件\Layout\UX</Filter>
     </ClInclude>
+    <ClInclude Include="KeyCore.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="CAccessRegedit.cpp">
@@ -141,13 +144,13 @@
       <Filter>源文件\strings</Filter>
     </ClCompile>
     <ClCompile Include="src\lib_json\json_reader.cpp">
-      <Filter>源文件\json</Filter>
+      <Filter>Library\json</Filter>
     </ClCompile>
     <ClCompile Include="src\lib_json\json_value.cpp">
-      <Filter>源文件\json</Filter>
+      <Filter>Library\json</Filter>
     </ClCompile>
     <ClCompile Include="src\lib_json\json_writer.cpp">
-      <Filter>源文件\json</Filter>
+      <Filter>Library\json</Filter>
     </ClCompile>
     <ClCompile Include="CSystemInfo.cpp">
       <Filter>源文件\Core</Filter>
@@ -156,22 +159,16 @@
       <Filter>源文件\Core</Filter>
     </ClCompile>
     <ClCompile Include="tinyxml\tinystr.cpp">
-      <Filter>tinyxml</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClCompile>
     <ClCompile Include="tinyxml\tinyxml.cpp">
-      <Filter>tinyxml</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClCompile>
     <ClCompile Include="tinyxml\tinyxmlerror.cpp">
-      <Filter>tinyxml</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClCompile>
     <ClCompile Include="tinyxml\tinyxmlparser.cpp">
-      <Filter>tinyxml</Filter>
-    </ClCompile>
-    <ClCompile Include="XmlNode.cpp">
-      <Filter>源文件\Core\LibraryOrSystem</Filter>
-    </ClCompile>
-    <ClCompile Include="stdafx.cpp">
-      <Filter>源文件\Core\LibraryOrSystem</Filter>
+      <Filter>Library\tinyxml</Filter>
     </ClCompile>
     <ClCompile Include="InstalledPage.cpp">
       <Filter>源文件\Layout\UI</Filter>
@@ -200,6 +197,15 @@
     <ClCompile Include="WndInstalling.cpp">
       <Filter>源文件\Layout\UX</Filter>
     </ClCompile>
+    <ClCompile Include="stdafx.cpp">
+      <Filter>Library\LibraryOrSystem</Filter>
+    </ClCompile>
+    <ClCompile Include="XmlNode.cpp">
+      <Filter>Library\LibraryOrSystem</Filter>
+    </ClCompile>
+    <ClCompile Include="KeyCore.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="PDFReaderPro_Insrtaller.rc">

+ 1 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndBanner.cpp

@@ -114,6 +114,7 @@ void CFrameWnd::SetTimerBannerSwitch()
 
 void CFrameWnd::SetBannerOnTimer()
 {
+	KillTimer(m_hWnd, TIMER_WAITDOWNLOAD_ID);
 	SetTimer(m_hWnd, TIMER_WAITDOWNLOAD_ID, TIMER_WAITDOWNLOAD_TIMES, NULL);
 }
 

+ 7 - 1
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndInstall.cpp

@@ -183,7 +183,11 @@ void CFrameWnd::Install_Click()
 		bool isHaveSpace = IsSpaceDisk();
 		if (isHaveSpace == false)
 		{
-			MessageBox(this->m_hWnd, L"当前磁盘剩余空间不足1GB,请修改安装路径", L"", MB_ICONWARNING);
+			CMsgWnd::MessageBox(
+				m_hWnd, _T(""), CLanguage::GetText(TextType::MSG_DiskNoSpace).c_str(),
+				CLanguage::GetText(TextType::MSG_BtnOK).c_str()
+			);
+
 			return;
 		}
 
@@ -194,6 +198,8 @@ void CFrameWnd::Install_Click()
 		{
 
 			SelectLayout(LayoutType::Installing);
+			KillTimer(m_hWnd, TIMER_BANNER_ID);
+			KillTimer(m_hWnd, TIMER_INSTALL_ID);
 
 			SetTimer(m_hWnd, TIMER_BANNER_ID, TIMER_BANNER_TIMES, NULL);
 			SetTimer(m_hWnd, TIMER_INSTALL_ID, TIMER_INSTALL_TIMES, NULL);

+ 39 - 5
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/WndInstalling.cpp

@@ -39,7 +39,7 @@ void CFrameWnd::Thread_Installing(ThreadData threadData)
 
 	if (isDownloadSuccess == false)
 	{
-		CFrameWnd::m_SilenceInstallingType = SilenceInstallingType::DownLoadFailed;
+		CFrameWnd::m_SilenceInstallingType = SilenceInstallingType::Installing;
 		threadData.pFrame->m_InstallingPage->ConNoNetWork->SetVisible(true);
 		threadData.pFrame->m_InstallingPage->pTabSwitch->SetVisible(false);
 		threadData.pFrame->m_InstallingPage->installNotWork->SetText(CLanguage::GetText(TextType::Text_NoNetwork).c_str());
@@ -54,10 +54,40 @@ void CFrameWnd::Thread_Installing(ThreadData threadData)
 
 		if (cmd.Installcmd())
 		{
-			threadData.pFrame->SelectLayout(LayoutType::Installed);
-			std::wstring path = L"";
-			path = CLanguage::GetText(TextType::Btn_GoToFilesPath).c_str() + AppCore::smPath_Install;
-			threadData.pFrame->m_InstalledPage->LbInstalledPath->SetText(path.c_str());
+			//如果安装失败,有可能是安装路径太长的问题,此处指令并不会返回失败的值;所以需要做个判断,是否需要返回安装前的页面
+			wstring exe = AppCore::smPath_Install + L"\\" + AppCore::smName_Application;
+			char* ch = AppCore::GetWstringToCharPtr(exe);
+			
+			if (AppCore::IsExistFile(ch) == false && exe.length() > 190)
+			{
+				KillTimer(threadData.pFrame->m_hWnd, TIMER_SILENTINSTALL_ID);
+				KillTimer(threadData.pFrame->m_hWnd, TIMER_BANNER_ID);
+				CMsgWnd::MessageBox(
+					threadData.pFrame->m_hWnd, _T(""), L"安装失败,原因是系统不支持过长的安装路径。系统已回退到安装前的状态;请重新修改安装路径。",
+					CLanguage::GetText(TextType::MSG_BtnOK).c_str()
+				);
+				DownloadProgress::Currentpercentage = 0;
+				threadData.pFrame->SelectLayout(LayoutType::Home);
+				return;//直接返回是为了避免IsExistFile判断无效;
+			}
+			else if (AppCore::IsExistFile(ch) == false)
+			{
+				wstring installError = L"因特殊操作,安装失败!请找到该安装路径下的\"" + AppCore::smName_Application + L"\"安装包进行运行安装";
+				CMsgWnd::MessageBox(
+					threadData.pFrame->m_hWnd, _T(""), installError.c_str(),
+					L"打开安装路径"
+				);
+
+				wstring folderPath = L"start " + AppCore::smPath_Install;
+				char* ch = AppCore::GetWstringToCharPtr(folderPath);
+				system(ch);
+
+			}
+				threadData.pFrame->SelectLayout(LayoutType::Installed);
+				std::wstring path = L"";
+				path = CLanguage::GetText(TextType::Btn_GoToFilesPath).c_str() + AppCore::smPath_Install;
+				threadData.pFrame->m_InstalledPage->LbInstalledPath->SetText(path.c_str());
+
 		}
 
 		DownloadProgress::Currentpercentage = 0;
@@ -114,6 +144,10 @@ void CFrameWnd::SetTimerInstalling()
 	if (CFrameWnd::m_SilenceInstallingType == SilenceInstallingType::DownLoading)
 	{
 		int dprogress = (int)DownloadProgress::Currentpercentage * 0.7;
+		if (dprogress > 99)
+		{
+			dprogress = 99;
+		}
 		std::wstring val20 = std::to_wstring(dprogress) + L"%";
 		m_InstallingPage->installingValue->SetText(val20.c_str());
 		m_InstallingPage->InstallingProgress->SetValue(dprogress);

+ 4 - 0
PDFReaderPro_Installer/PDFReaderPro_Insrtaller/main.cpp

@@ -22,8 +22,12 @@
 
 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpCmdLine*/, int nCmdShow)
 {
+
 	//获取缓存路径
 	AppCore::InitAppTempPath();
+
+	string ss = "C:\\Users\\kdan\\Desktop\\1111111111111111111111111111111111112222222222222222222222222222222222\\22222222222222222222222222222222222222222222222222222222222\\3333333333333333333333333333333333333332222222222222222222222233333334567891011121\\PDFReaderPro_V2.0.0";
+	int len = ss.length();
 	//判断是否存在同一个exe;
 	if (CSystemInfo::IsHanvedCurrentWindow() == true) return 0;