X



AppleScript アップルスクリプト 質問、発表 6
■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定
垢版 |
2013/12/21(土) 21:50:45.07ID:1PJJFexL0
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
OSバージョンも忘れずに。

■参考
AppleScript Language Guide
https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
TN2065: do shell script
https://developer.apple.com/library/mac/technotes/tn2065/
AppleScript: The Language of Automation
http://www.macosxautomation.com/applescript/
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
鳶嶋工房 / AppleScript
http://tonbi.jp/AppleScript/
AS Hole(AppleScriptの穴)
http://piyocast.com/as/
■過去スレ
1 http://pc11.2ch.net/test/read.cgi/mac/1174045850/
2 http://pc11.2ch.net/test/read.cgi/mac/1197443062/
3 http://pc11.2ch.net/test/read.cgi/mac/1223026902/
4 http://anago.2ch.net/test/read.cgi/mac/1256127156/
5 http://anago.2ch.net/test/read.cgi/mac/1330350325/
0643名称未設定
垢版 |
2015/11/22(日) 04:22:29.35ID:CSZfjbIO0
ああ、BTTももちろんありだね
ランチャー系でメジャーどころといえばほかにもLaunchBar、Alfredなど
参考までに自分はKarabiner、BTT、Spark、LaunchBarを併用しているよ
Sparkはもうやめたいんだけど移行がめんどい(大事なことなので(ry
0644名称未設定
垢版 |
2015/11/22(日) 11:19:29.93ID:wjYxrbbL0
>上記手順で作成したアップルスクリプトにショートカットを割り当てているのですが、もうちょっと効率的にできないのでしょうか?

↑を自動化しちゃえばいいんじゃねえ、なんつって

FastScripts
Instant access to your scripts, by keyboard shortcut or menubar.
Free for 10 keyboard shortcuts. $9.95 for unlimited.

10.6以降対応、10.10の話はリリースノートに載ってる
10.11はわからん
0645名称未設定
垢版 |
2015/11/22(日) 19:11:06.31ID:nrMXMOab0
>>641
レスありがとう。

karabiner からAppleScript実行できたのか。
知らなかった。
これができれば、>>640 の手続きを大分省略できる。
0646名称未設定
垢版 |
2015/11/24(火) 22:10:39.87ID:lOO4yht00
コマンドの 引数に何を指定したらいいかどこを見たら良いのでしょうか?
用語説明見てもちゃんと書いてないのが多く困ってます。

例えば、duplicate コマンドの引数に何を指定するかエイリアス? posixパス? それとも hfs 形式?
移動先はフルパスを指定するのか、移動先フォルダを指定するのかとかも書いてなくて、簡単そうなとこで詰まりまくりです
0647名称未設定
垢版 |
2015/11/24(火) 22:55:00.77ID:vOhllC2P0
>>646
>duplicate v : Duplicate one or more object(s)
>duplicate specifier : the object(s) to duplicate
>[to location specifier] : the new location for the object(s)

>移動先フォルダを指定するのか
これは書いてあるじゃん
まあ指定しなかったらどうなるかは書いてないけど
常識の範疇というかちょっと試せばわかること

>何を指定するか
この場合もそうだが、たいてい必要な specifier は alias や file だわな
path 自体はただのテキストにすぎないので、コマンドは場所として認識しない
君の書いてるPOSIX pathやなんかも最終的には変換して渡すわけだね
>set tarFolderPath to "/hoge/hage" --これはただのテキスト
>set tarFolder to POSIX file tarFolderPath --これでファイルを参照できる
>get POSIX path of tarFolder --これで tarFolderPath と同じものが返る

逆に言えば、コマンドに渡すまではどの形で管理しようと自由
テキストであることを生かしてホイホイ変形できる
自分なんかは POSIX path がわかりやすいし何かと便利なのでそれで統一してる
慣れるまでは全部下記のようにして渡すと謎の行き詰まりも減るかと
(面倒なことに、file や folder と alias の違いが問題になることがある)
>set tarFolder to tarFolder as alias --つまり (POSIX file "/hoge/hage") as alias
0648名称未設定
垢版 |
2015/11/24(火) 23:02:46.20ID:vOhllC2P0
よく見たら質問の答えになってないな。すまん
>どこを見たら
確かに用語辞書だけ見てもちんぷんかんぷんだと思う
暗黙の前提がけっこうあるからね
その辺は>>1にあるサイトを眺めてつかんでいくしかないよ
0649名称未設定
垢版 |
2015/11/25(水) 01:16:34.40ID:7NRDBOtT0
>>647 役に立つレスありがとうございます

下記のコードで srcFile の指定を tell ブロックの中でやるとエラーになるのはなぜでしょうか?

今日一日の数時間の作業の成果。作業効率化のはずが非効率化してる。
デスクトップにファイルコピーするだけで数時間かかった。

-- このファイルをデスクトップにコピー
property bkItemFullpathText : "/Users/Tomo/Desktop/kopitesuto.scpt"

set srcFile to (POSIX file bkItemFullpathText)
set destDir to (path to desktop folder)

tell application "Finder"
log "----- 3 finder で 処理開始-----"
-- これがだめ — 上書きしない設定に変更できずこまった
-- duplicate srcFile to destDir with replacing false

-- 下記2つは動く
-- duplicate srcFile to destDir without replacing
duplicate srcFile to destDir with replacing
end tell
0650名称未設定
垢版 |
2015/11/25(水) 02:34:16.75ID:TCaMN6bP0
shellのほうが楽そうだな
0651名称未設定
垢版 |
2015/11/25(水) 11:14:05.31ID:gljbLSkV0
>>649
set srcFile to bkItemFullpathText as POSIX fileにすればtell〜内で動く。

それより、AでできるのにBの記述にできなくて何が問題?
A : duplicate srcFile to destDir without replacing
B : duplicate srcFile to destDir with replacing false
0652名称未設定
垢版 |
2015/11/25(水) 12:08:05.39ID:DGBNKIrw0
>>649>>651
ちゃんと用語辞書読めばそんな書き方はないとわかる
> [replacing boolean] : Specifies whether or not to replace items (ry
B はよけいな with がいかん
> duplicate srcFile to destDir replacing false
こう書けば普通に動く(コンパイル時に without の記法に直されるが)

どうでもいいが、without の記法が気に入らないならこうすればコンパイル通る
> set isFalse to false
> duplicate srcFile to destDir replacing isFalse
0653名称未設定
垢版 |
2015/11/26(木) 22:25:10.93ID:EikmtUER0
>>651
レスありがとうございます。

理由がよくわからないのですが、as を使わないと finder のfile オブジェクトととして解釈されて動かないということでしょうか?

AppleScriptの最大の問題点はパスの指定。エイリアス、posix 、ファインダーのファイル、Mac 形式とかあって意味不明すぎる。

AppleScript は一つの単語に複数の意味があって混乱する。
一つの単語に複数の意味、使い方があるような言語を使ってると馬鹿になるよ。
0654名称未設定
垢版 |
2015/11/27(金) 00:07:57.81ID:BPNuZ3Dr0
な、相手にしないほうが良かっただろ
0656名称未設定
垢版 |
2015/11/27(金) 17:20:00.86ID:5UEcuuEY0
わろた

>>653=>>646とは限らないがマジレスすると
パスの仕様は意味不明でもなんでもない
ASの問題点は存在するが、お前はそれを指摘できるレベルに達してないよw
「複数の意味」を問題にするなら、せめてtellブロックでの用語衝突などを挙げてくれ
0657名称未設定
垢版 |
2015/11/27(金) 21:22:43.35ID:/EMo4Pm00
理解してない子ほど、自分の無能を棚に上げて文句言うやつか
0658名称未設定
垢版 |
2015/12/08(火) 02:50:30.52ID:VLHPwPJ50
用語辞書のスイーツ(笑) ってなんなのでしょうか。

クラスの説明が複数スイーツに分かれてたりして分かりづらい。
0659名称未設定
垢版 |
2015/12/08(火) 11:09:05.09ID:lB4YAlKM0
都会の隠れ家的お店で、頑張った等身大の自分へ与えるご褒美です。
0660名称未設定
垢版 |
2015/12/09(水) 18:01:19.26ID:yPmT8tDJ0
基本的なとこでつまりまくるので、Kindleで hanaan著"Learn AppleScript "を買った。

4600円したが内容は素晴らしい。
余計な前置きが多いのと、後で説明する、みたいなスタイルがうざいのがたまにキズ。
0661名称未設定
垢版 |
2015/12/12(土) 13:30:37.00ID:kUyJIXaw0
>>658
標準コマンドか否かみたいな感じ
基本的に見たいものは検索で探すから無視無視
0662名称未設定
垢版 |
2016/01/01(金) 09:06:18.03ID:BJsCGmtz0
display dialog "Happy New Year!"
0663名称未設定
垢版 |
2016/01/04(月) 00:18:42.48ID:Fh/KFYvI0
なーんか最近スクリプトエディタがよく落ちる
ちょっと前にJavaScriptで間違った文を実行して落ちて以来、落ち癖がついちゃったような
今はAppleScriptのコンパイル済み.scptを開いた時に多いけど、エディタ単独で開いても時々
OS X 10.11.2 (15C50)
スクリプトエディタ 2.8.1 (183.1)
0664名称未設定
垢版 |
2016/01/04(月) 03:03:47.04ID:85GhQRWi0
リポートとコンソール確認すれば
0665名称未設定
垢版 |
2016/01/05(火) 01:26:25.47ID:p4h3jkgn0
xcode 使ったら、ブレークポイントでとめて、タップで変数の中身確認とかできないの?

スクリプトエディタだとブレークポイント作れないよね?
0666名称未設定
垢版 |
2016/01/05(火) 08:47:52.77ID:w5XIhSln0
使った事無いけどLateNightのScript Debuggerとか?
0668名称未設定
垢版 |
2016/01/21(木) 00:05:03.47ID:DbKP7fYg0
下記は重複しない保存先パスを作成する script の一部です。
日付_連番_ファイル名  このような形式のファイル名を作成しています。
exists コマンドの挙動がおかしく、常に false が返ってます。

set i to 2
repeat
tell application
0669名称未設定
垢版 |
2016/01/21(木) 00:32:22.07ID:4rMo+FcO0
構文エラー
expression、property または key form など があるべきところですが end of script が見つかりました。
0670名称未設定
垢版 |
2016/01/21(木) 01:45:11.58ID:DbKP7fYg0
set i to 2
repeat
tell application "Finder" to set isItemExists to exists (my POSIX file fullpathText)
if {isItemExists = false} then
log "存在しない"
exit repeat
else -- 存在するときの処理
set k to (i as text)
-- date_k_baseName -- /Users/Yuu/Desktop/2016_01_21_test.txt
set fullpathText to destDir & baseDateStr & k & "_" & baseNameStr
end if
set i to i + 1
end repeat
return fullpathText
0671名称未設定
垢版 |
2016/01/21(木) 02:03:39.34ID:DbKP7fYg0
>>668 です。文法が怪しいところをハンドラにして書き方変えたら自己解決しました。
>>670はif文がなぜか常に "存在しない" の方に行く。

下記なら理由はよくわからないがうまくいく。
on fileExists(fullpathText)
tell application "System Events"
if exists file fullpathText then
return true
else
return false
end if
end tell
end fileExists
0672名称未設定
垢版 |
2016/01/21(木) 09:41:56.94ID:sgs/8VkY0
if {isItemExists = false} then <- なんで{}とか使ってんの?
そもそも閉じる必要もないし。
0673名称未設定
垢版 |
2016/01/21(木) 11:22:21.54ID:ID6h33Zz0
以前AppleScriptの仕様に文句言ってた人では
見切りつけて使うのをやめたんじゃなかったのか
0674名称未設定
垢版 |
2016/01/25(月) 23:43:26.79ID:2FBTd4al0
作業完了時にチャリーンと音を鳴らすにはどうするのが良いでしょうか?

下記のしっくりこない対策しか思いつきません。

・ beep
音が気にくわない。

・ AppleScriptobjc で NSSound クラスを使う。
本に載ってる。コピペでそのまま使えそう。
でも、なにか大げさで違和感のある対策。

・ iTunes でサウンドファイル再生。
大げさ、重い。
0676名称未設定
垢版 |
2016/01/26(火) 00:07:09.92ID:OaX1S4kQ0
通知ありでも良ければ
display notification with title "終了しました" sound name ""

ユーザのライブラリ/Soundsに音源ファイル入れておけばOK
sound nameに拡張子無しのファイル名で音が出る。
名前が違えば通常の通知音が鳴る。
0677名称未設定
垢版 |
2016/01/26(火) 03:37:54.07ID:UV5S+svp0
>>675 >>676
役に立つ回答有り難うございます。

できました。
do shell script "afplay /System/Library/Sounds/Ping.aiff"
0678名称未設定
垢版 |
2016/01/29(金) 21:32:54.40ID:uUQj78VG0
>>677
afplay -v 0.1 とかでボリューム調整な
うちもそうやって通知音出してるわ
0679名称未設定
垢版 |
2016/01/30(土) 23:18:50.99ID:IOL1PbEa0
起動してウインドウ位置とウインドウサイズを固定するAutomatorのアプリをApple Scriptで作りたいのですが、一部のアプリで
tell application "アプリ名"
activate
tell front window
set bounds to {0, 0, 0, 0}
end tell
end tell
でエラーウインドウが出るだけでアプリの起動もできません。

他の方法として
tell application "System Events"
を使えばいいようですが、どんな風にかけて思った動作がするにか想像もできません…
どなたか助けていただけませんか。
0680名称未設定
垢版 |
2016/01/30(土) 23:46:59.63ID:LtqeZOXR0
「一部のアプリ」でなんだかよくわからない「エラーウインドウ」ね……
エスパー募集かな?
0681名称未設定
垢版 |
2016/01/30(土) 23:59:59.45ID:IOL1PbEa0
https://i.imgur.com/4aXhmWl.png
こんなウインドウしか出てこないのでどうすればいいのか全くわかりません。
アプリはTweetbotなどです。

特にエスパーは必要ではありません。
0683名称未設定
垢版 |
2016/01/31(日) 00:43:24.43ID:Lb5Fe+7B0
参考までに。

tell application "System Events"
set app_name to name of first item of (every application process that (frontmost is true))
tell process app_name
set a_win to (1st item of (every window that subrole is "AXStandardWindow"))
set position of a_win to {20, 60}
set size of a_win to {1600, 1200}
end tell
end tell
0684名称未設定
垢版 |
2016/01/31(日) 00:50:08.78ID:H6u9ib8G0
tell application "System Events"
tell process "アプリ名"
tell front window
set position to {x, y}
set size to {w, h}
end tell
end tell
end tell
で行けんじゃないの
0685名称未設定
垢版 |
2016/01/31(日) 19:25:53.91ID:T2G1Wg900
Mailソフトでフィルタリングされた迷惑メール複数をmeiwaku@dekyo.or.jpに添付ファイルとして、転送できるようなAppleScriptって書けないものでしょうか?

件名はjunk mail transferとしたいです。
0686名称未設定
垢版 |
2016/01/31(日) 19:30:26.66ID:8Nm40lSC0
どこまで出来たか晒しなよ
見てくれる人はいっぱいいるから
0687名称未設定
垢版 |
2016/01/31(日) 22:37:40.80ID:namoAALa0
>>685
こういう系統のスクリプトはスパムに使えるから答えをもらえないかも。
0688名称未設定
垢版 |
2016/01/31(日) 23:31:50.09ID:vPfKXtBI0
んなこたあないw
そんなこと言い出したら>>679だってイタズラ用かもしれんぞ
答えをもらえるかどうかは>>1を読んだかどうかと女子高生か否かで決まる
0689名称未設定
垢版 |
2016/02/06(土) 20:13:14.62ID:LOyohfZN0
>>685
>Mailソフトでフィルタリングされた迷惑メール
迷惑メールが収められているフォルダー内のデータ
に対して(1、2)を行うスクリプト:
1) 文字検索して
2) 検索結果をmeiwaku@dekyo.or.jpに送る
をpythonやrubyなどで書いた方が、同じ作業を
AppleScriptで書くよりも絶対に楽だと思う。
 5万円払ってくれるのなら、AppleScriptで書いて
もらえるとも思うが。
0690名称未設定
垢版 |
2016/02/06(土) 22:05:24.20ID:PZIXO4V20
細かいこと言わなきゃ 環境設定→ルール の実行パターン「メッセージを転送」で済みそうな気もするけど。

もしくは、実行パターンとして「AppleScriptを実行」てのもあるからそこ使えば作れるかも。
0691名称未設定
垢版 |
2016/02/07(日) 01:23:00.23ID:gYLu6YbZ0
AppleScriptでメーラー作ればいいんじゃない
0694名称未設定
垢版 |
2016/02/24(水) 18:45:41.19ID:PaiBzqoz0
教えてください。
ttp://hottinroof.blog54.fc2.com/blog-entry-77.html
のスクリプトを使って写真のリネームをしています。本日 El capitanにアップデートしたところ
「sh: exiftool: command not found Finder でエラーが起きました:sh: exiftool: command not found(127)」
と動かなくなりました。
exiftoolsは最新のmac用 10.11です。調べたところ、置き場所が変わったとの記述を見つけ、
スクリプトを開いて開いて POSIX path にMacintosh/usr/local/bin/exiftoolを当てようと色々試したのですが動かず的外れ
だったようです。
どなたかどうすればexiftoolが有効になるのか教えてください。お願いします。
0695名称未設定
垢版 |
2016/02/24(水) 19:33:34.55ID:PcH/7f1n0
頭の Macintosh 取って、 /usr から始めればいいんじゃない
0696名称未設定
垢版 |
2016/02/25(木) 10:01:21.68ID:cT4RuRny0
>>694
このAを各々Bと置き換えたらできないかな?
A:
set scrptMO to "exiftool -model " & cameraname
set scrptMO to "exiftool -DateTimeOriginal " & hidukejikoku

B:
set scrptMO to "sips --getProperty model " & cameraname
set scrptMO to "sips --getProperty creation " & hidukejikoku
0697名称未設定
垢版 |
2016/02/26(金) 07:53:10.85ID:/CCFtnsQ0
>>695
>>696
だめでした。pathの変更を記述しただけじゃダメみたいです。
ちょっとお手上げ。
0698名称未設定
垢版 |
2016/02/26(金) 09:09:33.85ID:xF52EGeJ0
>>697
試しにel capitanで実行しても動いたよ。>>696
変な所いじってない?
元のまま該当部分だけ置き換えた?

エラーが出るならなんてエラーが出てるかも書かないと。
0699名称未設定
垢版 |
2016/02/26(金) 16:20:14.71ID:atUtY2LD0
exiftoolいらんかったんや

と思ったけど、調べてみたら、一発で所望のリネームまでできるじゃないか
exiftool '-FileName<$model $DateTimeOriginal%+c.%e' -d '%Y%m%d %H%M%S' ファイル...
ドロップレットで処理するとしても長々いらんかったんや
0700名称未設定
垢版 |
2016/02/26(金) 18:59:39.08ID:/CCFtnsQ0
>>698

コンパイルした後、保存するの忘れてました!!
うまく動きました。

本当にありがとうございます。
これで母艦もEl Capitanに移行できます。

ありがとうございます。
0702名称未設定
垢版 |
2016/02/29(月) 18:41:06.52ID:FzgXm9MA0
上の処理をシェルスクリプトの勉強がてら書いてみたんだけど、
よくわかっていないのでイマイチすっきりしない。
どう書いたらスマートに書けるか詳しい人教えて。
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' | sed 's/ model: //'`
0703名称未設定
垢版 |
2016/02/29(月) 18:42:34.87ID:FzgXm9MA0
なんかとちゅうで切れてるので再アップ
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' |
sed 's/ model: //'`"_"`sips --getProperty creation $f | sed -n '/[0-9: ]$/p' |
sed 's/[^0-9]//g'`".jpg"; done
0704名称未設定
垢版 |
2016/02/29(月) 20:57:20.57ID:7rDDasVF0
おめーはよー、シェルスクリプトだけの話しかしねーならスレ違いだろボケー
このスレらしくImage Eventsで書き直した版持ってこいよ
0705名称未設定
垢版 |
2016/03/15(火) 18:33:52.75ID:D7JpzMMj0
do shell scriptを使ってpython 3を実行させたいのですが、
Aの記述の様にパスに日本語を含むファイルを実行しようとすると
can't open file '<unprintable file name>': [Errno 92] Illegal byte sequence" number 2とエラーがでます。

A: do shell script"〜.pyenv/versions/3.3.0/bin/python 〜/Desktop/テスト.py"
B: do shell script"python 〜/Desktop/テスト.py"

ファイル名に日本語を含まない場合、ターミナルから直接実行した場合、Bの記述の場合は
いずれも問題なく実行できます。

どうしたら上の記述で実行できるでしょうか?
pandasを使いたくてpython 3の方に入れたのですが、
Bの記述だとpandasが認識されず、Aの記述だとpandasが認識されます。
ターミナルから実行する場合はBでも問題なくpandasは認識されます。

pandasはpipを使って入れています。
0706名称未設定
垢版 |
2016/03/15(火) 19:05:41.06ID:8FCCxXqP0
例のあれ、LANG=ja_JP.UTF-8 設定して解決じゃないの
0707名称未設定
垢版 |
2016/03/16(水) 02:06:49.60ID:SCX7A7Ur0
$ "hoge -hoge '/日本語/日本語'"
ってするんじゃないの
0708名称未設定
垢版 |
2016/03/16(水) 02:30:44.77ID:uKUS3Bk/0
           |
            |  彡⌒ミ
           \ (´・ω・`)またhageの話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
