私はApplescriptに取り組んでいますが、これはSkypeにオンラインの連絡先の数を尋ねるだけです...しかし、Skypeが実行されておらず、最後に実行されているときにスクリプトが数回実行されると、Skypeは数え切れないほどのダイアログウィンドウを開きます。 ApplescriptにSkypeの使用を許可するかどうかを尋ねるSkypeAPIセキュリティリクエスト。
残念ながら、この問題の解決策を見つけることができません。ご意見がございましたら、よろしくお願いいたします。
前もって感謝します!ジュリアン
ここで言及されたスクリプト:
set onlineFriendsCount to 0
set resultArray to {}
-- define a string replace method
on ReplaceText(theString, findStr, replaceStr)
current_DelimitersをAppleScriptのテキストアイテム区切り文字に設定AppleScriptのテキストアイテム区切り文字をfindStrに設定sListをtheStringのすべてのテキストアイテムに設定AppleScriptのテキストアイテム区切り文字をreplaceStrに設定newStringをsListに文字列として設定AppleScriptのテキストアイテム区切り文字をcurrent_Delimitersに設定returnnewStringend ReplaceText
on countString(myText, myDelimiter)
{oldDelimiters、AppleScriptのテキストアイテム区切り文字}を{AppleScriptのテキストアイテム区切り文字、myDelimiter}に設定しますmyCounterを(myTextのテキストアイテムをカウント)に設定します-1AppleScriptのテキストアイテム区切り文字をoldDelimitersに設定します
return myCounter
end countString
tell application "System Events"
active_flagを(プロセスの名前)に設定すると、「Skype」が含まれますend tell if active_flag then
アプリケーションに「Skype」と伝える
-最初に、オンラインの「友達」(これはSkypeの専門用語です)の数を調べて、コマンド「SEARCHGROUPSHARDWIRED」を送信するグループを設定します。スクリプト名「getType」はgroupListをグループの単語に設定します。
groupCountをgroupList内のアイテムの数に設定します
2からgroupCountまでのiで繰り返し、groupListのアイテムiにグループを設定します
groupTypeにコマンド「GETGROUP」&group&「TYPE」スクリプト名「getType」を送信するように設定します。groupTypeに「ONLINE」が含まれている場合は、onlineFriendsにコマンド「GETGROUP」&group&「USERS」スクリプト名「getType」を送信するように設定します。 onlineFriendsからonlineFriendsの言葉へ
-- setting the new string delimiter for chunking the resulting list
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ","
set onlineFriendsList to every text item of onlineFriends
set AppleScript's text item delimiters to oldDelimiters
set AppleScript's text item delimiters to ","
set onlineFriendsCount to (number of items in onlineFriendsList)
-- this is a little workaround to get the correct number of online contacts:
if onlineFriendsCount = 1 then
set resultArray to resultArray & 0
else
set resultArray to resultArray & onlineFriendsCount
end if
exit repeat
終了リピートの場合は終了
--ムードメッセージを取得するsetmoodMessageto send command "GET PROFILE MOOD_TEXT" script name "getType" set moodStrings to my ReplaceText(moodMessage、 "PROFILE MOOD_TEXT"、 "")set moodStrings to my ReplaceText(moodStrings、 "、"、 " ")resultArrayをresultArray&moodStringsに設定します-オンラインステータスを取得しますset onlineStatus to sendコマンド(" GET USERSTATUS ")スクリプト名" getType "set onlineStatus to my ReplaceText(onlineStatus、" USERSTATUS "、" ")set resultArray to resultArray& onlineStatus-アクティブなチャットの数を取得しますsetactiveChatsto send command "SEARCH ACTIVECHATS" script name "getType" set activeChats to my countString(activeChats、 "#")set resultArray to resultArray&activeChats-進行中の呼び出しがあるかどうかを確認します。activeCallsを設定してコマンド「SEARCHACTIVECALLS」を送信します。スクリプト名「getType」callNumをactiveCallsの単語数に設定します。callNum>1の場合、resultArrayをresultArrayに設定します。もしも
resultArrayを返します
終わりを告げる
else
resultArrayを{0、 ""、 "OFFLINE"、0、false}に設定します
end if