Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

デスクトップを隠すv6

Posted on 2月 24, 2018 by Takaaki Naganoya

Edama2さんから投稿していただいた、デスクトップを隠すAppleScriptアプレットです。

資料や本のために画面キャプチャを行うさい、デスクトップを隠しておく(アイコンとかデスクトップピクチャとか)必要があるケースがあります。そのような用途のために作られたものです。

–> download デスクトップを隠すv6

AppleScript名:デスクトップを隠すv6
script HideDesktop
  use AppleScript version "2.4"
  
use scripting additions
  
use framework "Foundation"
  
use framework "Carbon" — AEInteractWithUser() is in Carbon
  
  
#GUI部品のtag
  
property _TAG_OF_COLOR_WELL : 501
  
property _TAG_OF_SLIDER : 502
  
property _TAG_OF_BUTTON : 503
  
  
on run
    if current application’s AEInteractWithUser(-1, missing value, missing value) is not equal to 0 then return
    
    
#色データを復元
    
if my _color_data = missing value then
      set myColor to current application’s NSColor’s colorWithCalibratedRed:0.2 green:0.3 blue:0.5 alpha:1
    else
      set str to current application’s NSString’s stringWithString:(my _color_data)
      
set enc to current application’s NSISOLatin1StringEncoding
      
set strData to str’s dataUsingEncoding:(enc)
      
set myColor to current application’s NSUnarchiver’s unarchiveObjectWithData:strData
    end if
    
    
activate
    
my makeSettingWindow(myColor, my _alpha_value, my _is_show_icon)
  end run
  
  
on quit
    repeat with aWin in (current application’s NSApp’s |windows|())
      set aSound to missing value
      
if aWin’s styleMask() = current application’s NSBorderlessWindowMask then
        try
          tell current application’s NSSound’s alloc()
            tell initWithContentsOfFile_byReference_("/Applications/Messages.app/Contents/Resources/Default.aiff", true)
              set dTime to currentTime()
              
play()
              
set aSound to it
            end tell
          end tell
        end try
      end if
      (
my closeWin:(aWin))
      
if aSound ≠ missing value then delay (dTime + 0.5)
    end repeat
    
–continue quit
  end quit
  
  
on makeSettingWindow(myColor, alphaVal, isShowIcon)
    
    
#NSView
    
tell current application’s NSView’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(0, 0, 360, 210))
        setNeedsDisplay_(true)
        
set aView to it
      end tell
    end tell
    
    
#Labelをつくる
    
tell current application’s NSTextField’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(60, 150, 80, 20))
        setEditable_(false)
        
setStringValue_("背景色:")
        
setDrawsBackground_(false)
        
setBordered_(false)
        
setAlignment_(current application’s NSRightTextAlignment)
        
aView’s addSubview:it
      end tell
    end tell
    
tell current application’s NSTextField’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(60, 110, 80, 20))
        setEditable_(false)
        
setStringValue_("透明度:")
        
setDrawsBackground_(false)
        
setBordered_(false)
        
setAlignment_(current application’s NSRightTextAlignment)
        
aView’s addSubview:it
      end tell
    end tell
    
tell current application’s NSTextField’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(60, 70, 80, 20))
        setEditable_(false)
        
setStringValue_("オプション:")
        
setDrawsBackground_(false)
        
setBordered_(false)
        
setAlignment_(current application’s NSRightTextAlignment)
        
aView’s addSubview:it
      end tell
    end tell
    
#Color Well
    
tell current application’s NSColorWell’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(140, 150, 180, 20))
        setColor_(myColor)
        
setTag_(my _TAG_OF_COLOR_WELL)
        
aView’s addSubview:it
      end tell
    end tell
    
#スライダー
    
tell current application’s NSSlider’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(140, 110, 180, 20))
        setMaxValue_(100)
        
setMinValue_(10)
        
–setNumberOfTickMarks_(25)
        
setKnobThickness_(1)
        
setAllowsTickMarkValuesOnly_(true)
        
setTickMarkPosition_(current application’s NSTickMarkBelow)
        
setIntValue_(alphaVal)
        
setTag_(my _TAG_OF_SLIDER)
        
aView’s addSubview:it
      end tell
    end tell
    
#アイコンを隠すか
    
