So-net無料ブログ作成
前の30件 | -

So-netのメール設定変更の案内っていつきてたの? [Mac以外]

 

NTT系列のサーバーからの通知で

2018515日実施予定の「POP Before SMTP」認証廃止のための、「SMTP AUTH」認証への設定変更を実施ください。』

というのがありましたが、So-netからもあったのかな?

ということで、設定を再確認してみた。

 

Mac OS X 10.13.4 mail.app (v11.2)にて確認)

 

POP(受信設定)

アカウント: abc1234@qg7.so-net.ne.jp  →  abc1234@qg7.so-net.ne.jp(個別のメールアカウントそのまま)

パスワード:  (以前のまま)

ホスト名 : mail.so-net.ne.jp  →  pop.so-net.ne.jp

      『接続設定を自動的に管理』のチェックは外す(Off)

ポート  : 110  →  995

SSL   : 『TLS / SSL を使用』にチェックを入れる

認証   : パスワード

 

SMTP(送信設定)

アカウント: abc1234@qg7.so-net.ne.jp  →  abc1234@qg7.so-net.ne.jp(そのまま)

パスワード:  (以前のまま)

ホスト名 : mail.so-net.ne.jp  →  mail.so-net.ne.jp(そのまま)

      『接続設定を自動的に管理』のチェックは外す(Off)

ポート  : 587  →  587 (おそらくそのまま)

SSL   : 『TLS / SSL を使用』にチェックを入れる

認証   : パスワード

 

 

POP Before SMTP」認証とは、受信設定(POP)がうまくいったら送信設定(SMTP)も同じIP設定に自動的にする。

SMTP AUTH」認証とは、受信設定と、送信設定を別々におこない、なりすまし送信をやりにくくする。

簡単に書くとこんな感じでしょうか?

 

詳しい案内は下記の公式アドレスからどうぞ

https://support.so-net.ne.jp/supportsitedetailpage?id=000010360

(補足しますよ(5/17))


nice!(1)  コメント(0) 

これ地味にすごくないですか? [Mac以外]

電池などの電力供給無しで動きます。
すごくないですか?
今度作ってみよう。

nice!(1)  コメント(0) 

擬似クリックイベント(できるだけ高速版) [AppleScript辞書はつくれるか?]

で擬似マウスクリックを実現したんですが、なにせ1回の動作するまでに約6秒もかかってたのがどうにかならないかと考えていました。
原因はわかっていたのです。

  from Quartz.CoreGraphics import *;

 

ここの*(ワイルドカード)で、Quartz.CoreGraphicsの中身を全部読み込んでいたことで時間がかかっていました。

知ってました。知っていたんです。でも、必要な部分だけを読み込むやり方がわからなかったのです。

そして、やっとわかりました。

 

 from Quartz.CoreGraphics import CGEventCreateMouseEvent;

 from Quartz.CoreGraphics import CGEventPost;

 from Quartz.CoreGraphics import CGPointMake;

 

この3行に書き直せば万事解決です。

 

以下、作り直しました。

 

 

 

続きはここから。


nice!(1)  コメント(0) 

NSWindowの位置や大きさの情報を次回に引き継ぐ方法 [AppleScript辞書はつくれるか?]

自作のアプリケーションで、ウインドウの位置を次回の起動時でも自動で再現したい場合には、こんな命令があります。
  |対象のウインドウ|'s setFrameAutosaveName_("適当な名前")
 
これだけで、今の位置やサイズ情報を自動で記録してくれた上で、次回に自動で再現してくれます。
 
ただし注意が必要で、ウインドウが開いてからこの命令を実行しても遅いので、開く前の位置で実行する必要があります。
 
つまり、

applicationWillFinishLaunching以降では遅いので、新たに awakeFromNib を使って、できるだけ前の方で使う必要があります。

 

(* Windowの位置を自動で記憶(できるだけ最初に書く) *)

on awakeFromNib()

       theWindow's setFrameAutosaveName_("mainWindow")

end awakeFromNib


nice!(1)  コメント(0) 

Windowを隠したり表示したり? [AppleScript辞書はつくれるか?]

随分前の話ですが、ウィンドウ(NSWindow)を非表示にできないかって話がありました。

windowをHideできないんだけど、どうしたらいいのか?

 


 

随分回り道な記事でしたが、別なやり方をみつけました。

 

Windowを表示から排除する

  orderOut_(Sender)


Windowを最前面に再表示する

  orderFront_(Sender)


 

実験してみた。

 

ウインドウをtheWindowとWindow2の2つ用意して、theWindowに action01 を、Window2 に action02 をセットしそれぞれのアクションに接続しています。

ss1.png


    on action01_(Sender)

        theWindow's orderOut_(me)

    end action01_

 

    on action02_(Sender)

        theWindow's orderFront_(me)

    end action02_ 

 
実行すると2つのボタン付きのWindowが2つ表示されています。(当たり前ですが)

ss2.png

 
ここで、Action1ボタンを押すと
ss3.png
 
Action1ボタンのついたtheWindowが消えましたね。
 
では、Window2のAction2ボタンをクリックしてみましょう。
ss4.png
 
はい。
表示されましたね。
 
使い方が合っているのかは置いといて、自分のニーズに合ったのでつかえるかなぁと...
 
 
ちなみに、orderBack があるのだけれど、使い方がわかりませんでした。


nice!(1)  コメント(0) 

メニューバーを簡単に操作 [AppleScript辞書はつくれるか?]

画面上部のメニューバーを簡単に使用するためにちょっと作ってみた。

例えば、『移動>ダウンロード』をクリックしたい場合...