0709名称未設定
垢版 |
2016/03/16(水) 08:57:16.32ID:wz/7bs1s0
>706
localeはLANG=ja_JP.UTF-8になっています。

>707
シングルクォートの事でしょうか? 囲っても囲まなくても結果は同じでした。
0710名称未設定
垢版 |
2016/03/16(水) 08:59:05.73ID:aX1+TI1t0
>>709
いやコマンドのコードに書き込めよ
中に書いてあっても読み込まないよ。
0711名称未設定
垢版 |
2016/03/16(水) 09:14:46.67ID:wz/7bs1s0
>710
コマンドに入れたらできました!
ありがとうございます。次からはおまじないで入れとくことにします。
0712名称未設定
垢版 |
2016/03/16(水) 10:42:50.80ID:gHrb8tu60
テキストエディットで文末に表示とカーソルを移動させたいのですが、
どこをどう直せばよいですか?

tell application "TextEdit"
activate
tell front document
set selection to last paragraph
end tell
end tell
0713名称未設定
垢版 |
2016/03/16(水) 11:40:47.13ID:wz/7bs1s0
>>712
詳しく知らないけど、ぱっと見それらしい命令がないので無理じゃないかな?
最終目的がわからないけど直接テキストデータいじった方が早いかも。
0714名称未設定
垢版 |
2016/03/16(水) 11:51:48.56ID:4r7QBeuW0
キーバインドで操作出来るんじゃないの
0715名称未設定
垢版 |
2016/03/16(水) 12:48:41.48ID:gHrb8tu60
>>713-714
ありがとうございます

