Se a qualcuno puo interessare, ho postato una mia UDF per quanto riguarda le funzioni principali di Messenger.
CODICE
;~ Messenger UDF: Creata da MatteoJug
;~ Funzioni:
;~ _MessengerContactAdd()
;~ _MessengerContactGetInfoByEmail()
;~ _MessengerContactGetInfoById()
;~ _MessengerContactList()
;~ _MessengerContactTotal()
;~ _MessengerEmailInbox()
;~ _MessengerEmailSend()
;~ _MessengerGetEmail()
;~ _MessengerGetName()
;~ _MessengerGetService()
;~ _MessengerGetStatus()
;~ _MessengerSendFile()
;~ _MessengerSetStatus()
;~ _MessengerSignIn()
;~ _MessengerSignOut()
;~ _MessengerStart()
;~ _MessengerStartChat()
;~ _MessengerShutdown()
#include-once
_MessengerGUI()
Func _MessengerGUI()
_MessengerStart()
$main_GUI = GUICreate("Messenger UDF", 482, 447, 193, 115)
$disconnetti = GUICtrlCreateButton("Disconnetti", 0, 408, 481, 33, 0)
GUICtrlCreateGroup("Informazioni ", 0, 0, 481, 89)
$info_general = GUICtrlCreateLabel("", 8, 16, 467, 65)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Stato ", 0, 88, 177, 217)
$status_list = GUICtrlCreateList("", 8, 104, 161, 149)
GUICtrlSetData(-1,"In Linea|Occupato|Torno Subito|Non al Computer|Al Telefono|A Pranzo|Invisibile")
GUICtrlSetFont(-1,12)
$status_button = GUICtrlCreateButton("Cambia Stato", 16, 256, 137, 33, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Contatti ", 176, 88, 305, 313)
$contact_list = GUICtrlCreateList("", 184, 104, 289, 253)
$refresh = GUICtrlCreateButton("Aggiorna", 202, 360, 121, 33, 0)
$start_schat_button = GUICtrlCreateButton("Inizia Conversazione", 332, 360, 121, 33, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Option = GUICtrlCreateButton("Opzioni", 0, 304, 177, 33, 0)
GUICtrlCreateGroup("Email ", 0, 344, 177, 57)
$inbox = GUICtrlCreateButton("Inbox", 8, 360, 161, 17, 0)
$newmail = GUICtrlCreateButton("Nuova Email", 8, 376, 161, 17, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$contact_list_general_text=_MessengerContactList(5,"|")
GUICtrlSetData($contact_list,$contact_list_general_text)
GUISetState(@SW_SHOW)
$last_General_Contact_text=""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
_MessengerShutdown()
Exit
case $disconnetti
_MessengerSignOut()
Exit
case $Option
_MessengerOptionPage()
Case $inbox
_MessengerEmailInbox()
case $newmail
_MessengerEmailSend(" ")
case $start_schat_button
$split=StringSplit(GUICtrlRead($contact_list)," ")
if $split[1]<>"" Then
_MessengerStartChat($split[1])
EndIf
case $refresh
GUICtrlSetState($refresh,128)
$contact_list_general_text=_MessengerContactList(5,"|")
GUICtrlSetData($contact_list,$contact_list_general_text)
GUICtrlSetState($refresh,64)
case $status_button
_MessengerSetStatus(Guictrlread($status_list))
EndSwitch
$info_general_text="Nome: " & _MessengerGetName() & @CRLF & "Email: " & _MessengerGetEmail() & @CRLF & "Stato: " & _MessengerGetStatus() & @CRLF & "Servizio: " & _MessengerGetService()
if GUICtrlRead($info_general)<>$info_general_text then GUICtrlSetData($info_general,$info_general_text)
WEnd
EndFunc
Func _MessengerStart()
Global $obj=ObjCreate("Messenger.UIAutomation.1")
EndFunc
Func _MessengerContactTotal()
$contact=$obj.MyContacts()
$nrcontact=$contact.Count()
Return $nrcontact
EndFunc
Func _MessengerOptionPage()
$obj.OptionsPages(0,0)
Return @error
EndFunc
Func _MessengerMediaOptionPage()
$obj.MediaWizard (0)
Return @error
EndFunc
func _MessengerContactGetInfoById($id,$mode=2,$separator=" - ")
$contact=$obj.MyContacts()
$nrcontact=$contact.Count()
$ret="Utente non trovato"
if $id>=0 and $id<=_MessengerContactTotal()-1 Then
$contact_detail=$contact.Item($id)
if $mode=1 Then
dim $ret[3]=[$contact_detail.FriendlyName(),$contact_detail.SigninName(),__MessengerNumberToStatus($contact_detail.Status())]
EndIf
if $mode=2 Then
$ret=$contact_detail.FriendlyName() & $separator & $contact_detail.SigninName() & $separator & __MessengerNumberToStatus($contact_detail.Status())
EndIf
EndIf
Return $ret
EndFunc
func _MessengerContactGetInfoByEmail($email,$mode=2,$separator=" - ")
$contact=$obj.MyContacts()
$nrcontact=$contact.Count()
$item=-1
for $i=0 to $nrcontact-1
$contact_detail=$contact.Item($i)
if $contact_detail.SigninName()=StringLower($email) then $item=$i
Next
$ret="Utente non trovato"
$contact_detail=$contact.Item($item)
if $item<>-1 Then
if $mode=1 Then
dim $ret[3]=[$contact_detail.FriendlyName(),$contact_detail.SigninName(),__MessengerNumberToStatus($contact_detail.Status())]
EndIf
if $mode=2 Then
$ret=$contact_detail.FriendlyName() & $separator & $contact_detail.SigninName() & $separator & __MessengerNumberToStatus($contact_detail.Status())
EndIf
EndIf
Return $ret
EndFunc
Func _MessengerContactList($mode=2,$separator="//",$limit=False)
$contact=$obj.MyContacts()
$nrcontact=$contact.Count()
$ret=""
if $limit<>False then $nrcontact=$limit
for $i=0 to $nrcontact-1
$contact_detail=$contact.Item($i)
if $mode=1 then $ret&=$separator & $contact_detail.FriendlyName()
if $mode=2 then $ret&=$separator & $contact_detail.SigninName()
if $mode=3 then $ret&=$separator & __MessengerNumberToStatus($contact_detail.Status())
if $mode=4 then $ret&=$separator & $contact_detail.FriendlyName() & " (" & $contact_detail.SigninName() & " " & __MessengerNumberToStatus($contact_detail.Status()) & ")"
if $mode=5 then $ret&=$separator & $contact_detail.SigninName() & " " & __MessengerNumberToStatus($contact_detail.Status())
Next
Return $ret
EndFunc
Func __MessengerNumberToStatus($status_i)
$status=-1
Switch $status_i
case 1
$status="Disconnesso"
case 2
$status="In Linea"
case 6
$status="Invisibile"
case 10
$status="Occupato"
case 50
$status="Al Telefono"
case 66
$status="A Pranzo"
case 34
$status="Non al Computer"
case 14
$status="Torno Subito"
EndSwitch
Return $status
EndFunc
Func __MessengerStatusToNumber($status)
$ret=2
Switch StringLower($status)
case "disconnesso"
$ret=1
case "in linea"
$ret=2
case "Invisibile"
$ret=6
case "occupato"
$ret=10
case "al telefono"
$ret=50
case "a pranzo"
$ret=66
case "non al computer"
$ret=34
case "torno subito"
$ret=14
EndSwitch
Return $ret
EndFunc
Func _MessengerGetStatus($Mode=2)
$status=$obj.MyStatus()
if $Mode=2 then
$status=__MessengerNumberToStatus($status)
EndIf
Return $status
EndFunc
Func _MessengerSetStatus($status)
$ret=$status
if not StringIsInt($status) then
$ret=__MessengerStatusToNumber($status)
EndIf
$obj.MyStatus = $ret
Return @error
EndFunc
Func _MessengerContactAdd($email="")
$obj.AddContact (0,$email)
EndFunc
Func _MessengerStartChat($email)
$obj.InstantMessage($email)
EndFunc
Func _MessengerEmailSend($email)
$obj.SendMail($email)
EndFunc
Func _MessengerEmailInbox()
$obj.OpenInbox()
EndFunc
Func _MessengerSignOut()
$obj.Signout()
EndFunc
func _MessengerSignIn($email="",$pass="")
$obj.Signin(0, $email, $pass)
EndFunc
Func _MessengerSendFile($email,$file)
$obj.SendFile($email, $file)
EndFunc
Func _MessengerGetService()
$oServices = $obj.Services()
$oPrimserv = $oServices.PrimaryService()
$oName = $oPrimserv.serviceName()
Return $oName
EndFunc
Func _MessengerGetEmail()
$oName=$obj.MySigninName()
Return $oName
EndFunc
Func _MessengerGetName()
$oName=$obj.MyFriendlyName()
Return $oName
EndFunc
Func _MessengerShutdown()
Global $obj=""
EndFunc