ss2.jpg


と選ぶところをスクリプトでやらせてみる

ss1.jpg


スクリプト全体

(* modeNo = | 1:メニュークリックの実行 / 2:プロセス名リストを得る | *)

set modeNo to 1

 

if modeNo = 1 then

set processName to "Finder"

set menuList to {"移動", "ダウンロード"}

--activate application processName

my clickMenu(processName, menuList)

 

else if modeNo = 2 then

set ProcessList to my everyProcess()

log ProcessList

end if

 

 

on clickMenu(processName, menuList)

try

set processName to processName as text

on error

return false

end try

if processName is "" then return false

set commandText to "tell application \"System Events\"" & return

set commandText to commandText & "click "

set c to count of menuList

if c > 1 then

repeat with i from 2 to c

set obj to item i of menuList

set commandText to commandText & " menu item \"" & (item i of menuList) & "\" of menu 1 of "

end repeat

end if

set commandText to commandText & "menu bar item \"" & (item 1 of menuList) & "\" of menu bar 1 of "

set commandText to commandText & "application process \"" & processName & "\"" & return

set commandText to commandText & "end tell"

 

log commandText

run script commandText

end clickMenu

 

 

on everyProcess()

tell application "System Events"

set ans to name of every process whose visible is true

set objList to ""

repeat with obj in ans

set objList to objList & obj & return

end repeat

end tell

return objList

end everyProcess

使うときには

set processName to "Finder"

set menuList to {"移動", "ダウンロード"}

の部分を変更してやれば、いろいろ使える。

nice!(1)  コメント(0) 

Acrobat からの情報取得に問題? [AppleScript辞書はつくれるか?]

Adobe Acrobat からの情報取得に問題がありました。


 


Acrobatで一番前の書類情報が知りたい場合があるとします。


ss2.jpg


 


例えば一番前のドキュメントのタイトルバーの名前を得たいとき。


ss1.jpg


 


とスクリプトを書けばタイトル名が得られます。


今回であれば『PDF-1.pdf』と取得できます


 


しかし、そのあと別なドキュメントを最前面にしたとします。


ss3.jpg


その新しく最前面になったドキュメントのタイトル名を取得しようとするします。


ドキュメントが『PDF-3.pdf』に変わっていますから、最前面のドキュメントとして得られるタイトル名は


PDF-3.pdf』となっているはずなのですが・・・


 


ss1.jpg


ふぁっ?


なんで ?!


PDF-1.pdf』のままなのですか?


意味がわかりません。


 


ちょっと、開いている全てのドキュメントを順番に調べてみました。


最初の『PDF-1.pdf』の場合はどうなるかを調べてみました。


ss7.jpg


まぁ、ちゃんと順番に『PDF-1.pdf』が最初に表示されています。


では、後者の場合は?


ss7.jpg


おんなじヤーーーン!


正確には理由はわかりませんが、もしかしたら書類の開いた順番に依存しているのかもしれません。


画面上のメニューで表示されている順番のままで決まっているのかも。最前面の書類の順番が変わってもそのままですからね。


 


では、どうしたら取得できるのか?


考えてみました。


 


どうやら、System EventsのProcessを経由して調べればちゃんと取得できるようです。


ss5.jpg


 


このとき、Acrobatから呼び出す場合は『Document』だったのが、System Eventsでは『Window』になっていることに注意してください。


 


しかし回り道だね。うん。


 


これは、Acrobatに限ったことではないようです。


以前にSafari.appでも似たような現象があったので、その時は気づきませんでしたがこれが使えるかもと今度調べてみることにします。


 


nice!(1)  コメント(0) 

暫定)OS X 10.13で使える擬似マウスコントロール [AppleScript辞書はつくれるか?]

Applescriptでクリックをする動作ってのはなかなか困難になりましたね。
CGEvent を使おうにも、「Object-C」ではなく『CのAPI』とのことなので、どうもそのままでは作業ができない。
他の方が作っていたスクリプトを参考にできる限りのことをやってみた。
しかし、初動に6秒ほどブランクができてしまうのがどうにもならないから、いつかなんとかしたいですね。

(* [使用例]

my movePointer(100, 120) -- |移動|

 

my singleClick(10, 10) -- |クリック|

 

my doubleClick(80, 80) -- |ダブルクリック(注意:なぜかうまく機能しません)|

 

--|複数まとめてクリック|

set multiplePoint to {{15, 10}, {40, 38}}

set interval to 1.0 --|間隔()|

my multipleClick(multiplePoint, interval)

*)

 

my singleClick(10, 10)

 

 

 

(* ポインター(矢印カーソル)の移動 *)

on movePointer(x, y)

set codeText to "import sys; from Quartz.CoreGraphics import *; x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event);"

do shell script "python -c " & quoted form of codeText

return true

end movePointer

 

(* シングルクリック *)

on singleClick(x, y)

set codeText to "import sys; from Quartz.CoreGraphics import *; x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event);"

do shell script "python -c " & quoted form of codeText

return true

end singleClick

 

(* ダブルクリック - *)

on doubleClick(x, y)

set codeText to "import sys; from Quartz.CoreGraphics import *; import time; "

set codeText to codeText & "x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); time.sleep(0.3); "

set codeText to codeText & "event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); "

do shell script "python -c " & quoted form of codeText

return true

end doubleClick

 

(*複数まとめてクリック*)

on multipleClick(inputList, interval)

if (class of inputList) is not list then return false

set codeText to "import sys; from Quartz.CoreGraphics import *; "

if interval > 0 then set codeText to codeText & "import time; "

