nach drei Tagen Arbeit und vielen Versuchen mit Google sowie rumstümpern, muss ich jetzt mal nach Hilfe fragen.
Wir benutzen auf der Arbeit ein Tool (printraw.exe) mit welchem wir XXX.txt Files (in IPL) als Konfigurationseinstellungen an Drucker senden.
Bisherige vorgehensweisse:
CMD öffnen --> printraw.exe C:\DATA\blablabla.txt Drucker1 (jeweils mit Leerzeichen)
also -----------> Programm Konfig-Datei Installierter-Drucker
Da die IPL Programmierer das anscheinend nicht hinbekommen über die CMD, dachte ich mir: Mach ich ein kleiner Program, mit Eingabefeldern. Sprich C# WinForms :-)
Habe dann erstmal geschaut, ob das überhaupt klappt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project1
{
class Class1
{
public static void Main()
{
//Variabelen
string line1;
string line2;
string output;
//Text Config
Console.WriteLine("Config-File");
Console.WriteLine();
line1 = Console.ReadLine();
//Text Printer
Console.WriteLine("Printer");
Console.WriteLine();
line2 = Console.ReadLine();
//String combine
output = String.Format("/K C:\\DATA\\Intermec\\VW\\printraw.exe C:\\DATA\\Intermec\\VW\\{0} {1}", line1, line2);
System.Diagnostics.Process.Start("CMD.exe", output);
}
}
}
Soweit, sogut! Nun die realisierung in der Forms-Variante:
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
//Variabelen
static string Config;
static string Printer;
public Form1()
{
InitializeComponent();
}
//Config-File
public void Configfile_TextChanged(object sender, EventArgs e)
{
Config = Configfile.Text;
}
//Printer
public void Printername_TextChanged(object sender, EventArgs e)
{
Printer = Printername.Text;
}
public string Output = String.Format("/K \"C:\\DATA\\Intermec\\VW\\printraw.exe C:\\DATA\\Intermec\\VW\\{0} {1}\"", Config, Printer);
//Sendbutton
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("CMD.exe", this.Output);
}
}
}
Und da klappt irgendwas nicht. Die CMD öffnet sich, ich erhalte aber immer eine Anzeige, als wenn ich nur Printraw.exe ohne Parameter eingegeben hätte.
Das ist bestimmt nur eine Kleinigkeit im Syntax, aber ich komme nicht drauf!
Bin "nur" ein Systemintegrator und meine Programmier-Erfahrung ist schon ein gutes stück eingerostet. Sorry, sollte es wirklich einfach sein, aber ich bin einfach am Ende.
(Anhang die Win-Form für Visual C#)
Danke schonmal für die Mühe