Jump to content



Photo

MSN (WLM) Personal Message Changer


  • Please log in to reply
5 replies to this topic

#1 Jex

Jex

    Polymath

  • Active Members
  • PipPipPipPip
  • 206 posts

Posted 24 October 2007 - 03:48 PM

If active window in that program list then showing that window title in MSN Personal Message otherwise showing your selected text or clock.

Posted Image

AutoIt         
#NoTrayIcon #include <GuiConstants.au3> #include <GuiListBox.au3> #include <File.au3> #Include <Constants.au3> Dim $Myini = "List.ini", $Showtext, $Found = False, $Timer, $Sec = 1 HotKeySet("+!t", "Title") Opt("TrayMenuMode", 1) $Status = TrayCreateItem("Hide window") TrayCreateItem("") $Exit = TrayCreateItem("Exit") TraySetState() $Form = GUICreate("FLEXY", 388, 271, 277, 314) $List = GUICtrlCreateList("", 200, 8, 169, 240) $Btn_Title = GUICtrlCreateButton("Add current active window title", 16, 16, 171, 25, 0) $Btn_Add = GUICtrlCreateButton("Add manual title name", 16, 48, 171, 25, 0) $Btn_Edit = GUICtrlCreateButton("Edit selected title from list", 16, 80, 171, 25, 0) $Btn_Delete = GUICtrlCreateButton("Remove selected title from list", 16, 112, 171, 25, 0) $Btn_Save = GUICtrlCreateButton("Save listbox", 16, 144, 171, 25, 0) $Btn_Hotkeys = GUICtrlCreateButton("Show hotkeys", 16, 176, 83, 25, 0) $Btn_Exit = GUICtrlCreateButton("Exit", 104, 176, 81, 25, 0) $Radio1 = GUICtrlCreateRadio("Show clock", 104, 216, 81, 17) GUICtrlSetState(-1, $GUI_CHECKED) $Radio2 = GUICtrlCreateRadio("Show text", 16, 216, 73, 17) $Radio3 = GUICtrlCreateRadio("Don't show anything", 16, 240, 129, 17) Load() GUISetState() While 1     $Begin = TimerInit()     $msg = GUIGetMsg()     Select         Case $msg = $Btn_Title             Title()         Case $msg = $Btn_Add             Add()         Case $msg = $Btn_Edit             Edit()         Case $msg = $Btn_Delete             Delete()         Case $msg = $Btn_Save             Save()         Case $msg = $Btn_Hotkeys             MsgBox("", "", "Shift + Alt + T = Add current active window title")         Case $msg = $Radio2             $Showtext = InputBox(" ", "Text ?", $Showtext)         Case $msg = $GUI_EVENT_MINIMIZE             GUISetState(@SW_HIDE)             TrayItemSetText($Status, "Show window")         Case $msg = $GUI_EVENT_CLOSE Or $msg = $Btn_Exit             $save = MsgBox(36, "", "You wanna save settings?")             If $save = 6 Then Save()             Exit     EndSelect     $msg = TrayGetMsg()     Select         Case $msg = $Status             If TrayItemGetText($Status) = "Hide window" Then                 GUISetState(@SW_HIDE)                 TrayItemSetText($Status, "Show window")             ElseIf TrayItemGetText($Status) = "Show window" Then                 GUISetState(@SW_SHOW)                 GUISetState(@SW_RESTORE)                 TrayItemSetText($Status, "Hide window")             EndIf         Case $msg = $Exit             Exit     EndSelect     _Timer($Begin,10,"Check") WEnd Func _Timer($Var,$Sec,$Func)     $TimerDiff = TimerDiff($Var)     $Timer += $TimerDiff / 1000     If $Timer > $Sec Then         $Timer = 0         Call($Func)     EndIf EndFunc Func Title()     $Item = WinGetTitle("")     _GUICtrlListBox_AddString($List, $Item) EndFunc   ;==>Title Func Add()     $Item = InputBox(" ", "Title name ?")     If @error <> 1 And $Item <> "" Then         _GUICtrlListBox_AddString($List, $Item)     EndIf EndFunc   ;==>Add Func Save()     $Count = _GUICtrlListBox_GetCount($List)     FileDelete($Myini)     For $Items = 0 To $Count - 1         IniWrite($Myini, "List", $Items, _GUICtrlListBox_GetText($List, $Items))     Next EndFunc   ;==>Save Func Load()     $Items = _FileCountLines($Myini) - 2     For $Index = 0 To $Items         $Initem = IniRead($Myini, "List", $Index, "")         _GUICtrlListBox_AddString($List, $Initem)     Next EndFunc   ;==>Load Func Edit()     $Index = _GUICtrlListBox_GetCaretIndex($List)     $Text = _GUICtrlListBox_GetText($List, $Index)     $Edit = InputBox(" ", "Edit title name :", $Text)     If @error <> 1 And $Edit <> "" Then         _GUICtrlListBox_ReplaceString($List, $Index, $Edit)     EndIf EndFunc   ;==>Edit Func Delete()     $Index = _GUICtrlListBox_GetCaretIndex($List)     _GUICtrlListBox_DeleteString($List, $Index) EndFunc   ;==>Delete Func Check()     $Count = _GUICtrlListBox_GetCount($List)     $Title = WinGetTitle("")     For $Items = 0 To $Count - 1         If _GUICtrlListBox_GetText($List, $Items) = $Title Then             ChangeMSNMessage(1, True, $Title)             $Found = True             ExitLoop         EndIf     Next     If $Found = False Then         If GUICtrlRead($Radio1) = $GUI_CHECKED Then             ChangeMSNMessage(2, True, @HOUR & ":" & @MIN)         ElseIf GUICtrlRead($Radio2) = $GUI_CHECKED Then             ChangeMSNMessage(2, True, $Showtext)         Else             ChangeMSNMessage(2, False, "")         EndIf     EndIf     $Found = False EndFunc   ;==>Check Func ChangeMSNMessage($iType, $bEnable, $szText)     Local Const $szFormat = "CoePSX\\0%s\\0%d\\0{0}\\0%s\\0\\0\\0\\0\\0"     Local Const $WM_COPYDATA = 0x4A     Local $szType     Local $szMessage     Local $iSize     Local $pMem     Local $stCopyData     Local $hWindow     ;; Format the message ;;     Switch ($iType)         Case 1             $szType = "Games"         Case 2             $szType = "Office"         Case Else             $szType = "Music"     EndSwitch     $szMessage = StringFormat($szFormat, $szType, $bEnable, $szText)         ;; Create a unicode string ;;     $iSize = StringLen($szMessage) + 1     $pMem = DllStructCreate("ushort[" & $iSize & "]")     For $i = 0 To $iSize         DllStructSetData($pMem, 1, Asc(StringMid($szMessage, $i, 1)), $i)     Next     DllStructSetData($pMem, 1, 0, $iSize)         ;; Create the COPYDATASTRUCT ;;     $stCopyData = DllStructCreate("uint;uint;ptr")     DllStructSetData($stCopyData, 1, 0x547) ;dwData = MSN magic number     DllStructSetData($stCopyData, 2, ($iSize * 2)) ;cbData = Size of the message     DllStructSetData($stCopyData, 3, DllStructGetPtr($pMem)) ;lpData = Pointer to the message         ;; Send the WM_COPYDATA message ;;     $hWindow = DllCall("user32", "hwnd", "FindWindowExA", "int", 0, "int", 0, "str", "MsnMsgrUIManager", "int", 0)     While ($hWindow[0])         DllCall("user32", "int", "SendMessageA", "hwnd", $hWindow[0], "int", $WM_COPYDATA, "int", 0, "ptr", DllStructGetPtr($stCopyData))         $hWindow = DllCall("user32", "hwnd", "FindWindowExA", "int", 0, "hwnd", $hWindow[0], "str", "MsnMsgrUIManager", "int", 0)     WEnd         ;; Cleanup ;;     $pMem = 0     $stCopyData = 0 EndFunc   ;==>ChangeMSNMessage
List.ini (Example) :