repeat with p in inputList

set codeText to codeText & "x = float(" & (item 1 of p) & "); y = float(" & (item 2 of p) & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); "

if interval > 0 then set codeText to codeText & "time.sleep(" & interval & "); "

end repeat

log codeText

do shell script "python -c " & quoted form of codeText

return true

end multipleClick

 
from Quartz.CoreGraphics import *;
という呼び出し作業で時間がかかるようです。
Parlならこんなことないのだろうか?

nice!(1)  コメント(0) 

インストールされているアプリケーションを探す(その2) [AppleScript辞書はつくれるか?]

Mac内にインストールされているアプリケーションを全て調べる簡単な方法が見つかりました。

 

do shell script "system_profiler SPApplicationsDataType | grep 'Location:' | cut -d ':' -f2 | sort"

 

システムプロファイラー(system profiler)のアプリケーションデータを調べに行けばよかったのですね。

ものの数秒で全て終わりました。

image180129a.jpg

 

(※本来は『/usr/sbin/system_profiler ...』と書かなければいけないんでしょうね。)

 

 

 

ついでにシステムプロファイラの情報もつけておきます。

 

続きはここからです。


nice!(0)  コメント(0) 

え? 常駐型(Idle)で、小数点以下の時間が使えるの?! [AppleScript辞書はつくれるか?]

 


いつからなのでしょう?



on idle

(* ... *)

return |繰り返すまでの時間|

end idle



という常駐型プログラムの|繰り返すまでの時間|実数値が使えるようになったのは?



以前までは、アイドル状態で繰り返す最小単位が1秒(整数値)までしか使えませんでしたが、いつの間にか0.1秒のような小数点以下(実数値)が使えるようになっていたんですね。



例)


global x, y, z

tell application "Finder"

open home

set bounds of window 1 to {100, 100, 500, 500}

end tell

set {x, y, z} to {100, 100, 1}

 

 

on idle

if z = 1 then

(* 右へ移動 *)

set x to x + 5

if x ≥ 300 then set z to 2

else if z = 2 then

(* 下へ移動 *)

set y to y + 5

if y ≥ 300 then set z to 3

else if z = 3 then

(* 左へ移動 *)

set x to x - 5

if x ≤ 100 then set z to 4

else if z = 4 then

(* 下へ移動 *)

set y to y - 5

if y ≤ 100 then set z to 1

end if

tell application "Finder"

set bounds of window 1 to {x, y, x + 500, y + 500}

end tell

 

return 0.01

end idle

 

 ※『アプリケーション型』で『実行後に終了しない』にチェックして保存してから実行してください。


 


ただ、ウインドウが開いて右>下>左>上と動いて回るだけのプログラムですが、以前なら1周に数分かかると思われるところ、あっという間に1周していきます。



いや、見た目でわかるように組んだだけなので、こんな使い方は普通しないでしょうが、常駐型の最大のネックが解消されていましたね。



 



 


nice!(1)  コメント(0) 

Mac内のアプリケーションを探してリスト化 [AppleScript辞書はつくれるか?]

もっと簡単な方法があるのかもしれないけど、作ってみました。


image1204a.jpg


set limiter to 100 --探すフォルダ数が多いほど深くまで探します (100:5秒・500:約40秒・1000:約90)

--            limiterは、100もあれば主要なのが調べられる。1200もあれば全部調べられると思います

set addressPath to true -- 絶対パス(true) / アプリケーション名のみ(false)

 

 

 

-- main 

set applicationsFolder to (path to (applications folder)) as text --|アプリケーションフォルダ|

set userApplications to ((path to home folder) as text) & "Applications" --|ユーザー内のアプリケーションフォルダ|

set downloadApplications to ((path to home folder) as text) & "Downloads" --|ユーザー内のダウンロードフォルダ|

 

 set aTime to current date

set searchFolder to {applicationsFolder, downloadApplications}

try

   tell application "Finder" to get name of folder userApplications

   set searchFolder to searchFolder & userApplications

end try

set applicationList to ""

set n to 0

set l to 0

tell application "Finder"

   repeat limiter times

      

      set n to n + 1

      if (n mod 20) = 0 then log {n, ("探すフォルダ数" & l & "  増減します")} --進行状況のカウント

      

      (* ファイル取得 *)

      set obj to item 1 of searchFolder

      set filelistObj to every file of folder obj

      repeat with oneItem in filelistObj

         if addressPath then

            set oneText to oneItem as text

         else

            set oneText to (name of file (oneItem as text)) as text

         end if

         if oneText ends with ".app" then set applicationList to applicationList & oneText & (ASCII character 10) --return

      end repeat

      (* 下層フォルダが見つかった場合に上乗せで追加 *)

      set folderObj to every folder of folder obj

      if (count of folderObj) > 0 then

         repeat with oneFolder in folderObj

            set searchFolder to searchFolder & {oneFolder as text}

         end repeat

      end if

      set l to count of searchFolder

      if l > 1 then

         set searchFolder to items 2 thru -1 of searchFolder

      else

         exit repeat

      end if

   end repeat

end tell

 

(* 終了処理 *)

set applicationList to text from paragraph 2 to paragraph -1 of applicationList

if l = 1 then

   log "完了"

else

   log "検索作業は未完了"

   log (count of searchFolder)

end if

log ("所要時間: " & ((current date) - aTime) & "")

log (count of (every paragraph of applicationList))

set applicationList to do shell script ("echo '" & applicationList & "' | sort")

 

applicationList

 





nice!(1)  コメント(0) 

