Controleer de Finder-activiteit

Is er een manier waarop ik (programmatisch) kan controleren of de vinder bezig is, bijvoorbeeld bestanden kopiëren? Ik wil het niet op bestandsniveau controleren; Ik wil gewoon in het algemeen weten of de vinder bezig is met kopiëren.

Ik denk dat het niet mogelijk is, maar het is altijd de moeite waard hier een injectie te geven :)

0
Waarom wil je dat weten? Het zou mogelijk moeten zijn om andere dingen te doen terwijl een kopie doorgaat.
toegevoegd de auteur JWWalker, de bron
Ik heb het getest, maar ik zie geen specifieke processen opduiken in de activiteitsmonitor.
toegevoegd de auteur Thomas K, de bron
Systeemmonitor?
toegevoegd de auteur Kevin, de bron

1 antwoord

Helaas biedt Apple geen methode om dit soort informatie op te halen.
Er zijn echter enkele 'vuile' manieren die kunnen werken, bijvoorbeeld met behulp van AppleScript.

Het volgende script detecteert of het 'kopieervenster' van Finder actief is of niet:
(Snel geschreven en niet grondig getest, maar lijkt geweldig te werken.)

set thestatus to "not copying"
tell application "System Events"
    set theList to get the title of every window of process "Finder"
    repeat with theItem in theList
        if theItem contains "Copy" then
            set thestatus to "copying"
        end if
    end repeat
end tell
thestatus

Gebruik ten slotte NSAppleScript om dit AppleScript uitobjective-cuit te voeren

NSString *theScript = @"set theStatus to \"not copying\"\n"
"tell application \"System Events\"\n"
"set theList to get the title of every window of process \"Finder\"\n"
"repeat with theItem in theList\n"
"if theItem contains \"Copy\" then\n"
"set theStatus to \"copying\"\n"
"end if\n"
"end repeat\n"
"end tell\n"
"theStatus";

NSDictionary *errorInfo = nil;
NSAppleScript *run = [[NSAppleScript alloc] initWithSource:theScript];
NSAppleEventDescriptor *theDescriptor = [run executeAndReturnError:&errorInfo];

if ([[theDescriptor stringValue] isEqualTo:@"copying"]) {
    NSLog(@"Finder is copying");
} else {
    NSLog(@"Finder is not copying");
}
2
toegevoegd
Werkt perfect! Bedankt!
toegevoegd de auteur Thomas K, de bron
Dit zou werken op een systeem met Engels als standaardtaal. Enige hint over hoe dit te doen op een taal-agnostische manier?
toegevoegd de auteur beeb, de bron