用swift开发自己的MacOS锁屏软件(二)
上一篇中尝试写了hello world,这一篇中,开始尝试锁屏功能
1、尝试查找swift有没有相关的函数,可以控制系统锁屏之类的,结果并没有找到
2、尝试查找cocoa有没有相关的接口,结果仍然没有找到
3、尝试找一些系统命令,结果找到了
/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession -suspend
这条命令,在终端执行发现确实可以立即进入锁频界面,接下来就是尝试用swift调用它了。网上找了一番,发现可以用NSTask调用外部命令,在Xcode里写了出来发现没有代码提示,原来在swift中是使用Process代替了NSTask,Process可以设置两个参数,一个是launchPath,也就是执行命令的路径,另一个是arguments,也就是参数。所以我们将我们button按钮中的代码改为如下
@IBAction func changLabelText(_ sender: Any) { let p=Process() p.launchPath="/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession" p.arguments=["-suspend"] p.launch() }
运行之后果然已经可以实现锁屏功能了。
纵千难万险,亦不忘初心