SafariウインドウのView部分のみのスクリーンショットを撮る [AppleScript辞書はつくれるか?]

Safariの最前面のウインドウの上部にある、URL や お気に入り や タブ などを取り除いた「ビュー」の部分だけスクリーンショットを撮ってみる。

ss1.jpg


なんのために?なんて思うでしょうが...

今回はSafariウインドウの上部を取り除いたビュー部分のみが撮影できないか?とやってみました。


 

use scripting additions

use framework "Foundation"

 

 

on run

 

set imageFile to do shell script "echo $HOME/Desktop/imgName.png" --output

my mainScript()

 

end run

 

on mainScript()

tell application "Safari"

activate

set {x1, y1, x2, y2} to bounds of window 1

set viewOriginY to my SafariViewOrigin()

set y3 to y1 + viewOriginY

set {w1, h1} to {(x2 - x1), (y2 - y3)}

end tell

 

set commandText to "screencapture -R" & x1 & "," & y3 & "," & w1 & "," & h1 & " '" & imageFile & "'"

do shell script commandText

return

end mainScript

 

on SafariViewOrigin()

set LogList to ""

tell application "System Events"

tell menu 1 of menu bar item "表示" of menu bar 1 of process "Safari"

set objList to (name of (every UI element))

repeat with i from 1 to (count of objList)

set oneObj to (item i of objList)

if oneObj is not missing value then set LogList to LogList & oneObj & return

end repeat

end tell

end tell

 

set viewOriginY to 38 -- {origin: 0, urlbar:+38, bookmark:+23, tabbar:+23}

if LogList contains "お気に入りバーを非表示" then set viewOriginY to viewOriginY + 23

if LogList contains "タブバーを非表示" then set viewOriginY to viewOriginY + 23

return viewOriginY

end SafariViewOrigin



なぜかrunハンドラや、細かくハンドラを分けていますが、applescript_obj-Cの保存時にエラーを起こさないための逃げ道です。

Object-Cの命令文から変数に代入するなどの式が書かれていると、問題が起きるそうです。

代入する変数をローカル変数にするため、

local |変数| でローカル変数を宣言にするか、ハンドラの中に入れることによって回避できるようです。

 

 

さて本題、

SafariViewOrigin() ハンドラの部分では、Safariの最前面にあるウインドウの大きさを取得し、System Eventsを経由してSafariのメニューから「編集」メニューの中身を得ます。

その中に『お気に入りバーを非表示』(つまり、お気に入りバーが表示されている)と『タブバーを非表示』(つまり、タブバーが表示されてる)を検出します。

ビューの位置はウインドウ上部から URLバー(常時表示)部分を避け、表示されていたら『お気に入り』と『タブバー』を避けてやればたどり着くと言う考えで、その避ける分をReturnで返り値としています。

 

上記の返り値を受け取り、スクリーンショットを撮影させています。

 

そんだけ。

 

問題は、画面から出た部分は切り落とされてしまうんですけどね。

(続き)ちなみに...


nice!(1)  コメント(0) 

画像フォーマットをまとめて変換 [AppleScript辞書はつくれるか?]

画像のフォーマット形式を自動で一括変換するスクリプトを書いてみました。

例えば、PNG --> Jpeg というかんじです。


(*

  1) 画像ファイルをドラック&ドロップすると、指定の画像形式で書き出します。(1つでも複数のファイルでも可)

  2) ダブルクリックで書き出し形式を変更できます。

  3) 変換したファイルはデスクトップに "imageFolder" が自動で作成されて、そこに収められます。

 

  ※このスクリプトを保存するときには必ず「アプリケーション形式」で保存してください。

   アプリケーションにしないと、ドラック&ドロップが働きません。

*)

 

property imageFormat : "PNG"

 

on run --|ダブルクリックで起動した時にこの部分が実行されます|

--|選択するためのリストを表示して、選ばれた情報を記憶します|

set ans to choose from list {"PNG", "JPG", "PDF", "BMP", "TIFF", "PSD"} with prompt "変換したい形式を選択:"

set imageFormat to ans as string

end run

 

on open dropItem --|ドラック&ドロップした時にこの部分が実行されます|

-- display dialog ("画像を[ " & imageFormat & " ]形式で書き出してよろしいですか?" & return & return & "変更したい場合は、この後、アプリケーションをダブルクリックで起動してください")

tell application "Finder"

try

make new folder at desktop with properties {name:"imageFolder"}

end try

set theOutputFolder to (path to desktop folder as string) & "imageFolder:"

end tell

repeat with obj in dropItem

my imageChange(theOutputFolder, obj)

end repeat

end open

 

on imageChange(theOutputFolder, obj)

tell application "Finder" to set fileName to name of obj

if fileName contains "." then

--|ファイル名から拡張子部分を削除して名前だけにする|

set aText to (reverse of characters of fileName) as string

set aText to text ((offset in aText of ".") + 1) thru -1 of aText

set fileName to (reverse of characters of aText) as string

--|指定の形式で書き出し|

tell application "Image Events"

launch

set theImage to open obj

tell theImage

if imageFormat is "PNG" then save as PNG in ((theOutputFolder & fileName & ".png") as string)

if imageFormat is "JPG" then save as JPEG in ((theOutputFolder & fileName & ".jpg") as string)

if imageFormat is "PDF" then save as PDF in ((theOutputFolder & fileName & ".pdf") as string)

if imageFormat is "BMP" then save as BMP in ((theOutputFolder & fileName & ".bmp") as string)

if imageFormat is "TIFF" then save as TIFF in ((theOutputFolder & fileName & ".tif") as string)

