0

Delphi (Win32) でGnuPGを使用しようとしています。そのようなコンソールコマンドでいくつかのファイルに署名する必要があります:

"C:\Program Files\GNU\GnuPG\gpg.exe" -a -u Alex --passphrase secretpassword --yes --clearsign -o C:\Result.asc C:\InputFile.txt

最初に通常の VCL Forms アプリを作成しCreateProcess、関数を使用しました。すべて問題ありませんでしたが、そのコードをサービス アプリに転送すると、gpg.exe がコード 2 で終了します。何か案は?

アップデート

誰かがそのような問題を抱えている場合に備えて。GnuPG はキーを保存しますC:\Documents And Settings\<username>\Application Data\gnupg\が、サービスが別のユーザー アカウント (SYSTEM) から実行されると、キーが見つかりません。GL HF

4

2 に答える 2

2

stderrをダンプしてみて、何かが得られるかどうかを確認してください。メッセージをパイプで送ることができる場合があります。パスフレーズの読み取りに問題がある可能性があります。パスフレーズをパラメーターとして指定するのではなく、gpgにパイプする必要があることを覚えています。

于 2009-05-06T09:34:32.793 に答える
0

サービス アプリ (の子) として、親としてのシェルがないため、子アプリは単に stdio を使用できない可能性があります。cmd /c または shellexecute を使用して実行を試みます。または、常に stdio を必要としないプログラムを使用してください。

于 2009-05-06T09:53:04.420 に答える