es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Captura de pantalla de Macos con LaunchAgent.

Creé una herramienta de línea de comandos de captura de pantalla denominada LaunchAgent. Al iniciarse, la alerta de política de captura de pantalla no aparece, por lo que no pude capturar las capturas de pantalla correctas. No tengo idea de cómo corregir esto. ¿Podrías ayudarme con esto? Gracias.

La ruta de la herramienta de línea de comandos es: /bin/capture

El siguiente es el código:


import <foundation foundation.h=""> import <cocoa cocoa.h=""> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"capture screen..."); CGRect mainRect = CGDisplayBounds(CGMainDisplayID()); CGImageRef desktopImage = CGWindowListCreateImage(mainRect, kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageBestResolution | kCGWindowImageShouldBeOpaque); NSBitmapImageRep *bmpImgRef = [[NSBitmapImageRep alloc] initWithCGImage:desktopImage]; NSData *data = [bmpImgRef representationUsingType:NSBitmapImageFileTypeJPEG properties:@{NSImageCompressionFactor: @(1)}]; NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; [fmt setDateFormat:@"yyyyMMdd_hh:mm:ss"]; [data writeToURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"/tmp/%@.jpg", [fmt stringFromDate:[NSDate date]]]] atomically:true]; } return 0; }

La ruta del archivo LaunchAgent plist es: /Library/LaunchAgent/com.test.launchagent.screencapture.plist

Y el archivo LaunchAgent plist es el siguiente:

“`
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>com.test.launchagent.screencapture</string>

<key>ProgramArguments</key>

<array>

<pre><code><string>/bin/capture</string>
</code></pre>

</array>

<key>RunAtLoad</key>

<true/>

</dict>

</plist>
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la alerta de política de captura de pantalla. Para corregir esto, puedes intentar los siguientes pasos:
    1. Verifica si la herramienta de línea de comandos /bin/capture es ejecutable.
    2. Verifica si el archivo plist de LaunchAgent /Library/LaunchAgent/com.test.launchagent.screencapture.plist es válido.
    3. Verifica si el LaunchAgent se ha cargado correctamente. Puedes utilizar el comando launchctl list | grep com.test.launchagent.screencapture para comprobarlo.
    4. Si el LaunchAgent se ha cargado correctamente, puedes intentar descargarlo y cargarlo de nuevo con los comandos launchctl unload /Library/LaunchAgent/com.test.launchagent.screencapture.plist y launchctl load /Library/LaunchAgent/com.test.launchagent.screencapture.plist.
    5. Si el problema persiste, puedes intentar restablecer la alerta de política de captura de pantalla con el comando tccutil reset ScreenCapture.

Comments are closed.