/* ----------------------------------------------------------------- */ /// /// LoadUserSetting /// /// <summary> /// レジストリからユーザ設定をロードします。 /// </summary> /// /* ----------------------------------------------------------------- */ private static void LoadUserSetting(UserSetting setting, CubePdf.Settings.CommandLine cmdline) { if (cmdline.Options.ContainsKey("Em")) { setting.Load(cmdline.Options["UserName"]); setting.EmergencyMode = true; setting.PostProcess = Parameter.PostProcesses.OpenFolder; } else { setting.Load(); } }
/* ----------------------------------------------------------------- */ /// /// SetupUserSetting /// /// <summary> /// プログラムに指定された引数等を用いて、UserSetting オブジェクトを /// 初期化します。 /// </summary> /// /* ----------------------------------------------------------------- */ private static void SetupUserSetting(UserSetting setting, string[] args) { var cmdline = new CubePdf.Settings.CommandLine(args); var docname = cmdline.Options.ContainsKey("DocumentName") ? cmdline.Options["DocumentName"] : ""; bool is_config = false; try { if (docname.Length > 0 && Path.GetExtension(docname) == setting.Extension && File.Exists(docname)) { is_config = true; } } catch (Exception err) { // docname に Windows のファイル名に使用できない記号が含まれる // 場合に例外が送出されるので、その対策。 Trace.TraceError(err.ToString()); is_config = false; } if (is_config) { setting.Load(docname); } else { setting.Load(); var filename = DocumentName.CreateFileName(docname); if (filename != null) { string ext = Parameter.Extension((Parameter.FileTypes)setting.FileType); filename = Path.ChangeExtension(filename, ext); string dir = (setting.OutputPath.Length == 0 || Directory.Exists(setting.OutputPath)) ? setting.OutputPath : Path.GetDirectoryName(setting.OutputPath); setting.OutputPath = dir + '\\' + filename; } } setting.InputPath = cmdline.Options.ContainsKey("InputFile") ? cmdline.Options["InputFile"] : ""; setting.DeleteOnClose = cmdline.Options.ContainsKey("DeleteOnClose"); }
static void Main(string[] args) { var exec = System.Reflection.Assembly.GetEntryAssembly(); var dir = IoEx.Path.GetDirectoryName(exec.Location); var setting = new UserSetting(false); SetupLog(dir + @"\cubepdf.log"); var edition = (IntPtr.Size == 4) ? "x86" : "x64"; CubePdf.Message.Trace(string.Format("CubePDF {0} ({1})", setting.Version, edition)); CubePdf.Message.Trace(Environment.OSVersion.ToString()); CubePdf.Message.Trace(string.Format(".NET Framework {0}", Environment.Version.ToString())); var message = "Arguments"; foreach (var s in args) { message += string.Format("{0}\t{1}", Environment.NewLine, s); } CubePdf.Message.Trace(message); var cmdline = new CubePdf.Settings.CommandLine(args); SetupUserSetting(setting, cmdline); CheckUpdate(setting); if (setting.EmergencyMode) { ExecConvert(setting); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(setting)); } Trace.Close(); }
/* ----------------------------------------------------------------- */ /// /// SetupUserSetting /// /// <summary> /// プログラムに指定された引数等を用いて、UserSetting オブジェクトを /// 初期化します。 /// </summary> /// /* ----------------------------------------------------------------- */ private static void SetupUserSetting(UserSetting setting, CubePdf.Settings.CommandLine cmdline) { var docname = cmdline.Options.ContainsKey("DocumentName") ? cmdline.Options["DocumentName"] : ""; bool is_config = false; try { if (!string.IsNullOrEmpty(docname) && IoEx.Path.GetExtension(docname) == setting.Extension && IoEx.File.Exists(docname)) { is_config = true; } } catch (Exception err) { // docname に Windows のファイル名に使用できない記号が含まれる // 場合に例外が送出されるので、その対策。 CubePdf.Message.Trace(err.ToString()); is_config = false; } if (is_config) { setting.LoadXml(docname); } else { LoadUserSetting(setting, cmdline); var filename = DocumentName.CreateFileName(docname); if (filename != null) { string ext = Parameter.GetExtension((Parameter.FileTypes)setting.FileType); filename = IoEx.Path.ChangeExtension(filename, ext); string dir = ""; if (setting.OutputPath == String.Empty) { dir = setting.LibPath; } else { dir = (IoEx.Directory.Exists(setting.OutputPath)) ? setting.OutputPath : IoEx.Path.GetDirectoryName(setting.OutputPath); } setting.OutputPath = dir + '\\' + filename; CubePdf.Message.Debug(setting.OutputPath); } } setting.UserName = cmdline.Options.ContainsKey("UserName") ? cmdline.Options["UserName"] : ""; setting.InputPath = cmdline.Options.ContainsKey("InputFile") ? cmdline.Options["InputFile"] : ""; setting.DeleteOnClose = cmdline.Options.ContainsKey("DeleteOnClose"); if (IoEx.Directory.Exists(setting.LibPath)) { System.Environment.SetEnvironmentVariable("TEMP", setting.LibPath, EnvironmentVariableTarget.Process); } else { CubePdf.Message.Trace("LibPath Not Found"); } }
static void Main(string[] args) { var exec = System.Reflection.Assembly.GetEntryAssembly(); var dir = IoEx.Path.GetDirectoryName(exec.Location); var setting = new UserSetting(false); SetupLog(dir + @"\cubepdf.log"); var edition = (IntPtr.Size == 4) ? "x86" : "x64"; CubePdf.Message.Trace(string.Format("CubePDF {0} ({1})", setting.Version, edition)); CubePdf.Message.Trace(Environment.OSVersion.ToString()); CubePdf.Message.Trace(string.Format(".NET Framework {0}", Environment.Version.ToString())); var message = "Arguments"; foreach (var s in args) message += string.Format("{0}\t{1}", Environment.NewLine, s); CubePdf.Message.Trace(message); var cmdline = new CubePdf.Settings.CommandLine(args); SetupUserSetting(setting, cmdline); CheckUpdate(setting); if (setting.EmergencyMode) ExecConvert(setting); else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(setting)); } Trace.Close(); }
/* ----------------------------------------------------------------- */ /// /// SetupUserSetting /// /// <summary> /// プログラムに指定された引数等を用いて、UserSetting オブジェクトを /// 初期化します。 /// </summary> /// /* ----------------------------------------------------------------- */ private static void SetupUserSetting(UserSetting setting, string[] args) { var cmdline = new CubePdf.Settings.CommandLine(args); var docname = cmdline.Options.ContainsKey("DocumentName") ? cmdline.Options["DocumentName"] : ""; bool is_config = false; try { if (docname.Length > 0 && Path.GetExtension(docname) == setting.Extension && File.Exists(docname)) is_config = true; } catch (Exception err) { // docname に Windows のファイル名に使用できない記号が含まれる // 場合に例外が送出されるので、その対策。 Trace.TraceError(err.ToString()); is_config = false; } if (is_config) setting.Load(docname); else { setting.Load(); var filename = DocumentName.CreateFileName(docname); if (filename != null) { string ext = Parameter.Extension((Parameter.FileTypes)setting.FileType); filename = Path.ChangeExtension(filename, ext); string dir = (setting.OutputPath.Length == 0 || Directory.Exists(setting.OutputPath)) ? setting.OutputPath : Path.GetDirectoryName(setting.OutputPath); setting.OutputPath = dir + '\\' + filename; } } setting.InputPath = cmdline.Options.ContainsKey("InputFile") ? cmdline.Options["InputFile"] : ""; setting.DeleteOnClose = cmdline.Options.ContainsKey("DeleteOnClose"); }