how to get windowid from applescript

前端 未结 2 2006
闹比i
闹比i 2020-12-18 15:59

I am trying to get window id of of every window.

set r to {}
tell application \"System Events\"
    repeat with t in windows of processes
        set sid to          


        
2条回答
  •  孤城傲影
    2020-12-18 16:28

    I wrote a little Objective-C program for you that gets the window owners, window names and window ids:

    ////////////////////////////////////////////////////////////////////////////////
    // windowlist.m
    // Mark Setchell
    //
    // Get list of windows with their WindowOwnerNames, WindowNames and WindowNumbers
    //
    // Compile with:
    // clang windowlist.m -o windowlist -framework coregraphics -framework cocoa
    //
    // Run with:
    // ./windowlist
    //
    // You can then run "screencapture" to capture that window:
    //
    // screencapture -l -x someFile.[png|jpg|tif]
    ////////////////////////////////////////////////////////////////////////////////
    #include 
    #include 
    
    int main(int argc, char **argv)
    {
       NSArray *windows = (NSArray *)CGWindowListCopyWindowInfo(kCGWindowListExcludeDesktopElements|kCGWindowListOptionOnScreenOnly,kCGNullWindowID);
       for(NSDictionary *window in windows){
          int WindowNum = [[window objectForKey:(NSString *)kCGWindowNumber] intValue];
          NSString* OwnerName = [window objectForKey:(NSString *)kCGWindowOwnerName];
          NSString* WindowName= [window objectForKey:(NSString *)kCGWindowName];
          printf("%s:%s:%d\n",[OwnerName UTF8String],[WindowName UTF8String],WindowNum);
       }
    }
    

    Output

    ./windowlist
    
    Preview:(null):300
    Safari:(null):48
    Terminal:(null):231
    VirtualBox:(null):212
    Mail:(null):150
    Dropbox:(null):181
    Finder:(null):118
    Notification Center:(null):83
    Google Drive:(null):73
    Copy:(null):68
    InkServer:(null):49
    iTerm:(null):44
    Google Drive::69
    Copy::66
    Dropbox::63
    Creative Cloud::57
    Spotlight::41
    SystemUIServer::33
    SystemUIServer:(null):36
    SystemUIServer::31
    Window Server:Menubar:3
    Dock:Dock:23
    iTerm:2. bash:190
    iTerm:1. bash:336
    

提交回复
热议问题