if imageFormat is "PSD" then save as PSD in ((theOutputFolder & fileName & ".psd") as string)

end tell

close theImage

end tell

end if

end imageChange

 

 


imageChange.jpg


まあ、よくあるやつですね。

ぶっちゃけ、Automator.appで作った方が早いと言う話も...


nice!(1)  コメント(0) 

新しい CGEventCreateMouseEvent を使うしかないのだが... [AppleScript辞書はつくれるか?]



かわりに「CGEventCreateMouseEvent」と言うのがあるみたいでした。


-----


CGEventCreateMouseEvent

https://developer.apple.com/documentation/coregraphics/1454356-cgeventcreatemouseevent?language=objc

 

 

関数

CGEventCreateMouseEvent

Returns a new Quartz mouse event.

 

SDK

macOS 10.4+

 

Framework

Core Graphics

 

Declaration

CGEventRef CGEventCreateMouseEvent(CGEventSourceRef source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton);

 

Parameters

 

source

別のイベントから取得したイベントソース、またはNULL

 

mouseType

マウスイベントタイプ。 CGEventTypeにリストされている定数の1つを渡します。

 

mouseCursorPosition

グローバル座標におけるマウスカーソルの位置。

 

mouseButton

状態を変更しているボタン。 CGMouseButtonにリストされている定数の1つを渡します。 mouseTypeパラメーターがkCGEventOtherMouseDownkCGEventOtherMouseDragged、またはkCGEventOtherMouseUpでないかぎり、このパラメーターは無視されます。

 

 

戻り値

新しいマウスイベント、またはイベントを作成できなかった場合はNULL イベントが不要になったら、関数CFReleaseを使用してイベントを解放する必要があります。

 

関連項目

-イベントの操作

CGEventGetTypeID

不透明な型CGEventRefの型識別子を返します。

 

CGEventCreate

新しいQuartzイベントを返します。

 

CGEventCreateData

Quartzイベントのフラット化されたデータ表現を返します。

 

CGEventCreateFromData

イベントのフラット化されたデータ表現から作成されたQuartzイベントを返します。

 

CGEventCreateKeyboardEvent

新しいQuartzキーボードイベントを返します。

 

CGEventCreateScrollWheelEvent

新しいQuartzスクロールイベントを返します。

 

CGEventCreateCopy

既存のQuartzイベントのコピーを返します。

 

CGEventCreateSourceFromEvent

既存のQuartzイベントから作成されたQuartzイベントソースを返します。

 

CGEventSetSource

Quartzイベントのイベントソースを設定します。

 

CGEventGetType

Quartzイベントのイベントタイプを返します(たとえば、マウスを左下に移動)。

 

CGEventSetType

Quartzイベントのイベントタイプを設定します(たとえば、マウスを左下に移動)。

 

CGEventGetTimestamp

Quartzイベントのタイムスタンプを返します。

 

CGEventSetTimestamp

Quartzイベントのタイムスタンプを設定します。

 

CGEventGetLocation

Quartzマウスイベントの位置を返します。

 

CGEventGetUnflippedLocation

Quartzマウスイベントの位置を返します。(Get Un flipped)

 

CGEventSetLocation

Quartzマウスイベントの位置を設定します。

 

CGEventGetFlags

Quartzイベントのイベントフラグを返します。

 

CGEventSetFlags

Quartzイベントのイベントフラグを設定します。

 

CGEventKeyboardGetUnicodeString

Quartzキーボードイベントに関連付けられたUnicode文字列を返します。

 

CGEventKeyboardSetUnicodeString

Quartzキーボードイベントに関連付けられたUnicode文字列を設定します。

 

CGEventGetIntegerValueField

Quartzイベントのフィールドの整数値を返します。

CGEventSetIntegerValueField

Quartzイベントのフィールドの整数値を設定します。

 

CGEventGetDoubleValueField

Quartzイベントのフィールドの浮動小数点値を返します。

 

CGEventSetDoubleValueField

Quartzイベントのフィールドの浮動小数点値を設定します。

 


-----


まだこれから研究です。


nice!(1)  コメント(0) 

あれ?仕様が変わった? [AppleScript辞書はつくれるか?]

CGPostMouseEvent が使えない?


ss.jpg

セキュリティー向上のために切り捨てられたのか?

それとも、ただのHigh Sierraのバグなのか?

これが使えないのは、ちと辛いです。


PDFで画像が黒くなるバグも何とかして欲しいが、

もっと危険なのが、

『アプリケーションごとにクリップボードが独立してしまう仕様』(バグなの?)

自分しか起きていないのか、SafariでGoogle翻訳を特殊な仕様方法をすると、テキストエディタ.appにコピペできなくなるバグ。


スクリプトエディターを使って、テキストエディタで選択されたテキストをクリップボードにコピー。

Safariで表示したGoogle翻訳へペースト>自動翻訳>翻訳された文章をクリップボードにコピー。

テキストエディタの選択された部分に上書きするようにペースト・・・・・・できない!


この時に、クリップボードの中身はちゃんと翻訳された文章になっているし、他のエディターやSafariにペースト作業をするとちゃんと文字が出るが、なぜかテキストエディタにはSafariでコピーしたはずのテキストではなく、テキストエディタでコピーしたままの文章が出て来てしまう。

なぜ?


頻繁に再現される上、一度そうなると、アプリケーションの再起動をしなければいけなくなる。

どうなってるの?


ss2.jpg




追記があります>続きはここから。


nice!(1)  コメント(0) 

MacOS High Sierra 脆弱性のニュースより(転載) [Mac日記]