特定のテキストファイルに
コピーしたメモを貼り付けておきたいのですが、
文末にどんどん追加していきたいので、
そのテキストファイルを開いたら、カーソルが一番下に行くようにしたかったです。

Alfredのトリガーで「そのファイルを開いて、スクリプトで文末に移動」
というのを登録して使おうと思いました。

やっぱり、素直にこうするのがいいのかもしれませんね・・・

tell application "TextEdit"
activate
tell front document
tell application "System Events" to key code 125 using {command down}
end tell
end tell
0716名称未設定
垢版 |
2016/03/16(水) 13:14:48.69ID:wz/7bs1s0
コピーってのがクリップボードへのコピーならカーソルを移動しなくてもこれでできる。
tell document 1 of application "TextEdit" to set every text to every text & return & (the clipboard)
0717名称未設定
垢版 |
2016/03/17(木) 02:02:48.03ID:tknj+PfJ0
速度的にはどうなんだろ
on replaceReg(str, fnd, opt, rep)
set JsScr to "
var str = " & quoted form of str & ";
var fnd = new RegExp(" & quoted form of fnd & "," & quoted form of opt & ");
var rep = " & quoted form of rep & ";
str.replace(fnd, rep);
"
set ret to run script JsScr in "Javascript"
return ret
end replaceReg
0718名称未設定
垢版 |
2016/03/17(木) 05:32:07.90ID:U21OisUH0
>>717
どうもapplescriptに見えんなーと思ったらapplescriptじゃなかった
JS使いにとってはASで素直に置換ができない問題がこれで解消されるわけか?
まあしかしASだけでルーチン組むのとあんまり変わらんから
やっぱり速度の問題になるよね
0719名称未設定
垢版 |
2016/03/17(木) 06:23:24.08ID:nfY5T6ih0
Doublequoteはescape必要に見えるけど、大丈夫?
0720名称未設定
垢版 |
2016/03/17(木) 07:12:42.55ID:3oRdLlSm0
失礼、勘違いだった。
0721名称未設定
垢版 |
2016/03/17(木) 09:20:51.65ID:DWzTlfih0
>>717
いいね、これ

