質問

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フォームアプリを作成し、CreateProcess関数を使用しましたが、すべて問題ありませんでしたが、そのコードをサービスアプリに転送すると、gpg.exeはコード2で終了します。アイデアはありますか?

更新

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

役に立ちましたか?

解決

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top