Używanie skryptu do powiadamiania o włożeniu urządzenia pamięci masowej do komputera Mac


0

Jestem nowy na Macintoshu. Czy w systemie macOS można utworzyć określony „skrypt”, który powiadomi zarówno użytkownika, jak i administratora, za każdym razem, gdy dysk flash / osobiste urządzenie pamięci masowej zostanie podłączone do komputera Mac


Właściwie udało mi się obejść obejście. Teraz myślę, jak uruchomić skrypt, który utworzyłem po włożeniu dysku flash.
jquiambao

Odpowiedzi:


2

Ten niewielki fragment kodu Swift, choć nie jest skryptem, zgłasza wszelkie wstawienia dysków fizycznych lub wirtualnych. Może ci pomóc:

import Foundation
import DiskArbitration

let session = DASessionCreate(CFAllocatorGetDefault().takeRetainedValue())

DARegisterDiskAppearedCallback(
    session!,
    nil,
    { (disk, context) in
        if let name = DADiskGetBSDName(disk) {
            print("Disk inserted: " + String(cString: name))
        }
},
    nil)

DASessionScheduleWithRunLoop(session!, CFRunLoopGetMain(), CFRunLoopMode.defaultMode.rawValue)

RunLoop.main.run()

Doceniam twoją pomoc, stary, jestem bardziej zainteresowany scenariuszem. Ale chcę wypróbować kod, który podałeś. nie mam pojęcia, jak mogę to uruchomić.
jquiambao

Powinieneś być w stanie uruchomić polecenie „szybkie” z wiersza poleceń, a macOS powinien zaoferować instalację narzędzi wiersza polecenia dla programistów. Następnie będziesz mógł uruchomić polecenie „szybkie”, a następnie po prostu skopiuj i wklej to w monicie, który możesz wypróbować.
William T Froggard,

lub po prostu biegnij xcode-select --installpierwszy
William T Froggard

Próbowałem już kodu i dostałem błądrepl.swift:10:12: error: initializer for conditional binding must have Optional type, not 'UnsafePointer<Int8>' if let name = DADiskGetBSDName(disk) { ^ repl.swift:16:60: error: use of unresolved identifier 'CFRunLoopMode' DASessionScheduleWithRunLoop(session!, CFRunLoopGetMain(), CFRunLoopMode.defaultMode.rawValue) ^~~~~~~~~~~~~ repl.swift:18:1: error: use of unresolved identifier 'RunLoop' RunLoop.main.run() ^~~~~~~
jquiambao

@jquiambao jaka wersja, jeśli używasz systemu macOS?
William T Froggard,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.