前に似たようなことやりたくて、JSで書いたやつを~/Library/Script Librariesに置いてASから使おうとしてダメだったから諦めてた
代わりにuse framework "Foundation" ... NSRegularExpressionで書いて使ったけど見た目ごちゃごちゃしてるしマンドクサかった
0722名称未設定
垢版 |
2016/03/17(木) 20:45:27.45ID:tknj+PfJ0
721です。昨日から触り始めたので、目新しいことばかりです。
配列やオブジェクトがlistやrecordとして返ってくるのは
ちょっと嬉しい。今更かもしれませんが。

set JsScr to "
var obj = {str:'apple', arr:['ふじ','レッドデリシャス']};
obj
"
set ret to run script JsScr in "Javascript"
log "class of ret:" & class of ret
log "class of arr of ret:" & class of arr of ret
repeat with i in arr of ret
log i
end repeat
0723名称未設定
垢版 |
2016/03/17(木) 20:50:16.07ID:tknj+PfJ0
721さんではなくて717でした、失礼
0725名称未設定
垢版 |
2016/03/29(火) 21:22:05.25ID:0SkJ9rAs0
>>711
NSRegularRexpression をラップしてたマンドくさくないシンプルなインタフェースのライブラリをつくればいいのではないかしら。
0726名称未設定
垢版 |
2016/04/22(金) 15:37:59.52ID:hRzbi5SJ0
ASOCでウインドウをフローティング(常に前面)にしたいのですが、
どこでどう設定したらいいんでしょう?
0727名称未設定
垢版 |
2016/04/22(金) 20:48:33.70ID:OU5jWO7P0
>>726
  property win : missing value --xivでウィンドウど接続