tell current application’s NSButton’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(140, 70, 180, 20)) — pullsDown:false
        setButtonType_(current application’s NSSwitchButton)
        
setTitle_("アイコンも隠す")
        
setState_(isShowIcon)
        
setTag_(my _TAG_OF_BUTTON)
        
aView’s addSubview:it
      end tell
    end tell
    
#OK/Cancel Button
    
tell current application’s NSButton’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(110, 10, 90, 40))
        setButtonType_(current application’s NSMomentaryLightButton)
        
setBezelStyle_(current application’s NSRoundedBezelStyle)
        
setTitle_("Cancel")
        
setTarget_(me)
        
setAction_("clicked:")
        
setKeyEquivalent_(ASCII character (27))
        
aView’s addSubview:it
      end tell
    end tell
    
tell current application’s NSButton’s alloc()
      tell initWithFrame_(current application’s NSMakeRect(210, 10, 90, 40))
        setButtonType_(current application’s NSMomentaryLightButton)
        
setBezelStyle_(current application’s NSRoundedBezelStyle)
        
setTitle_("OK")
        
setTarget_(me)
        
setAction_("clicked:")
        
setKeyEquivalent_(return)
        
aView’s addSubview:it
      end tell
    end tell
    
    
set aTitle to current application’s name as text
    
    
#Window
    
set aScreen to current application’s NSScreen’s mainScreen()
    
set aFrame to aView’s frame()
    
set aBacking to current application’s NSTitledWindowMask
    
set aDefer to current application’s NSBackingStoreBuffered
    
tell current application’s NSWindow’s alloc()
      tell initWithContentRect_styleMask_backing_defer_screen_(aFrame, aBacking, aDefer, false, aScreen)
        –setLevel_(current application’s NSNormalWindowLevel)
        
setTitle_(aTitle)
        
setDelegate_(me)
        
setDisplaysWhenScreenProfileChanges_(true)
        
setHasShadow_(true)
        
setIgnoresMouseEvents_(false)
        
setOpaque_(false)
        
setReleasedWhenClosed_(true)
        
setContentView_(aView)
        
|center|()
        
makeKeyAndOrderFront_((me))
      end tell
    end tell
  end makeSettingWindow
  
  
#ボタンをクリックした時
  
on clicked:aSender
    #カラーパネルを閉じる
    
tell current application’s NSColorPanel
      if (sharedColorPanelExists() as boolean) then sharedColorPanel()’s |close|()
    end tell
    
#設定値の読み込み
    
tell aSender’s superview()
      set myColor to viewWithTag_(my _TAG_OF_COLOR_WELL)’s |color|()
      
set alphaVal to viewWithTag_(my _TAG_OF_SLIDER)’s intValue()
      
set isShowIcon to viewWithTag_(my _TAG_OF_BUTTON)’s state()
    end tell
    
#Windowを閉じる
    
my closeWin:(aSender’s |window|())
    
    
set aTitle to aSender’s title() as text
    
if aTitle = "OK" then
      #デスクトップを隠す
      
set {myColor, my _alpha_value, my _is_show_icon} to my makeCoverWindow(myColor, alphaVal, isShowIcon)
      
      
#NSColor–>NSData–>NSString
      
set aData to current application’s NSArchiver’s archivedDataWithRootObject:(myColor)
      
set enc to current application’s NSISOLatin1StringEncoding
      
set str to current application’s NSString’s alloc()’s initWithData:(aData) encoding:enc
      
set my _color_data to str as text
      
    else if aTitle = "Cancel" then
      tell current application to quit
    end if
  end clicked:
  
  
#ウィンドウを作成
  
on makeCoverWindow(myColor, alphaVal as integer, isShowIcon as boolean)
    
    
set aScreen to current application’s NSScreen’s mainScreen()
    
set screenFrame to aScreen’s frame()
    
set aBacking to current application’s NSBorderlessWindowMask
    
set aDefer to current application’s NSBackingStoreBuffered
    
    
set aHeight to screenFrame’s |size|’s height
    
set aWidth to screenFrame’s |size|’s width
    
set aFrame to current application’s NSMakeRect(0.0, aHeight, aWidth, aHeight)
    
    
#Image
    
tell current application’s NSImage’s alloc()
      tell initWithSize_(screenFrame’s |size|)
        lockFocus()
        
