着信ドキュメントを C# で暗号化しようとしていますが、GnuPG と入力リダイレクトを使用しています。パスフレーズを入力する必要がある単一のステップで -se(署名と暗号化) を使用する必要があります。しかし、何らかの理由で、入力のリダイレクトが機能していません。あなたの助けに感謝。コントロールはelseブロックになります。入力を待っているデッドロックまたは子プロセス (gpg.exe) があるかどうかはわかりません。
pgpproc = new Process();
pgpproc.StartInfo.FileName = exeFilePath;
pgpproc.StartInfo.RedirectStandardOutput = false;
pgpproc.StartInfo.RedirectStandardInput = true;
pgpproc.StartInfo.UseShellExecute = false;
pgpproc.StartInfo.Arguments = "-a -o C:\PGPStaging\output.pgp -se -r recipientID C:\PGPStaging\input.txt";
pgpproc.StartInfo.CreateNoWindow = true;
pgpproc.Start();
StreamWriter myStreamWriter = pgpproc.StandardInput;
myStreamWriter.Write("*****");
myStreamWriter.Close();
if (pgpproc.WaitForExit(waittime))
{
//success
}
else
{
//failure
pgpproc.Kill();
pgpproc.WaitForExit();
}
`