diff --git a/PdfScribe.sln b/PdfScribe.sln index 553b26b..2034de9 100644 --- a/PdfScribe.sln +++ b/PdfScribe.sln @@ -1,33 +1,41 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfScribe", "PdfScribe\PdfScribe.csproj", "{1EAD8E9A-A123-4C37-B31E-AEE1354DF003}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfScribeUnitTests", "PdfScribeUnitTests\PdfScribeUnitTests.csproj", "{D387573C-D122-461C-B525-1545DBDB4FBA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfScribeCore", "PdfScribeCore\PdfScribeCore.csproj", "{1EAD8E9A-A123-4C37-B31E-AEE1354DF003}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x64.ActiveCfg = Debug|Any CPU - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x64.Build.0 = Debug|Any CPU - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x86.ActiveCfg = Debug|x86 - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x86.Build.0 = Debug|x86 - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x64.ActiveCfg = Release|x64 - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x64.Build.0 = Release|x64 - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x86.ActiveCfg = Release|x86 - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x86.Build.0 = Release|x86 + {D387573C-D122-461C-B525-1545DBDB4FBA}.Debug|Any CPU.ActiveCfg = Debug|x64 {D387573C-D122-461C-B525-1545DBDB4FBA}.Debug|x64.ActiveCfg = Debug|x86 {D387573C-D122-461C-B525-1545DBDB4FBA}.Debug|x64.Build.0 = Debug|x86 {D387573C-D122-461C-B525-1545DBDB4FBA}.Debug|x86.ActiveCfg = Debug|x86 {D387573C-D122-461C-B525-1545DBDB4FBA}.Debug|x86.Build.0 = Debug|x86 + {D387573C-D122-461C-B525-1545DBDB4FBA}.Release|Any CPU.ActiveCfg = Release|x64 {D387573C-D122-461C-B525-1545DBDB4FBA}.Release|x64.ActiveCfg = Release|x86 {D387573C-D122-461C-B525-1545DBDB4FBA}.Release|x86.ActiveCfg = Release|x86 {D387573C-D122-461C-B525-1545DBDB4FBA}.Release|x86.Build.0 = Release|x86 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x64.ActiveCfg = Debug|x64 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x64.Build.0 = Debug|x64 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x86.ActiveCfg = Debug|x86 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Debug|x86.Build.0 = Debug|x86 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|Any CPU.Build.0 = Release|Any CPU + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x64.ActiveCfg = Release|x64 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x64.Build.0 = Release|x64 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x86.ActiveCfg = Release|x86 + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PdfScribe/NativeMethods.cs b/PdfScribeCore/NativeMethods.cs similarity index 99% rename from PdfScribe/NativeMethods.cs rename to PdfScribeCore/NativeMethods.cs index 40c5154..1df77f6 100644 --- a/PdfScribe/NativeMethods.cs +++ b/PdfScribeCore/NativeMethods.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Runtime.InteropServices; -namespace PdfScribe +namespace PdfScribeCore { diff --git a/PdfScribe/PdfScribe.csproj b/PdfScribeCore/PdfScribeCore.csproj similarity index 97% rename from PdfScribe/PdfScribe.csproj rename to PdfScribeCore/PdfScribeCore.csproj index 0483a1d..26edd5f 100644 --- a/PdfScribe/PdfScribe.csproj +++ b/PdfScribeCore/PdfScribeCore.csproj @@ -8,8 +8,8 @@ {1EAD8E9A-A123-4C37-B31E-AEE1354DF003} Library Properties - PdfScribe - PdfScribe + PdfScribeCore + PdfScribeCore v4.0 Client 512 diff --git a/PdfScribe/PdfScribeInstaller.cs b/PdfScribeCore/PdfScribeInstaller.cs similarity index 89% rename from PdfScribe/PdfScribeInstaller.cs rename to PdfScribeCore/PdfScribeInstaller.cs index 865ce19..7e65c9b 100644 --- a/PdfScribe/PdfScribeInstaller.cs +++ b/PdfScribeCore/PdfScribeInstaller.cs @@ -5,8 +5,11 @@ using System.IO; using System.Runtime.InteropServices; using System.Linq; using System.Text; +using System.Security; -namespace PdfScribe +using Microsoft.Win32; + +namespace PdfScribeCore { public class PdfScribeInstaller { @@ -328,7 +331,8 @@ namespace PdfScribe { if (InstallPrinterDriver(driverDirectory, dependentFilesToCopy)) { - printerInstalled = AddPdfScribePrinter(); + if (AddPdfScribePrinter()) + printerInstalled = ConfigurePdfScribePort(); } } } @@ -459,12 +463,12 @@ namespace PdfScribe public bool RemovePDFScribePrinterDriver() { - bool printerRemoved = NativeMethods.DeletePrinterDriverEx(null, ENVIRONMENT_64, DRIVERNAME, DPD_DELETE_UNUSED_FILES, 3); - if (!printerRemoved) + bool driverRemoved = NativeMethods.DeletePrinterDriverEx(null, ENVIRONMENT_64, DRIVERNAME, DPD_DELETE_UNUSED_FILES, 3); + if (!driverRemoved) { throw new Win32Exception(Marshal.GetLastWin32Error(), "Could not remove PDF Scribe printer driver"); } - return printerRemoved; + return driverRemoved; } @@ -526,5 +530,48 @@ namespace PdfScribe #endregion + #region Configuration and Registry changes + +#if DEBUG + public bool ConfigurePdfScribePort_Test() + { + return ConfigurePdfScribePort(); + } +#endif + + private bool ConfigurePdfScribePort() + { + bool registryChangesMade = false; + // Add all the registry info + // for the port and monitor + RegistryKey portConfiguration = Registry.LocalMachine.CreateSubKey("SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors\\" + + PORTMONITOR + + "\\Ports\\" + PORTNAME); + try + { + portConfiguration.SetValue("Description", "PDF Scribe", RegistryValueKind.String); + portConfiguration.SetValue("Command", "", RegistryValueKind.String); + portConfiguration.SetValue("Arguments", "", RegistryValueKind.String); + portConfiguration.SetValue("Printer", "", RegistryValueKind.String); + portConfiguration.SetValue("Output", 0, RegistryValueKind.DWord); + portConfiguration.SetValue("ShowWindow", 0, RegistryValueKind.DWord); + portConfiguration.SetValue("RunUser", 1, RegistryValueKind.DWord); + portConfiguration.SetValue("Delay", 300, RegistryValueKind.DWord); + portConfiguration.SetValue("LogFileUse", 0, RegistryValueKind.DWord); + portConfiguration.SetValue("LogFileName", "", RegistryValueKind.String); + portConfiguration.SetValue("LogFileDebug", 0, RegistryValueKind.DWord); + portConfiguration.SetValue("PrintError", 0, RegistryValueKind.DWord); + registryChangesMade = true; + } + + catch (UnauthorizedAccessException) + { } + catch (SecurityException) + { } + + return registryChangesMade; + } + #endregion + } } diff --git a/PdfScribe/Program.cs b/PdfScribeCore/Program.cs similarity index 100% rename from PdfScribe/Program.cs rename to PdfScribeCore/Program.cs diff --git a/PdfScribe/Properties/AssemblyInfo.cs b/PdfScribeCore/Properties/AssemblyInfo.cs similarity index 100% rename from PdfScribe/Properties/AssemblyInfo.cs rename to PdfScribeCore/Properties/AssemblyInfo.cs diff --git a/PdfScribe/app.manifest b/PdfScribeCore/app.manifest similarity index 100% rename from PdfScribe/app.manifest rename to PdfScribeCore/app.manifest diff --git a/PdfScribeUnitTests/PdfScribeUnitTests.csproj b/PdfScribeUnitTests/PdfScribeUnitTests.csproj index 0cb4a3c..b6db4b2 100644 --- a/PdfScribeUnitTests/PdfScribeUnitTests.csproj +++ b/PdfScribeUnitTests/PdfScribeUnitTests.csproj @@ -103,12 +103,6 @@ - - - {1EAD8E9A-A123-4C37-B31E-AEE1354DF003} - PdfScribe - - @@ -135,6 +129,12 @@ true + + + {1EAD8E9A-A123-4C37-B31E-AEE1354DF003} + PdfScribeCore + +