set theColor to myColor’s colorWithAlphaComponent:(alphaVal / 100)
        
tell current application’s NSBezierPath’s bezierPath()
          appendBezierPathWithRect_(screenFrame)
          
theColor’s |set|()
          
fill()
        end tell
        
unlockFocus()
        
set anImage to it
      end tell
    end tell
    
    
#View
    
tell current application’s NSImageView’s alloc()
      tell initWithFrame_(aFrame)
        setNeedsDisplay_(true)
        
setImage_(anImage)
        
set aCustView to it
      end tell
    end tell
    
    
#Window
    
tell current application’s NSWindow’s alloc()
      tell initWithContentRect_styleMask_backing_defer_screen_(aFrame, aBacking, aDefer, false, aScreen)
        
        
#アイコンの表示
        
if not isShowIcon then
          setLevel_(current application’s kCGDesktopWindowLevel)
        else
          setLevel_(((current application’s kCGBackstopMenuLevelKey) – 100)) –>メニューバーの影のため100ひく
        end if
        
setBackgroundColor_(current application’s NSColor’s clearColor())
        
setContentView_(aCustView)
        
setDelegate_(me)
        
setDisplaysWhenScreenProfileChanges_(true)
        
setHasShadow_(false)
        
setIgnoresMouseEvents_(false)
        
setOpaque_(false)
        
setReleasedWhenClosed_(true)
        
makeKeyAndOrderFront_((me))
        
        
#Sound
        
try
          (current application’s NSSound’s alloc()’s initWithContentsOfFile:"/Applications/Messages.app/Contents/Resources/Invitation Accepted.aiff" byReference:true)’s play()
        on error the error_message number the error_number
          (current application’s NSSound’s soundNamed:"Purr")’s play()
        end try
        
        
setFrame_display_animate_(screenFrame, true, true)
      end tell
    end tell
    
    
return {myColor, alphaVal, isShowIcon}
  end makeCoverWindow
  
  
#close win
  
on closeWin:aWindow
    repeat with n from 10 to 1 by -1
      (aWindow’s setAlphaValue:n / 10)
      
delay 0.02
    end repeat
    
aWindow’s |close|()
    
delay 0.02
  end closeWin:
end script

#設定値
property _color_data : missing value
property _alpha_value : 100
property _is_show_icon : true

on run
  run of HideDesktop
end run

on quit
  quit of HideDesktop
  
continue quit
end quit

★Click Here to Open This Script 

More from my site

  • AppleScript Studioの歴史AppleScript Studioの歴史
  • FileMaker Pro Scripting Book with AppleScript発売開始FileMaker Pro Scripting Book with AppleScript発売開始
  • 1D Listを文字列長でソート v31D Listを文字列長でソート v3
  • 配列の要素を逆順に取得する配列の要素を逆順に取得する
  • Pagesで選択中の表オブジェクトのデータ行を逆順にPagesで選択中の表オブジェクトのデータ行を逆順に
  • MecabCocoaで形態素解析MecabCocoaで形態素解析
(Visited 35 times, 1 visits today)
Posted in System | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 13, Ventura(継続更新)
  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • UI Browserがgithub上でソース公開され、オープンソースに
  • macOS 13 TTS Voice環境に変更
  • Xcode 14.2でAppleScript App Templateを復活させる
  • 2022年に書いた価値あるAppleScript
  • ChatGPTで文章のベクトル化(Embedding)
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた
  • 従来と異なるmacOS 13の性格?
  • 新発売:CotEditor Scripting Book with AppleScript
  • macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting
  • AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
  • macOS 13でNSNotFoundバグふたたび
  • macOS 12.5.1、11.6.8でFinderのselectionでスクリーンショット画像をopenできない問題
  • ChatGPTでchatに対する応答文を取得
  • 新発売:iWork Scripting Book with AppleScript
  • Finderの隠し命令openVirtualLocationが発見される
  • macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに
  • あのコン過去ログビューワー(暫定版)

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (277) 12.0savvy (185) 13.0savvy (55) CotEditor (60) Finder (47) iTunes (19) Keynote (98) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (56) Pages (37) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKUserScriptInjectionTimeAtDocumentEnd (18) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC