Implemented VirtualPrinterDriver project
This commit is contained in:
parent
f29c84821b
commit
5c87967c3f
125 changed files with 8191 additions and 0 deletions
93
Installer/VirtualPrinter.SetupDriver/Windows.cs
Normal file
93
Installer/VirtualPrinter.SetupDriver/Windows.cs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
|
||||
using JetBrains.Annotations;
|
||||
|
||||
namespace VirtualPrinter.SetupDriver
|
||||
{
|
||||
internal static class Windows
|
||||
{
|
||||
public static void AddPrinter([NotNull]string name, [NotNull]string model, [NotNull]string port, [CanBeNull]string driver = null)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(model));
|
||||
}
|
||||
|
||||
if (port == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(port));
|
||||
}
|
||||
|
||||
driver = driver ?? Shell.GetPrintInf();
|
||||
var args = $@"printui.dll,PrintUIEntry /if /b ""{name}"" /f ""{driver}"" /r ""{port}"" /m ""{model}"" /u";
|
||||
Shell.Execute("rundll32", args);
|
||||
}
|
||||
|
||||
public static void TestPrinter([NotNull]string name)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
var args = $@"printui.dll,PrintUIEntry /k /n ""{name}""";
|
||||
Shell.Execute("rundll32", args);
|
||||
}
|
||||
|
||||
public static void ConfigPrinter([NotNull]string name)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
var args = $@"printui.dll,PrintUIEntry /e /n ""{name}""";
|
||||
Shell.Execute("rundll32", args);
|
||||
}
|
||||
|
||||
public static void DelPrinter([NotNull]string name)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
var args = $@"printui.dll,PrintUIEntry /dl /n ""{name}""";
|
||||
Shell.Execute("rundll32", args);
|
||||
}
|
||||
|
||||
public static void AddPrinterPort([NotNull]string name, [NotNull]string ip, int port, [CanBeNull]string vbs = null)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
if (ip == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(ip));
|
||||
}
|
||||
|
||||
vbs = vbs ?? Shell.GetPrintVbs();
|
||||
var args = $@"""{vbs}"" -a -r {name} -h {ip} -o raw -n {port}";
|
||||
Shell.Execute("cscript", args);
|
||||
}
|
||||
|
||||
public static void DelPrinterPort([NotNull]string name, [CanBeNull]string vbs = null)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
vbs = vbs ?? Shell.GetPrintVbs();
|
||||
var args = $@"""{vbs}"" -d -r {name}";
|
||||
Shell.Execute("cscript", args);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue