我尝试在通过MSYS2 MinGW安装的Windows10上运行的gPhoto2上使用钩子脚本。 gPhoto2运行良好。我的问题是,现在我想运行一个钩子脚本来对来自摄像机的事件做出反应。我使用以下代码启动gPhoto绑定捕获:
$env:CAMLIBS="C:\msys64\mingw64\lib\libgphoto2\2.5.23\"
$env:IOLIBS="C:\msys64\mingw64\lib\libgphoto2_port\0.12.0\"
gphoto2 --auto-detect
gphoto2 --capture-tethered --filename "%Y-%m-%d_%H%M%S.%C" --hook-script "D:\gphoto2Testing\Test.ps1"
出于测试目的,“ Test.ps1”的代码仅为
exit 0
因为据我所知,gPhoto2文档需要为init操作提供零退出代码。但是,我得到以下错误:
gphoto2 : Hook script returned error code -1 (0xffffffff)
In D:\gphoto2Testing\gPhoto2.ps1:6 Zeichen:1
+ gphoto2 --capture-tethered --filename "%Y-%m-%d_%H%M%S.%C" --hook-scr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Hook script ret...-1 (0xffffffff):String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Hook script "D:\gphoto2Testing\Test.ps1" init failed. Aborting.
通常,挂钩脚本应与脚本类型无关(请参见https://github.com/gphoto/gphoto2/issues/217)。 gPhoto2附带的演示钩子脚本显示为:
self=`basename $0`
case "$ACTION" in
init)
echo "$self: INIT"
# exit 1 # non-null exit to make gphoto2 call fail
;;
start)
echo "$self: START"
;;
download)
echo "$self: DOWNLOAD to $ARGUMENT"
;;
stop)
echo "$self: STOP"
;;
*)
echo "$self: Unknown action: $ACTION"
;;
esac
exit 0
gPhoto2的文档显示为:
每当gphoto2中发生某个事件时,都要执行钩子脚本FILENAME。钩子脚本读取环境变量ACTION。它必须忽略它未知的ACTION值。
也许我的问题与环境变量ACTION或上述退出代码有关。我在Google上搜索,但没有成功。对于解决此问题的任何帮助,我们深表感谢。