--初期化で
  win's setLevel_(3)
0728726
垢版 |
2016/04/25(月) 10:29:40.54ID:H7rkWOxZ0
>>727
すみません。エラーも起きませんが、フローティングにもなりません。
現在記述してあるのは、下記のみです。xcode 3.2.6 os10.6.8
script UntitledAppDelegate
property parent : class "NSObject"
property _win : missing value
on applicationWillFinishLaunching_(aNotification)
_win's setLevel(3)
end applicationWillFinishLaunching_
on applicationShouldTerminate_(sender)
return current application's NSTerminateNow
end applicationShouldTerminate_
end script
0729726
垢版 |
2016/04/25(月) 10:44:02.50ID:H7rkWOxZ0
アンダーバーが抜けていました。アンダーバー入れてもフローティングにはなりません。
_win's setLevel_(3)
0730名称未設定
垢版 |
2016/04/25(月) 14:24:15.74ID:pJvZnNc40
>>728
  on applicationWillFinishLaunching_(aNotification)
   set aB to current application's NSBackingStoreBuffered
   set aRect to {{300, 300}, {300, 300}}
   tell current application's NSWindow's alloc()
    tell initWithContentRect_styleMask_backing_defer_(aRect, 7, aB, false)
     tell current application's NSView's alloc()
      tell initWithFrame_(aRect)
        setNeedsDisplay_(true)
        set aView to it
      end tell
     end tell
     setContentView_(aView)
     setDelegate_(me)
     setTitle_("TEST")
     setLevel_(3)
     makeKeyAndOrderFront_(me)
    end tell
   end tell
  end applicationWillFinishLaunching_

