Skype4Com.DLLをHSPから使ってみるサンプル

・スカイプの基本操作を代行するコンポーネントをHSPで動かすサンプルです。
・このサンプル公開は自分の技術的好奇心と他者の開発支援を主に目的としています。
・使い方を誤ると使用者に不利益が起こるばかりでなくコンタクト登録してあるユーザーに迷惑がかかることがあります。
・その結果起こった事故、損失などについて作者は責任を追わないものとします!動作保証もありません
・またこの技術を悪用した悪戯プログラムの作成の一切を禁止します。
・ソースのコピーはサンプル上部のエディタ表示から行って下さい。
・以上のことを理解した上で使用してください。



Sample Script : Skype4ComSample.hsp




// 
// 	Skype4COM サンプル
// 					sinh様、はりー(DoubleQuote)
// 
// 		・Skypeのコンタクト一覧、ステータス一覧、チャット、通話サンプル
// 
// 		・動作確認したバージョン
// 				Skype本体 : 5.0.0.105
// 				Skype4COM : 1.0.33.0	DLL(Skype for COM API)
// 
// 


	newcom oSkype, "Skype4COM.Skype"
	skypeClient = oSkype("Client")

	skypeIsRunning = skypeClient("IsRunning")
	if ( skypeIsRunning == 0/*VARIANT_FALSE*/ ) {
		// Skypeが起動していない時の処理
		dialog "Error: skype is not running.",1,"ERROR!!"
		goto *exit
	}
	onexit *exit

	convert = oSkype("Convert")
	friend  = oSkype("Friends")



	//////////////////////////////////////////////////////////////////////////////////////
	// [ Skypeコンタクト一覧取得 ]
	//////////////////////////////////////////////////////////////////////////////////////

	screen 0,700,1000
	title "Skypeコンタクト一覧  スカイプ(本体)のバージョン情報:"+oSkype("Version")
	font "MS 明朝",20,21
	mes "ID : FullName(Network) | Handle(SkypeID)\n"
	repeat friend("count"),1
		item     = friend("Item",cnt)
		fullname = item("FullName")			// コンタクトに登録されているハンドルネームを取得
		handle   = item("Handle")			// コンタクトに登録されているハンドル(SkypeID)を取得

		// オンライン情報の取得
		user     = oSkype("User",handle)
		status   = user("OnlineStatus")
		status_s = convert("OnlineStatusToText",status)

		// 取得結果表示
		mes strf("%02d",cnt)+" : \""+fullname+"\"("+status_s+")"+" | "+handle
	loop

	width ,20*(friend("count")+3)			// ウィンドウサイズの実効幅へ調整



	//////////////////////////////////////////////////////////////////////////////////////
	// [ コールステータス一覧 & オンラインステータス一覧 ]
	//////////////////////////////////////////////////////////////////////////////////////

	screen 1,640,480
	title "スカイプ(本体)のバージョン情報:"+oSkype("Version")
	mes "callStatusToText"
	repeat 23,-1
		mes ""+cnt+" : "+convert("callStatusToText",cnt)
	loop

	pos 300,000
	mes "onlineStatusToText"
	repeat 9,-1
		mes ""+cnt+" : "+convert("onlineStatusToText",cnt)
	loop



	//////////////////////////////////////////////////////////////////////////////////////
	// [ テストID"echo123"へチャットメッセージ送信 & 通話開始 & 通話切断 ]
	//////////////////////////////////////////////////////////////////////////////////////

	// 通話ウィンドウ表示
	skypeClient->"OpenMessageDialog" "echo123"
	// チャット文字列送信
	oSkype->"SendMessage" "echo123","☆テスト☆\ntest strings!!\nnow I'll call you soon!!"

	ocall = oSkype("PlaceCall","echo123")	// コール先設定
	oSkype("Mute") = 1			// マイクをミュートに設定[MuteOn:1  ;  MuteOff:0]
	repeat 150
		wait 10
		call_status = ocall("status")
		title convert("callStatusToText",call_status)+"("+call_status+")"	// 通話ステータスをタイトルへ表示
	loop
	ocall->"Finish"		// 通話終了
	repeat 10
		wait 10
		call_status = ocall("status")
		title convert("callStatusToText",call_status)+"("+call_status+")"	// 通話ステータスをタイトルへ表示
	loop
stop



*exit
	// 通話終了
	ocall->"Finish"
	delcom oSkype
end