Hallo Liebe myC# Freunde,
folgendens plagt mich beim aufrufen einer DLL übern einen Dienst...
Szenario: Über einen Dienst wird eine DLL eingebunden (ist auch registriert) auf einem Windows Server (2012) (Testumgebung).
Diese DLL ruft eine beliebige Anwendung auf, als Beispiel nehmen wir Notepad.exe, die ich mit
System.Diagnostic.Process.Start aufrufe
Wird die DLL über den Dienst ausgeführt, sehe ich Notepad nur als Hintergrundprozess. Erwartet hätte ich, das der Editor aufgeht.
Packe in den gleichen Code in einer Konsolenanwendung zum testen und starte die EXE, funktioniert das einwandfrei.
Daraufhin kam mir die Idee, dass ich eventuell Parametern von
System.Diagnostics.ProcessStartInfo übergeben muss.
Habe das im unterem Code ausgeführt, an welche ich mich bedient habe aus meinen Recherchen.
Leider bekam ich nicht den gewünschten Effekt zurück und ich sehe Notepad nur im Hintergrundprozess.
Vll kann mir jemand diesen Verhalten erklären, da ich gerade nicht schlau davon werde.
Kann es sein, das ich irgendwelche Parameter vergessen habe?
Hier mein Code:
C#-Code: |
var ssPwd = new SecureString();
string password = "meinPW!";
for (int x = 0; x < password.Length; x++)
{
ssPwd.AppendChar(password[x]);
}
using (Process process1 = new Process())
{
process1.StartInfo = new ProcessStartInfo(@"C:\Windows\system32\notepad.exe");
process1.StartInfo.CreateNoWindow = true;
process1.StartInfo.ErrorDialog = false;
process1.StartInfo.RedirectStandardError = true;
process1.StartInfo.RedirectStandardInput = true;
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process1.StartInfo.UserName = Environment.UserName;
process1.StartInfo.Password = ssPwd;
process1.StartInfo.Domain = Environment.UserDomainName;
process1.Start();
process1.WaitForExit();
}
|
Ich hoffe, das Forum ist richtig gewählt und ich habe die Forumssuche richtig bedient
Liebe Grüße