già in esecuzione Ecco il mio codice:WriteLine per processo
static void Main(string[] args)
{
if(args.Length > 1)
{
int id;
if(int.TryParse(args[0], out id))
{
try
{
var p = Process.GetProcessById(id);
p.StandardInput.WriteLine(args[1]);
}
catch (ArgumentException)
{
Console.WriteLine($"Couldn't find process with id {id}");
}
}
else
{
Console.WriteLine($"Couldn't find process with id {args[0]}");
}
}
}
ho avuto un processo per la sua identificazione. Ha funzionato bene Quindi ho provato a inviare qualcosa al suo stdin. Ciò ha gettato un'eccezione InvalidOperationException. Nota: l'eccezione si è verificata quando ho provato a ottenere StandardInput, non quando ho provato a scrivere su WriteLine.
Credo di sapere perché ho ottenuto l'eccezione. Il processo non è stato avviato dalla mia applicazione, quindi non ho mai avuto la possibilità di impostare RedirectStandardInput su true.
Il mio obiettivo è essere in grado di utilizzare questa app per inviare testo a una console interattiva python (o un'altra lingua). Voglio comunque essere in grado di immettere il testo personalmente al prompt di python, ma voglio anche dare il controllo della mia app.
Come posso fare?
Questo ti aiuta? http://stackoverflow.com/questions/10390829/is-it-possible-to-talk-with-running-process – ragerory
Per quelli confusi: il prefisso '$' è parte di C# 6 (interpolazione stringa). –
@ragerory L'ho visto, ma questo presuppone che tu controlli entrambi i processi. Non ho il controllo su un prompt di Python. Potrei scrivere un processo di avviamento attraverso il quale vorrei iniziare qualsiasi cosa a cui voglio inviare qualcosa, ma è un po 'goffo. – phil