我想知道的是,如果有任何方法可以获得命令或应用程序使用的选项(没有手动输入。例如:
应用程序 ScreenSaverEngine ,位于:
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/
有 -background 选项,允许我将当前屏幕保护程序设置为桌面背景。
./ScreenSaverEngine -background
现在我想用这个应用程序做其他的事情,或者至少我想知道是否有可能做其他事情。所以我想知道 ScreenSaverEngine 的所有其他选项。我想也许在应用程序中编写了一些选项,所以我尝试了类似
的内容strings ScreenSaverEngine | grep "-"
但没有结果。 ScreenSaverEngine 没有手册,所以
man ScreenSaverEngine
无济于事。我很乐意提出任何建议: - )。
(顺便说一句,我使用的是MAC OS X)。
答案 0 :(得分:4)
对于任何任意应用程序,这是不可能的,因为传递给程序的argv
函数(在C中)的main()
参数可以以程序所需的任何方式进行存储,解析和访问。它甚至可以将参数写入文件,然后在想知道要使用哪些选项时读取该文件。
但是,看起来已经记录了命令行选项。 来自CocoaDev:
ScreenSaverEngine支持一些特殊的命令行标志来帮助 在调试中:
-background - 所有其他窗口后面都显示所有屏幕保护程序窗口(在Finder图标后面,但在桌面图像前面)。该 密码和gamma淡入淡出功能已禁用。它不会退出 鼠标或键盘活动。
-debug - Like -background,除了桌面上的鼠标移动导致它退出。在运行ScreenSaverEngine时非常方便 GDB。 (尝试在此模式下绕过我的计算机而不会导致它 退出让我想起了小时候不要触摸地板)
-module - 加载指定的模块而不是用户默认值指定的模块。接受与〜/ Library / Preferences / ByHost / com.apple.screensaver中的moduleName节点相同的值。*。plist For 例如,Flurry,Abstract或Spectrum。它似乎不接受 但是,.saver,.slideSaver或.qtz文件的完整路径或URL 有必要将所需的模块放在一个典型的模块中 ScreenSaver文件夹并引用它而没有文件扩展名。
-window - 一个附加命令在窗口中运行屏幕保护程序。
这可以与-background结合使用。示例:-window -background
答案 1 :(得分:1)
这是我喜欢放在我的路径中的脚本:
#!/bin/bash
usage() {
echo "usage: $0 [options]"
echo " -background Screen saver windows appear behind all other windows"
echo " -debug Like -background, except mouse movement over the"
echo " desktop causes it to exit"
echo " -module Loads the specified module by name"
}
engine=/System/Library/Frameworks/ScreenSaver.framework/Resources\
/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
while getopts "hbackgrounddebugmodule" opt; do
case "${opt}" in
h)
usage
exit 0
;;
esac
done
$engine "$@"
答案 2 :(得分:1)
不确定结果的准确性。但它具有逻辑意义。
我继续寻找回答这个问题,因为苹果打破了这个问题 与高山脉的背景旗帜。仍然是High Sierra 10.13.4的问题
这是来自运行Sierra 10.12.16的我的mac,可执行文件是相同的,但它位于HighSierra的不同文件位置。
所以要做到这一点。 ScreenSaverEngine是一个可执行文件。
字符串是一个可以让任何看起来像英语的东西。 我需要捕获文件以获取字符串输出,因为默认情况下它读取为二进制并且不提供任何结果。
MyClass::foo
我手动查看了这些文件,但你可以添加它来查看我最终注意到的文件:
cat /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine | strings
然后我注意到程序正在调用这个版本/ A / ScreenSaver
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine | strings | grep /System
我手动浏览并发现了Arguments部分。
收益: 参数
不知道为什么没有官方文件。