AppKit

[NSOpenPanel] openPanel

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
(*
スクリプトエディタからは実行できません
アプリケーションに書き出してください
セキュリティ設定が必要です


*)
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSMutableString : a reference to objMe's NSMutableString

property objNSOpenPanel : a reference to objMe's NSOpenPanel

property objNSNotFound : a reference to 9.22337203685477E+18 + 5807


set objFileManager to objMe's NSFileManager's defaultManager()

set ocidUserDownloadsPath to (objFileManager's URLsForDirectory:(objMe's NSDownloadsDirectory) inDomains:(objMe's NSUserDomainMask))
log ocidUserDownloadsPath as list
log className() of ocidUserDownloadsPath as text
set ocidUserDownloadDirPath to ocidUserDownloadsPath's objectAtIndex:0
log ocidUserDownloadDirPath as text
log className() of ocidUserDownloadDirPath as text



tell objNSOpenPanel's openPanel()
setCanChooseFiles_(true)
setAllowsMultipleSelection_(true)
setCanChooseDirectories_(false)
setShowsHiddenFiles_(false)
setTreatsFilePackagesAsDirectories_(false)

setTitle_("ファイル選択")
setPrompt_("OK")
setMessage_("ファイルを選んでください")
setDirectoryURL_(ocidUserDownloadDirPath)
set ocidResult to its runModal() as integer
if ocidResult is objMe's NSFileHandlingPanelCancelButton then quit
set ocidFileResult to URLs()
end tell


#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[AppKit] hide() unhide() isHidden()

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application

######ログ表示
doLogView()

####UTI指定
set strUTI to "com.apple.TextEdit"

###UTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI

####格納されたアプリの1番を取得して
set ocidObjApp to ocidRunningApplicatios's objectAtIndex:0
(*
複数起動できるコマンド等は
リストを順に取得する事になる
*)

#### hide 隠しているしているか?調べる
log ocidObjApp's hide as boolean
#### unhide
log ocidObjApp's unhide as boolean
#### isHidden
log ocidObjApp's isHidden as boolean

## false-->起動中
## true-->起動していない(終了している)


####実際に隠す
ocidObjApp's hide

####2秒まって
delay 2

####隠すをやめる
ocidObjApp's unhide





#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[AppKit] isTerminated 終了しているか?=起動していない

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application

######ログ表示
doLogView()

####UTI指定
set strUTI to "com.apple.finder"

###UTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI

####格納されたアプリの1番を取得して
set ocidObjApp to ocidRunningApplicatios's objectAtIndex:0
(*
複数起動できるコマンド等は
リストを順に取得する事になる
*)

####終了しているか?調べる
log ocidObjApp's isTerminated as boolean

## false-->起動中
## true-->起動していない(終了している)



#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[AppLit] forceTerminate() 強制終了

強制終了
例:Finderの強制終了


#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application

####UTI指定
set strUTI to "com.apple.finder"

###UTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI
###アプリの数を数える
set numCntFinderApp to (count of ocidRunningApplicatios) as number

#####アプリの数が0より大きければ起動中なので
if numCntFinderApp > 0 then
####格納されたアプリの1番を取得して
set ocidObjApp to ocidRunningApplicatios's objectAtIndex:0
####強制終了させる
ocidObjApp's forceTerminate
end if
###2秒まって
delay 2
###起動
objMe's NSWorkspace's sharedWorkspace()'s launchAppWithBundleIdentifier:strUTI options:1 additionalEventParamDescriptor:(missing value) launchIdentifier:(missing value)
####起動出来なかった場合の再トライ
delay 2
###delay 2で起動出来なかった場合の再トライUTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI
###アプリの数を数える
set numCntFinderApp to (count of ocidRunningApplicatios) as number
if numCntFinderApp = 0 then
objMe's NSWorkspace's sharedWorkspace()'s launchAppWithBundleIdentifier:strUTI options:1 additionalEventParamDescriptor:(missing value) launchIdentifier:(missing value)
end if

ocidRunningApplicatios's release()

#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[AppKit] Application Information 起動中アプリの情報

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application


set objRunningApplicationsList to objMe's NSWorkspace's sharedWorkspace's runningApplications()

log className() of objRunningApplicationsList as text
log objRunningApplicationsList as list


repeat with objRunningApplication in objRunningApplicationsList
log className() of objRunningApplication as text
### localizedName
log objRunningApplication's localizedName as text
### bundleURL
log objRunningApplication's bundleURL as text
### bundleIdentifier
try
log objRunningApplication's bundleIdentifier as list
on error
log "このアプリケーションにはbundleIdentifierは未設定です"
end try

log objRunningApplication's executableArchitecture as text

### executableURL 実行可能なパス
log objRunningApplication's executableURL as text
### isFinishedLaunching 起動が終了しているか?
log objRunningApplication's isFinishedLaunching as boolean
### processIdentifier PID
log objRunningApplication's processIdentifier as text
### ownsMenuBar メニューに常駐しているか
log objRunningApplication's ownsMenuBar as boolean


end repeat

|

[AppKit]isFilePackage(atPath:) ファイルパッケージか?

あくまでも『ファイルパッケージ』なので
『インストールパッケージ』だとfalseを返します



#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application



set strFilePath to "/System/Volumes/Data/macOS Install Data/UpdateBundle/AssetData/boot/EmbeddedOSFirmware.pkg"

set boolIsFilePackage to objMe's NSWorkspace's sharedWorkspace's isFilePackageAtPath:strFilePath

log class of boolIsFilePackage as text
log boolIsFilePackage as boolean



set strFilePath to "/Library/Documentation/License.lpdf"

set boolIsFilePackage to objMe's NSWorkspace's sharedWorkspace's isFilePackageAtPath:strFilePath

log class of boolIsFilePackage as text
log boolIsFilePackage as boolean

|

[AppKit] launchAppWithBundleIdentifier(アプリケーションの起動)

Finderの再起動のサンプル


#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application

####UTI指定
set strUTI to "com.apple.finder"

###UTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI
###アプリの数を数える
set numCntFinderApp to (count of ocidRunningApplicatios) as number

#####アプリの数が0より大きければ起動中なので
if numCntFinderApp > 0 then
####格納されたアプリの1番を取得して
set ocidObjApp to ocidRunningApplicatios's objectAtIndex:0
####終了させる
ocidObjApp's terminate
end if
###2秒まって
delay 2
###起動
objMe's NSWorkspace's sharedWorkspace()'s launchAppWithBundleIdentifier:strUTI options:1 additionalEventParamDescriptor:(missing value) launchIdentifier:(missing value)
####起動出来なかった場合の再トライ
delay 2
###delay 2で起動出来なかった場合の再トライUTI指定したアプリを格納
set ocidRunningApplicatios to objMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:strUTI
###アプリの数を数える
set numCntFinderApp to (count of ocidRunningApplicatios) as number
if numCntFinderApp = 0 then
objMe's NSWorkspace's sharedWorkspace()'s launchAppWithBundleIdentifier:strUTI options:1 additionalEventParamDescriptor:(missing value) launchIdentifier:(missing value)
end if

ocidRunningApplicatios's release()

#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[AppKit]ファイルを選択した状態でFinderを開く(selectFile: inFileViewerRootedAtPath:)

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application

set strAppPath to "/System/Library/CoreServices/Applications/Directory Utility.app"

set boolSelectFileResults to objMe's NSWorkspace's sharedWorkspace()'s selectFile:strAppPath inFileViewerRootedAtPath:"/"

|

[AppKit]アプリケーションを隠す(hideOtherApplications)

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application


set boolhideResults to objMe's NSWorkspace's sharedWorkspace()'s hideOtherApplications()

|

[AppKit]アプリケーションを指定してファイルを開く

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property objMe : a reference to current application

set strFilePath to "/Library/Documentation/Warranty.rtf" as text

set boolFileOpenResults to objMe's NSWorkspace's sharedWorkspace's openFile:strFilePath withApplication:"TextEdit"

|

より以前の記事一覧

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat 2024 Acrobat AddOn Acrobat Annotation Acrobat AppleScript Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat GentechAI Acrobat JS Acrobat JS Word Search Acrobat Maintenance Acrobat Manifest Acrobat Menu Acrobat Merge Acrobat Open Acrobat PDFPage Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat Print Acrobat Python Acrobat Reader Acrobat Reader Localized Acrobat Reference Acrobat Registered Products Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat URL List Mac Acrobat URL List Windows Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin ConfigCode Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin NetWork Admin Permission Admin Pkg Admin Power Management Admin Printer Admin Printer Basic Admin Printer Custompapers Admin SetUp Admin SMB Admin softwareupdate Admin Support Admin System Information Admin TCC Admin Tools Admin Umask Admin Users Admin Volumes Admin XProtect Adobe Adobe AUSST Adobe Bridge Adobe Documents Adobe FDKO Adobe Fonts Adobe Reference Adobe RemoteUpdateManager Adobe Sap Code AppKit Apple AppleScript AppleScript Duplicate AppleScript entire contents AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Video Applications AppStore Archive Archive Keka Attributes Automator BackUp Barcode Barcode Decode Barcode QR Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome Chromedriver CIImage CityCode CloudStorage Color Color NSColor Color NSColorList com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Desktop Position Device Diff Disk do shell script Dock Dock Launchpad DropBox Droplet eMail Encode % Encode Decode Encode HTML Entity Encode UTF8 Error EXIFData exiftool ffmpeg File File Name Finder Finder Window Firefox Folder FolderAction Font List FontCollections Fonts Fonts Asset_Font Fonts ATS Fonts Emoji Fonts Maintenance Fonts Morisawa Fonts Python Fonts Variable Foxit GIF github Guide HTML Icon Icon Assets.car Illustrator Image Events ImageOptim Input Dictionary iPhone iWork Javascript Jedit Ω Json Label Language Link locationd lsappinfo m3u8 Mail Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Microsoft Fonts Microsoft Office Microsoft Office Link Microsoft OneDrive Microsoft Teams Mouse Music Node Notes NSArray NSArray Sort NSAttributedString NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSGraphicsContext Crop NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMetadataItem NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSet NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSUbiquitous NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth PDF PDF Image2PDF PDF MakePDF PDF nUP PDF Pymupdf PDF Pypdf PDFContext PDFDisplayBox PDFImageRep PDFKit PDFKit Annotation PDFKit AnnotationWidget PDFKit DocumentPermissions PDFKit OCR PDFKit Outline PDFKit Start PDFPage PDFPage Rotation PDFView perl Photoshop PlistBuddy pluginkit plutil postalcode PostScript PowerShell prefPane Preview Python Python eyed3 Python pip QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver Script Editor Script Menu SF Symbols character id SF Symbols Entity Shortcuts Shortcuts Events sips Skype Slack Sound Spotlight sqlite StandardAdditions StationSearch Subtitles LRC Subtitles SRT Subtitles VTT Swift swiftDialog System Events System Settings TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom Weather webarchive webp Wifi Windows XML XML EPUB XML HTML XML LSSharedFileList XML LSSharedFileList sfl2 XML LSSharedFileList sfl3 XML objectsForXQuery XML OPML XML Plist XML Plist System Events XML RSS XML savedSearch XML SVG XML TTML XML webloc XML xmllint XML XMP YouTube Zero Padding zoom