Chore: Change software year to 2025.
This commit is contained in:
parent
cb13a2fe55
commit
d6afefe01a
@ -1,7 +1,7 @@
|
|||||||
// <copyright file="Application.xaml.cs" company="AAllard">License: http://www.gnu.org/licenses/gpl.html GPL version 3.</copyright>
|
// <copyright file="Application.xaml.cs" company="AAllard">License: http://www.gnu.org/licenses/gpl.html GPL version 3.</copyright>
|
||||||
|
|
||||||
/* File Converter - This program allow you to convert file format to another.
|
/* File Converter - This program allow you to convert file format to another.
|
||||||
Copyright (C) 2024 Adrien Allard
|
Copyright (C) 2025 Adrien Allard
|
||||||
email: adrien.allard.pro@gmail.com
|
email: adrien.allard.pro@gmail.com
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,359 +1,359 @@
|
|||||||
// <copyright file="Helpers.cs" company="AAllard">License: http://www.gnu.org/licenses/gpl.html GPL version 3.</copyright>
|
// <copyright file="Helpers.cs" company="AAllard">License: http://www.gnu.org/licenses/gpl.html GPL version 3.</copyright>
|
||||||
|
|
||||||
namespace FileConverter
|
namespace FileConverter
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
using FileConverter.ConversionJobs;
|
using FileConverter.ConversionJobs;
|
||||||
using FileConverter.Services;
|
using FileConverter.Services;
|
||||||
|
|
||||||
using SharpShell.Helpers;
|
using SharpShell.Helpers;
|
||||||
|
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using CommunityToolkit.Mvvm.DependencyInjection;
|
using CommunityToolkit.Mvvm.DependencyInjection;
|
||||||
|
|
||||||
public static class Helpers
|
public static class Helpers
|
||||||
{
|
{
|
||||||
public static readonly string[] CompatibleInputExtensions = {
|
public static readonly string[] CompatibleInputExtensions = {
|
||||||
"3gp","3gpp","aac","aiff","ape","arw","avi","bik","bmp","cda","cr2","dds","dng","doc","docx",
|
"3gp","3gpp","aac","aiff","ape","arw","avi","bik","bmp","cda","cr2","dds","dng","doc","docx",
|
||||||
"exr","flac","flv","gif","heic","ico","jfif","jpg","jpeg","m4a","m4b","m4v","mkv","mov","mp3","mp4",
|
"exr","flac","flv","gif","heic","ico","jfif","jpg","jpeg","m4a","m4b","m4v","mkv","mov","mp3","mp4",
|
||||||
"mpg","mpeg","nef","odp","ods","odt","oga","ogg","ogv","opus","pdf","png","ppt","pptx","psd",
|
"mpg","mpeg","nef","odp","ods","odt","oga","ogg","ogv","opus","pdf","png","ppt","pptx","psd",
|
||||||
"raf", "rm","svg","tga","tif","tiff", "ts", "vob","wav","webm","webp","wma","wmv","xls","xlsx"
|
"raf", "rm","svg","tga","tif","tiff", "ts", "vob","wav","webm","webp","wma","wmv","xls","xlsx"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static string GetExtensionCategory(string extension)
|
public static string GetExtensionCategory(string extension)
|
||||||
{
|
{
|
||||||
switch (extension)
|
switch (extension)
|
||||||
{
|
{
|
||||||
case "aac":
|
case "aac":
|
||||||
case "aiff":
|
case "aiff":
|
||||||
case "ape":
|
case "ape":
|
||||||
case "cda":
|
case "cda":
|
||||||
case "flac":
|
case "flac":
|
||||||
case "mp3":
|
case "mp3":
|
||||||
case "m4a":
|
case "m4a":
|
||||||
case "m4b":
|
case "m4b":
|
||||||
case "oga":
|
case "oga":
|
||||||
case "ogg":
|
case "ogg":
|
||||||
case "opus":
|
case "opus":
|
||||||
case "wav":
|
case "wav":
|
||||||
case "wma":
|
case "wma":
|
||||||
return InputCategoryNames.Audio;
|
return InputCategoryNames.Audio;
|
||||||
|
|
||||||
case "3gp":
|
case "3gp":
|
||||||
case "3gpp":
|
case "3gpp":
|
||||||
case "avi":
|
case "avi":
|
||||||
case "bik":
|
case "bik":
|
||||||
case "flv":
|
case "flv":
|
||||||
case "m4v":
|
case "m4v":
|
||||||
case "mp4":
|
case "mp4":
|
||||||
case "mpg":
|
case "mpg":
|
||||||
case "mpeg":
|
case "mpeg":
|
||||||
case "mov":
|
case "mov":
|
||||||
case "mkv":
|
case "mkv":
|
||||||
case "ogv":
|
case "ogv":
|
||||||
case "rm":
|
case "rm":
|
||||||
case "ts":
|
case "ts":
|
||||||
case "vob":
|
case "vob":
|
||||||
case "webm":
|
case "webm":
|
||||||
case "wmv":
|
case "wmv":
|
||||||
return InputCategoryNames.Video;
|
return InputCategoryNames.Video;
|
||||||
|
|
||||||
case "arw":
|
case "arw":
|
||||||
case "bmp":
|
case "bmp":
|
||||||
case "cr2":
|
case "cr2":
|
||||||
case "dds":
|
case "dds":
|
||||||
case "dng":
|
case "dng":
|
||||||
case "exr":
|
case "exr":
|
||||||
case "heic":
|
case "heic":
|
||||||
case "ico":
|
case "ico":
|
||||||
case "jfif":
|
case "jfif":
|
||||||
case "jpg":
|
case "jpg":
|
||||||
case "jpeg":
|
case "jpeg":
|
||||||
case "nef":
|
case "nef":
|
||||||
case "png":
|
case "png":
|
||||||
case "psd":
|
case "psd":
|
||||||
case "raf":
|
case "raf":
|
||||||
case "tga":
|
case "tga":
|
||||||
case "tif":
|
case "tif":
|
||||||
case "tiff":
|
case "tiff":
|
||||||
case "svg":
|
case "svg":
|
||||||
case "xcf":
|
case "xcf":
|
||||||
case "webp":
|
case "webp":
|
||||||
return InputCategoryNames.Image;
|
return InputCategoryNames.Image;
|
||||||
|
|
||||||
case "gif":
|
case "gif":
|
||||||
return InputCategoryNames.AnimatedImage;
|
return InputCategoryNames.AnimatedImage;
|
||||||
|
|
||||||
case "pdf":
|
case "pdf":
|
||||||
case "doc":
|
case "doc":
|
||||||
case "docx":
|
case "docx":
|
||||||
case "ppt":
|
case "ppt":
|
||||||
case "pptx":
|
case "pptx":
|
||||||
case "odp":
|
case "odp":
|
||||||
case "ods":
|
case "ods":
|
||||||
case "odt":
|
case "odt":
|
||||||
case "xls":
|
case "xls":
|
||||||
case "xlsx":
|
case "xlsx":
|
||||||
return InputCategoryNames.Document;
|
return InputCategoryNames.Document;
|
||||||
}
|
}
|
||||||
|
|
||||||
return InputCategoryNames.Misc;
|
return InputCategoryNames.Misc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool RegisterShellExtension(string shellExtensionPath)
|
public static bool RegisterShellExtension(string shellExtensionPath)
|
||||||
{
|
{
|
||||||
if (!Application.IsInAdmininstratorPrivileges)
|
if (!Application.IsInAdmininstratorPrivileges)
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError("File Converter needs administrator privileges to register the shell extension.");
|
Diagnostics.Debug.LogError("File Converter needs administrator privileges to register the shell extension.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!File.Exists(shellExtensionPath))
|
if (!File.Exists(shellExtensionPath))
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError($"Shell extension {shellExtensionPath} does not exists.");
|
Diagnostics.Debug.LogError($"Shell extension {shellExtensionPath} does not exists.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Diagnostics.Debug.Log($"Install and register shell extension: {shellExtensionPath}.");
|
Diagnostics.Debug.Log($"Install and register shell extension: {shellExtensionPath}.");
|
||||||
|
|
||||||
var regasm = new RegAsm();
|
var regasm = new RegAsm();
|
||||||
var success = regasm.Register64(shellExtensionPath, true);
|
var success = regasm.Register64(shellExtensionPath, true);
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.Log($"{shellExtensionPath} installed and registered.");
|
Diagnostics.Debug.Log($"{shellExtensionPath} installed and registered.");
|
||||||
Diagnostics.Debug.Log(regasm.StandardOutput);
|
Diagnostics.Debug.Log(regasm.StandardOutput);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError(errorCode: 0x05, $"{shellExtensionPath} failed to register.");
|
Diagnostics.Debug.LogError(errorCode: 0x05, $"{shellExtensionPath} failed to register.");
|
||||||
Diagnostics.Debug.LogError(regasm.StandardError);
|
Diagnostics.Debug.LogError(regasm.StandardError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool UnregisterExtension(string shellExtensionPath)
|
public static bool UnregisterExtension(string shellExtensionPath)
|
||||||
{
|
{
|
||||||
if (!Application.IsInAdmininstratorPrivileges)
|
if (!Application.IsInAdmininstratorPrivileges)
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError("File Converter needs administrator privileges to unregister the shell extension.");
|
Diagnostics.Debug.LogError("File Converter needs administrator privileges to unregister the shell extension.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!File.Exists(shellExtensionPath))
|
if (!File.Exists(shellExtensionPath))
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError($"Shell extension {shellExtensionPath} does not exists.");
|
Diagnostics.Debug.LogError($"Shell extension {shellExtensionPath} does not exists.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Diagnostics.Debug.Log($"Unregister and uninstall shell extension: {shellExtensionPath}.");
|
Diagnostics.Debug.Log($"Unregister and uninstall shell extension: {shellExtensionPath}.");
|
||||||
|
|
||||||
var regasm = new RegAsm();
|
var regasm = new RegAsm();
|
||||||
var success = regasm.Unregister64(shellExtensionPath);
|
var success = regasm.Unregister64(shellExtensionPath);
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.Log($"{shellExtensionPath} uninstalled.");
|
Diagnostics.Debug.Log($"{shellExtensionPath} uninstalled.");
|
||||||
Diagnostics.Debug.Log(regasm.StandardOutput);
|
Diagnostics.Debug.Log(regasm.StandardOutput);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Diagnostics.Debug.LogError(errorCode: 0x05, $"{shellExtensionPath} failed to uninstall.");
|
Diagnostics.Debug.LogError(errorCode: 0x05, $"{shellExtensionPath} failed to uninstall.");
|
||||||
Diagnostics.Debug.LogError(regasm.StandardError);
|
Diagnostics.Debug.LogError(regasm.StandardError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<CultureInfo> GetSupportedCultures()
|
public static IEnumerable<CultureInfo> GetSupportedCultures()
|
||||||
{
|
{
|
||||||
// Get all cultures.
|
// Get all cultures.
|
||||||
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
|
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
|
||||||
|
|
||||||
// Find the location where application installed.
|
// Find the location where application installed.
|
||||||
string exeLocation = Path.GetDirectoryName(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path));
|
string exeLocation = Path.GetDirectoryName(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path));
|
||||||
|
|
||||||
// Return all culture for which satellite folder found with culture code.
|
// Return all culture for which satellite folder found with culture code.
|
||||||
foreach (CultureInfo cultureInfo in cultures)
|
foreach (CultureInfo cultureInfo in cultures)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(cultureInfo.Name) && Directory.Exists(Path.Combine(exeLocation, "Languages", cultureInfo.Name)))
|
if (!string.IsNullOrEmpty(cultureInfo.Name) && Directory.Exists(Path.Combine(exeLocation, "Languages", cultureInfo.Name)))
|
||||||
{
|
{
|
||||||
yield return cultureInfo;
|
yield return cultureInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsOutputTypeCompatibleWithCategory(OutputType outputType, string category)
|
public static bool IsOutputTypeCompatibleWithCategory(OutputType outputType, string category)
|
||||||
{
|
{
|
||||||
if (category == InputCategoryNames.Misc)
|
if (category == InputCategoryNames.Misc)
|
||||||
{
|
{
|
||||||
// Misc category contains unsorted input extensions, so we consider that they are compatible to be tolerant.
|
// Misc category contains unsorted input extensions, so we consider that they are compatible to be tolerant.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (outputType)
|
switch (outputType)
|
||||||
{
|
{
|
||||||
case OutputType.Aac:
|
case OutputType.Aac:
|
||||||
case OutputType.Flac:
|
case OutputType.Flac:
|
||||||
case OutputType.Mp3:
|
case OutputType.Mp3:
|
||||||
case OutputType.Ogg:
|
case OutputType.Ogg:
|
||||||
case OutputType.Wav:
|
case OutputType.Wav:
|
||||||
return category == InputCategoryNames.Audio || category == InputCategoryNames.Video;
|
return category == InputCategoryNames.Audio || category == InputCategoryNames.Video;
|
||||||
|
|
||||||
case OutputType.Avi:
|
case OutputType.Avi:
|
||||||
case OutputType.Mkv:
|
case OutputType.Mkv:
|
||||||
case OutputType.Mp4:
|
case OutputType.Mp4:
|
||||||
case OutputType.Ogv:
|
case OutputType.Ogv:
|
||||||
case OutputType.Webm:
|
case OutputType.Webm:
|
||||||
return category == InputCategoryNames.Video || category == InputCategoryNames.AnimatedImage;
|
return category == InputCategoryNames.Video || category == InputCategoryNames.AnimatedImage;
|
||||||
|
|
||||||
case OutputType.Ico:
|
case OutputType.Ico:
|
||||||
case OutputType.Jpg:
|
case OutputType.Jpg:
|
||||||
case OutputType.Png:
|
case OutputType.Png:
|
||||||
case OutputType.Webp:
|
case OutputType.Webp:
|
||||||
return category == InputCategoryNames.Image || category == InputCategoryNames.Document || category == InputCategoryNames.AnimatedImage;
|
return category == InputCategoryNames.Image || category == InputCategoryNames.Document || category == InputCategoryNames.AnimatedImage;
|
||||||
|
|
||||||
case OutputType.Gif:
|
case OutputType.Gif:
|
||||||
return category == InputCategoryNames.Image || category == InputCategoryNames.Video || category == InputCategoryNames.AnimatedImage;
|
return category == InputCategoryNames.Image || category == InputCategoryNames.Video || category == InputCategoryNames.AnimatedImage;
|
||||||
|
|
||||||
case OutputType.Pdf:
|
case OutputType.Pdf:
|
||||||
return category == InputCategoryNames.Image || category == InputCategoryNames.Document;
|
return category == InputCategoryNames.Image || category == InputCategoryNames.Document;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Thread InstantiateThread(string name, ThreadStart threadStart)
|
public static Thread InstantiateThread(string name, ThreadStart threadStart)
|
||||||
{
|
{
|
||||||
ISettingsService settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
|
ISettingsService settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
|
||||||
CultureInfo currentCulture = settingsService?.Settings?.ApplicationLanguage;
|
CultureInfo currentCulture = settingsService?.Settings?.ApplicationLanguage;
|
||||||
|
|
||||||
Thread thread = new Thread(threadStart);
|
Thread thread = new Thread(threadStart);
|
||||||
thread.Name = name;
|
thread.Name = name;
|
||||||
|
|
||||||
if (currentCulture != null)
|
if (currentCulture != null)
|
||||||
{
|
{
|
||||||
thread.CurrentCulture = currentCulture;
|
thread.CurrentCulture = currentCulture;
|
||||||
thread.CurrentUICulture = currentCulture;
|
thread.CurrentUICulture = currentCulture;
|
||||||
}
|
}
|
||||||
|
|
||||||
return thread;
|
return thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Thread InstantiateThread(string name, ParameterizedThreadStart parameterizedThreadStart)
|
public static Thread InstantiateThread(string name, ParameterizedThreadStart parameterizedThreadStart)
|
||||||
{
|
{
|
||||||
ISettingsService settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
|
ISettingsService settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
|
||||||
CultureInfo currentCulture = settingsService?.Settings?.ApplicationLanguage;
|
CultureInfo currentCulture = settingsService?.Settings?.ApplicationLanguage;
|
||||||
|
|
||||||
Thread thread = new Thread(parameterizedThreadStart);
|
Thread thread = new Thread(parameterizedThreadStart);
|
||||||
thread.Name = name;
|
thread.Name = name;
|
||||||
|
|
||||||
if (currentCulture != null)
|
if (currentCulture != null)
|
||||||
{
|
{
|
||||||
thread.CurrentCulture = currentCulture;
|
thread.CurrentCulture = currentCulture;
|
||||||
thread.CurrentUICulture = currentCulture;
|
thread.CurrentUICulture = currentCulture;
|
||||||
}
|
}
|
||||||
|
|
||||||
return thread;
|
return thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Check whether Microsoft office is available or not.
|
/// Check whether Microsoft office is available or not.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="application">The office application name.</param>
|
/// <param name="application">The office application name.</param>
|
||||||
/// <returns>Returns true if Office is installed on the computer.</returns>
|
/// <returns>Returns true if Office is installed on the computer.</returns>
|
||||||
/// source: http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office/3267832#3267832
|
/// source: http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office/3267832#3267832
|
||||||
/// source: http://www.codeproject.com/Articles/26520/Getting-Office-s-Version
|
/// source: http://www.codeproject.com/Articles/26520/Getting-Office-s-Version
|
||||||
public static bool IsMicrosoftOfficeApplicationAvailable(ConversionJobs.ConversionJob_Office.ApplicationName application)
|
public static bool IsMicrosoftOfficeApplicationAvailable(ConversionJobs.ConversionJob_Office.ApplicationName application)
|
||||||
{
|
{
|
||||||
string registryKeyPattern = @"Software\Microsoft\Windows\CurrentVersion\App Paths\";
|
string registryKeyPattern = @"Software\Microsoft\Windows\CurrentVersion\App Paths\";
|
||||||
switch (application)
|
switch (application)
|
||||||
{
|
{
|
||||||
case ConversionJob_Office.ApplicationName.Word:
|
case ConversionJob_Office.ApplicationName.Word:
|
||||||
registryKeyPattern += "winword.exe";
|
registryKeyPattern += "winword.exe";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConversionJob_Office.ApplicationName.PowerPoint:
|
case ConversionJob_Office.ApplicationName.PowerPoint:
|
||||||
registryKeyPattern += "powerpnt.exe";
|
registryKeyPattern += "powerpnt.exe";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConversionJob_Office.ApplicationName.Excel:
|
case ConversionJob_Office.ApplicationName.Excel:
|
||||||
registryKeyPattern += "excel.exe";
|
registryKeyPattern += "excel.exe";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConversionJob_Office.ApplicationName.None:
|
case ConversionJob_Office.ApplicationName.None:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Looks inside CURRENT_USER.
|
// Looks inside CURRENT_USER.
|
||||||
RegistryKey winwordKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(registryKeyPattern, false);
|
RegistryKey winwordKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(registryKeyPattern, false);
|
||||||
if (winwordKey != null)
|
if (winwordKey != null)
|
||||||
{
|
{
|
||||||
string winwordPath = winwordKey.GetValue(string.Empty).ToString();
|
string winwordPath = winwordKey.GetValue(string.Empty).ToString();
|
||||||
if (!string.IsNullOrEmpty(winwordPath))
|
if (!string.IsNullOrEmpty(winwordPath))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not found, looks inside LOCAL_MACHINE.
|
// If not found, looks inside LOCAL_MACHINE.
|
||||||
winwordKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(registryKeyPattern, false);
|
winwordKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(registryKeyPattern, false);
|
||||||
if (winwordKey != null)
|
if (winwordKey != null)
|
||||||
{
|
{
|
||||||
string winwordPath = winwordKey.GetValue(string.Empty).ToString();
|
string winwordPath = winwordKey.GetValue(string.Empty).ToString();
|
||||||
if (!string.IsNullOrEmpty(winwordPath))
|
if (!string.IsNullOrEmpty(winwordPath))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ConversionJob_Office.ApplicationName GetOfficeApplicationCompatibleWithExtension(string extension)
|
public static ConversionJob_Office.ApplicationName GetOfficeApplicationCompatibleWithExtension(string extension)
|
||||||
{
|
{
|
||||||
switch (extension)
|
switch (extension)
|
||||||
{
|
{
|
||||||
case "doc":
|
case "doc":
|
||||||
case "docx":
|
case "docx":
|
||||||
case "odt":
|
case "odt":
|
||||||
return ConversionJob_Office.ApplicationName.Word;
|
return ConversionJob_Office.ApplicationName.Word;
|
||||||
|
|
||||||
case "ppt":
|
case "ppt":
|
||||||
case "pptx":
|
case "pptx":
|
||||||
case "odp":
|
case "odp":
|
||||||
return ConversionJob_Office.ApplicationName.PowerPoint;
|
return ConversionJob_Office.ApplicationName.PowerPoint;
|
||||||
|
|
||||||
case "ods":
|
case "ods":
|
||||||
case "xls":
|
case "xls":
|
||||||
case "xlsx":
|
case "xlsx":
|
||||||
return ConversionJob_Office.ApplicationName.Excel;
|
return ConversionJob_Office.ApplicationName.Excel;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ConversionJob_Office.ApplicationName.None;
|
return ConversionJob_Office.ApplicationName.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class InputCategoryNames
|
public static class InputCategoryNames
|
||||||
{
|
{
|
||||||
public const string Audio = "Audio";
|
public const string Audio = "Audio";
|
||||||
public const string Video = "Video";
|
public const string Video = "Video";
|
||||||
public const string Image = "Image";
|
public const string Image = "Image";
|
||||||
public const string AnimatedImage = "Animated Image";
|
public const string AnimatedImage = "Animated Image";
|
||||||
public const string Document = "Document";
|
public const string Document = "Document";
|
||||||
|
|
||||||
public const string Misc = "Misc";
|
public const string Misc = "Misc";
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum HardwareAccelerationMode
|
public enum HardwareAccelerationMode
|
||||||
{
|
{
|
||||||
Off,
|
Off,
|
||||||
CUDA
|
CUDA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,7 +10,7 @@ using System.Windows;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("FileConverter")]
|
[assembly: AssemblyProduct("FileConverter")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" Content="Copyright @ 2024, Adrien Allard. All right reserved." Foreground="{DynamicResource LighterForegroundBrush}" Margin="0,2,0,2"/>
|
<Label Grid.Row="3" Grid.Column="0" Content="Copyright @ 2025, Adrien Allard. All right reserved." Foreground="{DynamicResource LighterForegroundBrush}" Margin="0,2,0,2"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</TabControl>
|
</TabControl>
|
||||||
|
@ -9,7 +9,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("FileConverterExtension")]
|
[assembly: AssemblyProduct("FileConverterExtension")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user