xiv怪しいから試しにwinnow作ってやってみて
これで出来ると思う
0731726
垢版 |
2016/04/25(月) 15:54:15.90ID:H7rkWOxZ0
>>730
ありがとうございます。
test windowはちゃんとフローティングになりました。
自分で作成したwindowはどこをどう設定したらいいんでしょう?
0732名称未設定
垢版 |
2016/04/25(月) 22:43:08.77ID:pJvZnNc40
>>731
xivのバグでoutlet接続しても接続されないってのがある、これはALを切ったりxivの設定を触ってると治る事がある
ただこれの場合はunrecognized functionとエラーログが出るのでおそらく別の問題。
通常、初期状態のxivのwindowをoutletを繋いでsetLevel_を呼び出せば、表示レベルが変更される。
マクロの定数をキャストしてな事による定数誤差の場合、>>730のコードも適用されないのでこれも違う
よってxivの設定が間違っている可能性が濃厚
0733726
垢版 |
2016/04/26(火) 09:37:28.68ID:TnaIN42b0
>>732
たびたびありがとうございます。
バグの可能性を聞いて、接続したり切ったり、設定を変えたりして
いじっていたらできることがありました。(2回成功しました)
ただ、これといった確実な方法が見つからずほとんどの場合はできません。
フローティングにならない場合でも同じ設定でエラーは出ません。
手動でoutletsの設定したい場合はどうしたらいいのでしょう?
0734726
垢版 |
2016/04/26(火) 09:53:27.89ID:TnaIN42b0
連投すみません。
絶対とは言えないのですが、高確率で成功する方法を見つけました。
property win : missing valueとwin's setLevel_(3)の両方を書いてからoutletsに接続すると成功率が高いようです。
property win : missing valueを設定してwin's setLevel_を実行する前にoutletsに接続してしまうと高確率で失敗します。
0735名称未設定
垢版 |
2016/04/26(火) 11:06:47.77ID:g47x2a7n0
>>734
Visible At Launchをオフにしてコードでwindowを表示してみましょう。
もし表示出来たならOutletが正しく接続されているので他に原因がある事になります。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")--ついでにタイトルも変えてみましょう

