提示用户在macOS上选择一个窗口,模仿本地屏幕截图实用程序
提示用户在macOS上选择一个窗口,模仿本地屏幕截图实用程序
mac-window-select
Prompt the user to select a window on macOS, mimicking the native screenshot utility
Requires macOS 10.12 or later. macOS 10.13 or earlier needs to download the Swift runtime support libraries.
Install
$ npm install mac-window-select
Usage
const selectWindow = require('mac-window-select');selectWindow({appsToIgnore: ['iTerm2']}).then(console.log);// {// canceled: false,// window: {// ownerName: 'Google Chrome',// name: 'karaggeorge/mac-window-select: Select a window on macOS, mimicking the native screenshot utility',// y: 23,// x: 1920,// width: 1920,// height: 1057,// number: 141349,// pid: 69132// }// }const process = selectWindow().then(console.log);process.cancel();// {// canceled: true,// window: undefined// }
Demo
API
selectWindow(options?: {appsToIgnore: string[]}): PCancelable
Trigger the UI to prompt the user to select a window.
Returns PCancelable
canceled Boolean - whether or not the process was canceled, either by the user or by calling .cancel()window Object - window that was selected. Will be undefined if the process is canceled or if the module is not supported
The returned promise is an instance of PCancelable, so it has a .cancel() method which can be used to kill the process
options.appsToIgnore
Array of app names to ignore. If an app is in this list, it will be ignored and the app below it will be used instead.
Note: Use this if you want your own app to not be selectable
selectWindow.isSupported
Will be true if the module is supported (based on macOS version).
Limitations
Currently, there's no way to track the keyboard events, since the script never steals focus from the previously focused app. If you want Escape to cancel, you have to track it in your app and call the cancel() method on the returned promise.
Related
mac-focus-window - Focus a window and bring it to the front on macOSmac-windows - Provide Information about Application Windows running
License
MIT
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~