[List]
0=Counter-Strike Source
1=Day of Defeat Source
2=FLEXY
3=Portal
4=Team Fortress 2
5=World of Warcraft


Edited by Jex, 27 November 2007 - 07:32 PM.








#2 Ibrahim

Ibrahim

    Universalist

  • Active Members
  • PipPipPipPipPip
  • 282 posts

Posted 24 October 2007 - 10:24 PM

Hey Hey Hey,NIIIIIIiiiiiiiiiiiice <_<

#3 Noobster24

Noobster24

    Adventurer

  • Active Members
  • PipPip
  • 129 posts

Posted 27 November 2007 - 06:33 PM

Hmm looks nice, but it's not working for me, my status doesn't change at all. I manually added some programs (like Notepad, AutoIt Help etc.), but it doesn't change my status actually.

Anyone got it working?

(ps I got v.8.1 of WLM)

Edited by Noobster24, 27 November 2007 - 06:35 PM.

Programs so far:Teh Serializer - Search for licenses for Nero - Windows - Office - Alcohol etc.

#4 Pascal257

Pascal257

    Prodigy

  • Active Members
  • PipPipPip
  • 158 posts

Posted 27 November 2007 - 07:16 PM

Hmm looks nice, but it's not working for me, my status doesn't change at all. I manually added some programs (like Notepad, AutoIt Help etc.), but it doesn't change my status actually.

Anyone got it working?

(ps I got v.8.1 of WLM)


OK now you're posting twice ^^

You might take a look at your settings of WLM...
You have to activate the checkbox on the first page of your settings "Song-Information of WMP"

#5 Jex

Jex

    Polymath

  • Active Members
  • PipPipPipPip
  • 206 posts

Posted 27 November 2007 - 07:26 PM

That script not work with last Autoit version now im updating. After update i can test for work or not. ( But very high chance will work with WLM 8.1 )

Edit : Working without any problem in WLM 8.1.0178

http://img253.imageshack.us/img253/5082/autoitfi4.jpg

Edited by Jex, 27 November 2007 - 07:38 PM.


#6 Noobster24

Noobster24

    Adventurer

  • Active Members
  • PipPip
  • 129 posts

Posted 11 December 2007 - 07:34 PM

Hi,

thanks for the reply, I will try again.
Programs so far:Teh Serializer - Search for licenses for Nero - Windows - Office - Alcohol etc.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users