MacRumorsyより
(Google翻訳)
アップル、iOS、macOS、watchOS、tvOSのベータ版に「KRACK」Wi-Fiの脆弱性が既にパッチされている
2017年10月16日月曜日AM11:46 記者:Juli Clover
Appleは今朝、iMoreのRene Ritchieに、現代の多くのWi-Fiネットワークを保護するWPA2 Wi-Fi標準の重大な脆弱性にすでにパッチを当てていると述べている。
このエクスプロイトは、現在開発者が利用できるiOS、tvOS、watchOS、およびmacOSのベータ版で対処されており、まもなく消費者に展開されます。
セキュリティ研究者であるMathy VanhoefのKRACK攻撃概念証明
WPA2の脆弱性は、研究者のMathy Vanhoefによって今朝発表されたもので、AppleのMac、iPhone、iPadsを含む何百万ものルータ、スマートフォン、PC、その他のデバイスに影響を及ぼしています。
攻撃者は、鍵の再インストール攻撃(「KRACK」)を使用して、WPA2プロトコルの弱点を悪用して、ネットワークトラフィックを復号化して、クレジットカード番号、ユーザー名、パスワード、写真、およびその他の機密情報を盗聴することができます。特定のネットワーク構成では、攻撃者はネットワークにデータを注入し、マルウェアやその他の悪意のあるソフトウェアをリモートからインストールすることもできます。
これらの脆弱性はWPA2を使用するすべてのデバイスに影響するため、デバイス製造元が直ちに対応する必要がある重大な問題です。 Appleは大抵の場合、主要なセキュリティの悪用を迅速に修正することが多いため、この特定の問題に既に対処していることは驚きではありません。
HTTPSを使用するWebサイトではセキュリティが強化されていますが、不適切な設定のサイトを悪用してHTTPS暗号化を無効にすることができるため、これは信頼できる保護ではないとVanhoef氏は警告します。
AppleのiOSデバイス(およびWindowsマシン)は、LinuxやAndroidを搭載したMacやデバイスほど脆弱ではない。なぜなら、この脆弱性は、使い捨ての暗号化キーを何度も再送信して再利用することができるという欠陥に依存しているからである。 iOSオペレーティングシステムでは許可されていませんが、まだ部分的な脆弱性が存在します。
パッチを適用すると、iOS、macOS、tvOS、およびwatchOSを実行するデバイスは、まだ脆弱なルータやアクセスポイントに接続している場合でも、KRACK方式を使用して悪用することはできません。それでも、消費者はルータを含むすべてのデバイスのファームウェアアップデートを監視する必要があります。
脆弱性に対処する更新プログラムのリリースに先立って、攻撃を心配しているお客様は、公開Wi-Fiネットワークを避け、できる限りイーサネットを使用し、VPNを使用する必要があります。
タグ:セキュリティ、wi-fi、Appleのセキュリティ

nice!(1)  コメント(0) 

早速macOS X 10.13 High Sierra 入れてみました。 [Mac日記]

ss_0.jpg

ss2.jpg


つづいて、アプリケーションの起動確認をしてみました


Adobe CC 2017シリーズ

・Photoshop CC 2017 は起動しました。

・Illustrator CC 2017 は起動しました。

・Dreamweaver CC 2017 は起動しました。

・Bridge CC 2017 は起動しました。

・InDesign CC 2017 は起動しました。

・Adobe Lightroom は起動しました。

・Acrobat DC は起動しました。

・Adobe Creative Cloud は動作しました。

ss1.jpg



・Total Video Converter Pro.app は起動しました。

・OBS Studio 0.14.2 は起動しました。

・LineIn 2.3.0 は起動しました。

・Unity.app は起動しました。

・nanoem.app は起動しました。

・Steamクライアント は起動しました。

・7 Days to Die は起動しました。

ss3.jpg



いまのところ、ここまでは確認できました。

しかし、他の方の環境で必ず起動するという保証できませんので、

古いOSはTimemachine.appでバックアップを取ってからのmacOSバージョンアップをお勧めします。


そして、現在のmacOS 10.13 High Sierra ではセキュリティーの脆弱性が指摘されています。

AppStoreを通さないアプリケーションの使用は控えてくださいとのこと。

今回の脆弱性は、いつの間にかインストールされてしまうものではなく、インストール時にセキュリティー上のパスワードを要求してきます。

どうしても使用する場合には十分注意をするとともに、理解できないパスワード要求への入力はやめた方が良いと思われます。


nice!(1)  コメント(0) 

新しいMacOSが来たので、つい... [Mac日記]

はーいしえら.jpg

いきなりごめんなさい。

ついやってしまった。


nice!(1)  コメント(0) 

最新のiPhoneを買う理由が見つからない。 [Mac日記]

発表されたばかりの iPhone X & iPhone8 に切り替える理由が見つかりません。
最大の理由が、お値段。
パソコン以下の性能のスマートフォンに、パソコン以上のお金をかける必要がありますか?
その理由の一つに、有機ELを使用したからとか馬鹿馬鹿しい理由があるらしい。他にも、コストの安い部品メーカーから仕入れているはずなのに、今まで以上の値段を設定しているとか、どう考えてもぼったくりである。
すべてのApple製品を手にいれるコレクターならまだしも、ふだん使いの一般ユーザーには全く価値が理解できないスペック。この機種でしか使われていない技術があるわけでもない、アンドロイド携帯ですでに使われている後追い技術ばかりで、買う意味が見つからない。
 某法則発動しかねない状況ですから、今回のiPhoneは失敗でしょうね。
