0

尝试将GnuPG与 Delphi (Win32) 一起使用。我需要使用这样的控制台命令签署一些文件:

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

首先,我创建了普通的 VCL Forms App 并使用了CreateProcess函数,一切正常,但是当我将该代码传输到我的服务应用程序时,gpg.exe 以代码 2 退出。也许我错过了什么?有任何想法吗?

更新

以防万一有人遇到这样的问题。GnuPG 将密钥存储在其中,C:\Documents And Settings\<username>\Application Data\gnupg\但是当服务从另一个用户帐户 (SYSTEM) 运行时 - 它找不到您的密钥。GL & 高频

4

2 回答 2

2

尝试转储 stderr 并查看是否有任何结果。您也许可以通过管道输入消息。读取密码可能有问题。我有点记得必须将密码短语传递到 gpg 而不是将其指定为参数。

于 2009-05-06T09:34:32.793 回答
0

作为服务应用程序的(子),没有 shell 作为父应用程序,因此子应用程序可能根本无法使用 stdio。尝试使用 cmd /c 或通过 shellexecute 执行。或者更好的是,使用并不总是需要 stdio 的程序。

于 2009-05-06T09:53:04.420 回答