xivのwindowは、初期設定状態でしょうか
例えばxivでwindowのHidesOnDeactivateをonにしていると、他のアプリに移動した時にウィンドウが消えます。
0736726
垢版 |
2016/04/26(火) 14:07:33.25ID:TnaIN42b0
とりあえず新規プロジェクトで実験しているので初期設定状態のままです。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")
を試した後からなぜか突然フローティングに失敗しなくなりました。
新規で作ってさっきまでうまくいなかったやり方で試しても大丈夫です。
よくわからないけど助かりました。ありがとうございます。
0737名称未設定
垢版 |
2016/04/29(金) 22:34:11.86ID:YksCyGws0
# sed - put commas at the end of every line in stdin
# awk - pass to awk to remove the linefeeds
# sed - remove the comma from the last line
# sed - turn all spaces into pluses
address=`sed -e "s/$/,/g" | awk '{ str1=str1 $0 " "}END{ print str1 }' | sed -e "s/, $//g" | sed -e "s/ /\+/g"`
open "http://www.amazon.co.jp/s?field-keywords=$address";

Automatorのサービスで右クリックできるようにしたのですが、
これをつねにfirefoxで開くようにしたいです。
どのように付けくわえればよいでしょうか?
0738名称未設定
垢版 |
2016/04/29(金) 23:50:36.50ID:mmmN9YIf0
デフォルトブラウザがFirefoxならそのまま行くんじゃないの
それかopen -a Firefoxにするか
0739名称未設定
垢版 |
2016/04/30(土) 02:41:26.48ID:6hA5ZwKI0
または open -b org.mozilla.firefox
0740名称未設定
垢版 |
2016/04/30(土) 08:23:41.53ID:7vBWrPt20
>>738,739
ありがとうございます
デフォルトはSafariです
amazonの検索だけFirefoxにしたかったのです

教えてもらった行を最後に付けくわえてみたら、
Firefoxは起動するけど、検索自体はSafariのままでした。
付けくわえかた間違ってるのでしょうか・・・?
0741名称未設定
垢版 |
2016/04/30(土) 10:25:24.23ID:OIJSFV4t0
加えるんじゃなくて、最後の行のopenを置き換え
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況