売上高が急降下真っ逆さまで、信頼も真っ逆さま。アップルさん、これから生き残れるのですか?




私個人の意見ですが、今回の新iPhoneは購入せず、一世代前のiPhoneまでで止めておくのが、まだ得策とおもいます。


 

魅力的なスマートフォンって?考えてみよう


nice!(0)  コメント(0) 

三角関数をなんとか使いたい [AppleScript辞書はつくれるか?]

...とおもったので、なんとかかんがえてみた。

以前にも紹介したのですが、それとは別のやり方です。


といっても、JavaScriptのお力を借りるという方法ですがね


(* JavaScriptでの書き方

r = 10.0;  // 半径

a = 30;  // 角度(度)

x = r * Math.cos(a / 180 * Math.PI);  // X座標

y = r * Math.sin(a / 180 * Math.PI);  // Y座標

[x,y]; //結果

*)

 

set r to 10.0

set a to 30 -- 30° -- 角度(度)

 

set jsText to "r = " & r & "; a = " & a & ";

x = r * Math.cos(a / 180 * Math.PI); y = r * Math.sin(a / 180 * Math.PI);

[x,y]; //結果をApplescriptに返す"

 

set {x, y} to run script jsText in "Javascript"

{x:x, y:y}

 結果:

{x:8.660254037844, y:5.0}

 

 いろんなやり方があるもんだと改めて感心してます。

 

参考:

http://piyocast.com/as/archives/3225

http://www.tohoho-web.com/js/math.htm

 

 


nice!(0)  コメント(0) 

マウスの座標を取得しよう [AppleScript辞書はつくれるか?]

マウスポインターの位置座標を取得しようと思いスクリプトを作成。

ついでにその座標を原点にした128×128ピクセルのキャプチャ画像を取り込んでみることにした。

さらにそのキャプチャー画像を利用してマウスポインターの座標の色を取得した。

 

キャプチャ画像を作るのは

do shell script "screencapture -Rx,y,w,h Filespath"

で問題無かった。

 

そこから色を取得するのは

tell class "NSImage" to set aImage to alloc()'s initWithContentsOfFile:(inputImagePath)

