msn UDF

  • Wie die Überschrift schon sagt ein MSN Udf, funktioniert größtenteils auch mit Windows Live Messenger.

    Befehle:

    Spoiler anzeigen

    _MSN_Create()
    _MSN_ContactAdd($oMSN, $sEmail = '')
    _MSN_SignIn($oMSN, $sUser = '', $sPass = '')
    _MSN_ContactObjGet($oMSN, $sEmail)
    _MSN_ConvWinOpen($oMSN, $vContact)
    _MSN_GetContactList($oMSN)
    _MSN_MyFriendlyName($oMSN)
    _MSN_MyEmail($oMSN)
    _MSN_MyStatus($oMSN)
    _MSN_SetStatus($oMSN, $iStatus)
    _MSN_ContactIsBlocked($oContact)
    _MSN_ContactBlock($oContact)
    _MSN_ContactUnblock($oContact)
    _MSN_ContactFriendlyName($oContact)
    _MSN_ContactEmail($oContact)
    _MSN_NumContacts($oList)
    _MSN_ContactObjGetByIndex($oList, $iIndex)
    _MSN_ContactRemove($oList, $oContact)

    UDF Code

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    Hier habt ihr ein kleines msn udf...
    ;)

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit]

    $MSN_STATUS_UNKNOWN = 0x0000
    $MSN_STATUS_OFFLINE = 0x0001
    $MSN_STATUS_AVAILABLE = 0x0002
    $MSN_STATUS_INVISIBLE = 0x0006
    $MSN_STATUS_BUSY = 0x000A
    $MSN_STATUS_BRB = 0x000E
    $MSN_STATUS_IDLE = 0x0012
    $MSN_STATUS_AWAY = 0x0022
    $MSN_STATUS_PHONE = 0x0032
    $MSN_STATUS_LUNCH = 0x0042
    $MSN_STATUS_FINDING_SERVER = 0x0100
    $MSN_STATUS_CONNECTING = 0x0200
    $MSN_STATUS_SYNCING = 0x0300
    $MSN_STATUS_DISCONNECTING = 0x0400

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    _MSN_Create()
    _MSN_ContactAdd($oMSN, $sEmail = '')
    _MSN_SignIn($oMSN, $sUser = '', $sPass = '')
    _MSN_ContactObjGet($oMSN, $sEmail)
    _MSN_ConvWinOpen($oMSN, $vContact)
    _MSN_GetContactList($oMSN)
    _MSN_MyFriendlyName($oMSN)
    _MSN_MyEmail($oMSN)
    _MSN_MyStatus($oMSN)
    _MSN_SetStatus($oMSN, $iStatus)
    _MSN_ContactIsBlocked($oContact)
    _MSN_ContactBlock($oContact)
    _MSN_ContactUnblock($oContact)
    _MSN_ContactFriendlyName($oContact)
    _MSN_ContactEmail($oContact)
    _MSN_NumContacts($oList)
    _MSN_ContactObjGetByIndex($oList, $iIndex)
    _MSN_ContactRemove($oList, $oContact)
    #ce

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;returns an msn automation object
    Func _MSN_Create()
    $ret = ObjCreate("Messenger.UIAutomation.1")
    If IsObj($ret) Then
    Return $ret
    Else
    Return 0
    EndIf
    EndFunc ;==>_MSN_Create

    [/autoit] [autoit][/autoit] [autoit]

    ;launches the Add Contact wizard. If an email adress is given, it skips the first page where the user is asked for the email address.
    Func _MSN_ContactAdd($oMSN, $sEmail = '')
    Return $oMSN.AddContact(0, $sEmail)
    EndFunc ;==>_MSN_ContactAdd

    [/autoit] [autoit][/autoit] [autoit]

    ;signs into msn. if no username and password are given, uses automatic sign in.
    Func _MSN_SignIn($oMSN, $sUser = '', $sPass = '')
    If $sUser <> '' And $sPass <> '' Then
    Return $oMSN.Signin(0, $sUser, $sPass)
    Else
    Return $oMSN.AutoSignin()
    EndIf
    EndFunc ;==>_MSN_SignIn

    [/autoit] [autoit][/autoit] [autoit]

    ;returns a contact object
    Func _MSN_ContactObjGet($oMSN, $sEmail)
    Return $oMSN.GetContact($sEmail, '')
    EndFunc ;==>_MSN_ContactObjGet

    [/autoit] [autoit][/autoit] [autoit]

    ;$vContact can be string or Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex.
    ;If $vContact is a string, it must be the email address of the person to message.
    ;returns a Window object
    Func _MSN_ConvWinOpen($oMSN, $vContact)
    Return $oMSN.InstantMessage($vContact)
    EndFunc ;==>_MSN_ConvWinOpen

    [/autoit] [autoit][/autoit] [autoit]

    ;returns a MessengerContacts object
    Func _MSN_GetContactList($oMSN)
    Return $oMSN.MyContacts
    EndFunc ;==>_MSN_GetContactList

    [/autoit] [autoit][/autoit] [autoit]

    ;Deprecated in Windows Messenger 5.0
    Func _MSN_MyFriendlyName($oMSN)
    Return $oMSN.MyFriendlyName
    EndFunc ;==>_MSN_MyFriendlyName

    [/autoit] [autoit][/autoit] [autoit]

    ;Deprecated in Windows Messenger 5.0
    Func _MSN_MyEmail($oMSN)
    Return $oMSN.MySigninName
    EndFunc ;==>_MSN_MyEmail

    [/autoit] [autoit][/autoit] [autoit]

    ;Deprecated in Windows Messenger 5.0
    Func _MSN_MyStatus($oMSN)
    Return $oMSN.MyStatus
    EndFunc ;==>_MSN_MyStatus

    [/autoit] [autoit][/autoit] [autoit]

    ;Deprecated in Windows Messenger 5.0
    Func _MSN_SetStatus($oMSN, $iStatus)
    $oMSN.MyStatus($iStatus)
    EndFunc ;==>_MSN_SetStatus

    [/autoit] [autoit][/autoit] [autoit]

    ;returns True or False
    ;$oContact is a Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactIsBlocked($oContact)
    Return $oContact.Blocked
    EndFunc ;==>_MSN_ContactIsBlocked

    [/autoit] [autoit][/autoit] [autoit]

    ;$oContact is a Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactBlock($oContact)
    $oContact.Blocked = True
    EndFunc ;==>_MSN_ContactBlock

    [/autoit] [autoit][/autoit] [autoit]

    ;$oContact is a Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactUnblock($oContact)
    $oContact.Blocked = False
    EndFunc ;==>_MSN_ContactUnblock

    [/autoit] [autoit][/autoit] [autoit]

    ;$oContact is a Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactFriendlyName($oContact)
    Return $oContact.FriendlyName
    EndFunc ;==>_MSN_ContactFriendlyName

    [/autoit] [autoit][/autoit] [autoit]

    ;$oContact is a Contact object as returned by _MSN_ContactObjectGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactEmail($oContact)
    Return $oContact.SigninName
    EndFunc ;==>_MSN_ContactEmail

    [/autoit] [autoit][/autoit] [autoit]

    ;$oList is the MessengerContacts object as returned by _MSN_GetContactList
    Func _MSN_NumContacts($oList)
    Return $oList.Count
    EndFunc ;==>_MSN_NumContacts

    [/autoit] [autoit][/autoit] [autoit]

    ;returns the Contact object of the contact in the specified index.
    ;(I am not sure wether the index is 0-based or 1-based....) 0 based on live by Framp
    ;$oList is the MessengerContacts object as returned by _MSN_GetContactList
    Func _MSN_ContactObjGetByIndex($oList, $iIndex)
    Return $oList.Item($iIndex)
    EndFunc ;==>_MSN_ContactObjGetByIndex

    [/autoit] [autoit][/autoit] [autoit]

    ;$oList is the MessengerContacts object as returned by _MSN_GetContactList
    ;$oContact is a Contact object as returned by _MSN_ContactObjGet or _MSN_ContactObjGetByIndex
    Func _MSN_ContactRemove($oList, $oContact)
    Return $oList.Remove($oContact)
    EndFunc ;==>_MSN_ContactRemove

    [/autoit]


    Test Code ;)

    Spoiler anzeigen
    [autoit]

    #include <msn_UDF.AU3>

    [/autoit] [autoit][/autoit] [autoit]

    $MSN_Object = _MSN_Create ()
    If $MSN_Object Then MsgBox(1,"","Error, MSN/WLM isn't running!")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    MsgBox(64,"Windows Live Messenger/MSN Messenger Info","E-Mail Address: " & @TAB & _MSN_MyEmail($MSN_Object) & @CRLF & _
    "Friendly Name: " & @TAB & _MSN_MyFriendlyName($MSN_Object) & @CRLF & _
    "Status: " & @TAB & @TAB & _MSN_MyStatus($MSN_Object))

    [/autoit] [autoit][/autoit] [autoit]

    $ContactList = _MSN_GetContactList($MSN_Object)
    $NumContacts = _MSN_NumContacts($ContactList)
    MsgBox(64,"Windows Live Messenger/MSN Messenger Contacts","Number Of Contacts :" & @TAB & $NumContacts)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(64,"","Open a random contact convers.")
    $GetContact = _MSN_ContactObjGetByIndex($ContactList, Random(1,$NumContacts))
    _MSN_ConvWinOpen($MSN_Object,$GetContact)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]


    Rückmeldung wäre nett

    mfg. Andi

  • Schöne UDF.
    Aber ist es nicht eig. schneller mein MSN Window zu öffnen, freund doppelklicken und chatten anstatt erstmal hunderte(übertrieben xD) Zeilen zu
    coden um nur eine Konversation zu starten ?

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Schöne UDF.
    Aber ist es nicht eig. schneller mein MSN Window zu öffnen, freund doppelklicken und chatten anstatt erstmal hunderte(übertrieben xD) Zeilen zu
    coden um nur eine Konversation zu starten ?


    Tjah, gute Frage.
    Naja so übertrieben ist's e nicht. (UDF: ~230 Zeilen)

    Aber ein Skript kann für alles nützlich sein... musst nur die richtigen Gedanken dafür haben und loscoden. (zB.: eine Art Mini-MSN-Toolbar, wo du schnellen Überblick über deinen Status usw. hast und mit einem klick ein Chatfenster mit deinen Freunden öffnen kannst... oder via Hotkeys... bla bla bla ^^)


    ;)