set aRawimg to current application's NSBitmapImageRep's imageRepWithData:(aImage's TIFFRepresentation())

set origColor to (aRawimg's colorAtX:x y:y)

set srgbColSpace to current application's NSColorSpace's deviceRGBColorSpace

set aColor to (origColor's colorUsingColorSpace:srgbColSpace)

set aRed to (aColor's redComponent()) * 255

set aGreen to (aColor's greenComponent()) * 255

set aBlue to (aColor's blueComponent()) * 255

set getColor to {aRed as integer, aGreen as integer, aBlue as integer}

で問題なくできたが、

 

マウスポインターの位置を求めるのが難しかった。

マウスの座標データは

set {x:mouseX, y:mouseY} to current application's class "NSEvent"'s mouseLocation()  

で求められるのですが、

画面を原点にしてではなく、が原点の座標が取得されてしまうのです。上下逆なのです。

キャプチャーやクリックなど他の命令はが基本なのに、これだけはなぜ?

しかたがないので、デスクトップの大きさを調べて割り出せばいけそうなので

tell application "Finder" to set {|左上x座標|, |左上y座標|, |右下x座標|, |右下y座標|} to bounds of window of desktop

set mouseY to |右下y座標| - mouseY

として、左上の座標は[x=0, y=0]の原点になるから、右下のy座標を求めてマウスのy座標を引いてやれば、下からの座標が上からに変換できるのでは?

......と思ってた頃もありました。

これは、使用しているモニタが1つしかないという場合だけに限定できるのであれば使えます。

しかし複数のモニタを使用している場合は、原点の位置とデスクトップの大きさがおぼろげになります。

上記の "bounds of window of desktop" では、第1(プライマリ)のデスクトップと第2(セカンダリ)のデスクトップを並べた全体の大きさが求められるため、|右下y座標|を使ってもズレが生じてしまいます。しかも画面の並べ方によっては原点が左上ではなく、どこに行くかわからないのす。

ss1.jpg

結論として、ずれる量を求めて差し引いてあげる方法でやってみるのがいいかなと、作ってみました。

  

 

  


Applescript ここから


nice!(1)  コメント(0) 

macではないが危険?!

なんか、肌がチクチクすると思ったら・・・


スクリーンショット 2017-05-31 11.24.41.png




nice!(1)  コメント(0) 

日本語入力 [Mac日記]

MacOS10.12になってから、ずっと日本語入力に悩んでいました。

アップデートがいくつ来ても、全く改善されない日本語入力。


もう諦めて、Google日本語入力に逃げました。


ss.jpg


いろんなものが解決しました。


入力するたびにカラーホイールが廻り、入力がキャンセルされるとか、日本語が入力ができなくなるとかありましたが、

スッキリしました。


あんまり、Googleさんは入れたくなかたのですがね。


でも入れたおかげで仕事効率が上がりました。よ。


ダウンロードはこちら> https://www.google.co.jp/ime/index.html 



nice!(3)  コメント(0) 

Macにも対応、アニメーションツール。 [Mac日記]

ニコニコ動画にで紹介されていましたツールです。

ss1.png



Mac Windows両方に対応してるとのことでした。

nice!(3)  コメント(0) 

WebKitを使う [AppleScript辞書はつくれるか?]


(* WebKit *) 

  (* フレームワーク「Webkit.framework」の追加が必要 *)

ss1.jpg



(* 定義 *)

property webview1 : missing value


(* ページ(または画像)を表示 *)

set locationURL to "http://start-mac.blog.so-net.ne.jp"

webview1's setMainFrameURL_(locationURL)

-- web page : "http://start-mac.blog.so-net.ne.jp"

-- URL: "file:///Users/username/Desktop/test.html"

-- path:"/Users/username/Desktop/test.html"

 など


(* 表示中のページタイトルを取得 *)

set theWebTitle to webview1's mainFrameTitle()


(* 表示中のURLを取得 *)

set theWebURL to webview1's mainFrameURL()


(* ページに表示されているテキストを取得 *)

set theWebText to webview1's mainFrame's DOMDocument's documentElement's outerText()


(* ページのソースを取得 *)

set theWebSource to webview1's mainFrame's DOMDocument's documentElement's outerHTML()



(* ローディングの終了を確認 *)

  set noter1 to current application's NSNotificationCenter's defaultCenter()

  noter1's addObserver_selector_name_object_(me, "webLoaded:", current application's WebViewProgressFinishedNotification, user_webview)


on webLoaded_(aNotification) --ハンドル名の末尾の":"と"_"の扱いに注意!

    log "Loading Finish"

end webLoaded_ 



(* 選択しているテキストを取得 *)

set ans to webview1's mainFrame's frameView's documentView's selectedString()

set ans to ans as unicode text


webview1's mainFrame's frameView's documentView's selectAll()   --|全て選択|

webview1's mainFrame's frameView's documentView's deselectAll()   --|選択を全て解除|


webview1's mainFrame's reload()   --|リロード|

 

 

ページを表示しないエラーがあるので...


nice!(2)  コメント(0) 

Macのウイルスのチェック [Macのウイルス対策]

macでもアンチウイルスソフトをインストールしておけば済むのだが、していないマシンのチェックをするなら


--applescript

(* 削除設定 *)

set deleteCommand to false (* Mac.BackDoor.iWormの削除するなら false を true *)

(* Flashbackの削除はわからない *)


set commandText to ""

(* トロイの木馬Flashbackの確認 *)

set f to false

try

do shell script "defaults read /Applications/Safari.app/Contents/Info LSEnvironment"

on error message

if (message contains "does not exist") then

try

do shell script "defaults read ~/.MacOSX/environment DYLD_INSERT_LIBRARIES"

on error message

if not (message contains "does not exist") then set f to true

end try

else

set f to true

end if

end try

if f then

set commandText to "トロイの木馬「Flashback」に感染の疑い" & return

else

set commandText to "Ok :  No [Flashback]" & return

end if


(* ワームMac.BackDoor.iWormの確認 *)

try

tell application "Finder" to name of folder "Library:Application Support:JavaW" of startup disk

set commandText to commandText & "ワーム[Mac.BackDoor.iWorm]に感染の疑い" & return

if deleteCommand then

try

do shell script "rm /Library/Application Support/JavaW/JavaW /Library/LaunchDaemons/com.JavaW.plist"

set commandText to commandText & " Mac.BackDoor.iWormの削除成功" & return

on error

set commandText to commandText & " Mac.BackDoor.iWormの削除失敗" & return

end try

end if

on error

set commandText to commandText & "Ok : No [Mac.BackDoor.iWorm]" & return

end try


(* 結果ログ *)

commandText


--参考サイト http://minto.tech/mac-wiruscheck/


これでよいじゃろか?
もっとも、メジャーな2種類のウイルスしか確認していませんが・・・。


nice!(3)  コメント(0) 

うん、もういい。わかった。 [Mac日記]

再発した。

     nihongoErr.jpg

日本語うまく使えなくなってしまったようですね。Macは。


「よう」と入れて『けよう』って返ってくるのはなに?

nice!(3)  コメント(0) 

Table View(テーブルビュー)を使う(6) [AppleScript辞書はつくれるか?]

Table Viewで編集したデータを取得する場合は?


 ss.jpg




Table Viewへデータを送る場合は、

 

set theData to {{name:"太郎", kana:"taro"},{name:"花子", kana:"hanako"}}

set my tableView to theData


で送れるけれど、

編集をしたデータを取得したい場合はどうしたらいいか?


set theData to my tableView

 

としたら取得できない。(編集前のデータのままになってしまう)


なので、Table Viewのオブジェクトからという考えではなく、array controller から取得するのが良いみたい。


set theData to arrayController's arrangedObjects()

 

 

 

こんなかんじ。

 

 


nice!(3)  コメント(0) 

特定の場所の検索をする [AppleScript辞書はつくれるか?]

ただ特定の場所(フォルダ内)の検索をしたい。それだけ

set |検索先のフォルダ| to POSIX path of (choose folder with prompt "フォルダを選択:")


set |検索名| to text returned of (display dialog "検索する文字を入力してください" default answer "")


do shell script "du -a \"" & |検索先のフォルダ| & "\" | grep \"" & |検索名| & "\" | cut -f2"





続きはここから


nice!(2)  コメント(0) 

きっと役に立たない記事(3) [AppleScript辞書はつくれるか?]

日本語に使える化けないエンコードはどれだろう?
ちょっと違う方向から調べてみる。

数字,ひらがな,濁点・半濁点,漢字,第二水準漢字、を一部選び、エンコードしたのちに元のエンコードに戻す作業をしてみて、その2つのデータをダンプして比較してみた。

ss1.jpg

エラーが出たもの、逆エンコードで元に戻らなかったものは削除されています。
いちぶ、どうしてそのエンコードで日本語が表示できているのか疑問な部分もありますが、おおよそそこんなかんじに。

続きはここから。


nice!(0)  コメント(0) 
前の30件 | -