Search the Community
Showing results for tags 'skype'.
-
Skype UDF v1.2 Introduction :Skype4COM represents the Skype API as objects, with :methodspropertieseventscollectionscachingSkype4COM provides an ActiveX interface to the Skype API. Develop for Skype in a familiar programming environment, such as Visual Studio or Delphi, using preferred scripting languages such as VBScript, PHP, or Javascript. Requirements : Skype 3.0+ must be installedWindows 2000, XP+ Update : Version 1.2 Fixed _Skype_ProfileGetHandle function Version 1.1 Fixed _Skype_ChatGetBookmarked function Added missing _Skype_ChatGetTopic function Version 1.0 Fixed _Skype_ChatGetAll function Version 0.9 Fixed Mute value returned by the _Skype_OnEventMute callback function Version 0.8 Error ObjEvent is set if none already set Version 0.7 Changed _Skype_GetChatActive to _Skype_GetChatAllActive Version 0.6 Added _Skype_GetCache Added _Skype_SetCache Changed Skype_Error function Minor bugs fixed Version 0.5 Fixed _Skype_ChatCreate Version 0.4 Fixed _Skype_ChatGetMessages Fixed "Skype - SciTE.au3" script Version 0.3 Minor changes Updated Skype in AutoIt example Version 0.2 Fixed _Skype_ChatAddMembers Various bugs fixed _Functions list : (346) Example GUI : Notes : Skype's access control must be accepted manually :After running the example script, click on the "Allow access" button of SkypeThis version is NOT complete If you are running on a 64 bits OS, add this line to your script : #AutoIt3Wrapper_UseX64=n Attachments :Pack (UDF + ExampleGUI)Version 1.2 : Skype-UDF_1.0.0.2.zip Examples : (put them into the "Example folder")-Answers to incomming calls even if you are already in a call : Auto Answer.au3-Shows how to use the OnMute event : Mute Event.au3 Happy coding
-
Hi guys, I am trying to backup Skype contacts when the Skype window is minimized or machine is locked. But ControlSend is not working. However when I run program, when Skype is active & focused, same program works. #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseX64=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** $pid = Run("skype.exe") $hWnd = WinWait("[CLASS:tSkMainForm]", "", 10) WinSetState($hWnd, "", @SW_SHOW) Sleep( 1000 ) ControlSend($hWnd,"","TConversationsControl1", "!cdb") If I change WinSetState($hWnd, "", @SW_SHOW) to WinSetState($hWnd, "", @SW_MINIMIZE) The file dialog to save contact as file will never appear. Where FAQs says ControlSend() instead of Send() will work even computer is locked. Thanks for your time. P.S: I've tried to find if backing up Skype contacts violate any EULA but do not find anything. Kindly enlighten me if this post is against forum rules in any sense.
-
Hey, I want the program to make different Actions when some persons come online, depending on the priority you choose in the GUI (1-3). It does not seem to work: #include <Skype.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region --- GUI START --- $mainwin = GUICreate("Skype Notifier", 290, 186, 899, 341) $label_user1 = GUICtrlCreateLabel("User1:", 16, 16, 63, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user2 = GUICtrlCreateLabel("User2:", 16, 48, 39, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user3 = GUICtrlCreateLabel("User3:", 16, 112, 36, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user4 = GUICtrlCreateLabel("User4:", 16, 80, 34, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user5 = GUICtrlCreateLabel("User5:", 160, 80, 49, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user6 = GUICtrlCreateLabel("User6:", 160, 48, 45, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user7 = GUICtrlCreateLabel("User7:", 160, 16, 32, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $input_priority1 = GUICtrlCreateInput("0", 104, 16, 17, 21) $input_priority2 = GUICtrlCreateInput("0", 104, 48, 17, 21) $input_priority3 = GUICtrlCreateInput("0", 104, 80, 17, 21) $input_priority4 = GUICtrlCreateInput("0", 104, 112, 17, 21) $label_user8 = GUICtrlCreateLabel("User8:", 160, 112, 61, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $input_priority5 = GUICtrlCreateInput("0", 240, 16, 17, 21) $input_priority6 = GUICtrlCreateInput("0", 240, 48, 17, 21) $input_priority7 = GUICtrlCreateInput("0", 240, 80, 17, 21) $input_priority8 = GUICtrlCreateInput("0", 240, 112, 17, 21) $button_arrowleft1 = GUICtrlCreateButton("<", 86, 16, 16, 22, $WS_GROUP) $button_arrowright1 = GUICtrlCreateButton(">", 123, 16, 16, 22, $WS_GROUP) $button_arrowleft2 = GUICtrlCreateButton("<", 86, 48, 16, 22, $WS_GROUP) $button_arrowright2 = GUICtrlCreateButton(">", 123, 48, 16, 22, $WS_GROUP) $button_arrowleft3 = GUICtrlCreateButton("<", 86, 80, 16, 22, $WS_GROUP) $button_arrowright3 = GUICtrlCreateButton(">", 123, 80, 16, 22, $WS_GROUP) $button_arrowleft4 = GUICtrlCreateButton("<", 86, 112, 16, 22, $WS_GROUP) $button_arrowright4 = GUICtrlCreateButton(">", 123, 112, 16, 22, $WS_GROUP) $button_arrowleft5 = GUICtrlCreateButton("<", 222, 16, 16, 22, $WS_GROUP) $button_arrowright5 = GUICtrlCreateButton(">", 259, 16, 16, 22, $WS_GROUP) $button_arrowleft6 = GUICtrlCreateButton("<", 222, 48, 16, 22, $WS_GROUP) $button_arrowright6 = GUICtrlCreateButton(">", 259, 48, 16, 22, $WS_GROUP) $button_arrowleft7 = GUICtrlCreateButton("<", 222, 80, 16, 22, $WS_GROUP) $button_arrowright7 = GUICtrlCreateButton(">", 259, 80, 16, 22, $WS_GROUP) $button_arrowleft8 = GUICtrlCreateButton("<", 222, 112, 16, 22, $WS_GROUP) $button_arrowright8 = GUICtrlCreateButton(">", 259, 112, 16, 22, $WS_GROUP) $button_apply = GUICtrlCreateButton("Apply", 176, 144, 103, 25, $WS_GROUP) GUICtrlSetFont(-1, 8, 400, 0, "Verdana") $checkbox_busy = GUICtrlCreateCheckbox("Busy Mode", 16, 144, 89, 25) GUICtrlSetFont(-1, 8, 400, 0, "Verdana") $checkbox_logfile = GUICtrlCreateCheckbox("Log File", 112, 144, 65, 25) GUISetState(@SW_SHOW) #EndRegion --- GUI END --- Global $oSkype = ObjCreate("Skype4COM.Skype") Global $oUser1 = $oSkype.User("User1") Global $oUser2 = $oSkype.User("User2") Global $oUser3 = $oSkype.User("User3") Global $oUser4 = $oSkype.User("User4") Global $oUser5 = $oSkype.User("User5") Global $oUser6 = $oSkype.User("User6") Global $oUser7 = $oSkype.User("User7") Global $oUser8 = $oSkype.User("User8") Global $SkypeStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE") Global $SkypeStatus_Online = $oSkype.Convert.TextToUserStatus("ONLINE") Global $SkypeStatus_Ringing = $oSkype.Convert.TextToCallStatus("RINGING") Global $SkypeStatus_Inprogress = $oSkype.Convert.TextToCallStatus("INPROGRESS") Global $SkypeStatus_Failed = $oSkype.Convert.TextToCallStatus("FAILED") Global $SkypeStatus_Refused = $oSkype.Convert.TextToCallStatus("REFUSED") Global $SkypeStatus_Cancelled = $oSkype.Convert.TextToCallStatus("CANCELLED") Global $SkypeStatus_Finished = $oSkype.Convert.TextToCallStatus("FINISHED") Global $SkypeStatus_Busy = $oSkype.Convert.TextToCallStatus("BUSY") Global $SkypeStatus_Available = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Global $SkypeStatus_Invisible = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Global $mutestatus = $oSkype.Mute Global $inputnumber1 = 0 Global $inputnumber2 = 0 Global $inputnumber3 = 0 Global $inputnumber4 = 0 Global $inputnumber5 = 0 Global $inputnumber6 = 0 Global $inputnumber7 = 0 Global $inputnumber8 = 0 Global $readpriority1 = GUICtrlRead($input_priority1) Global $readpriority2 = GUICtrlRead($input_priority2) Global $readpriority3 = GUICtrlRead($input_priority3) Global $readpriority4 = GUICtrlRead($input_priority4) Global $readpriority5 = GUICtrlRead($input_priority5) Global $readpriority6 = GUICtrlRead($input_priority6) Global $readpriority7 = GUICtrlRead($input_priority7) Global $readpriority8 = GUICtrlRead($input_priority8) Global $readcheckboxbusy = GUICtrlRead($checkbox_busy) Global $readcheckboxlogfile = GUICtrlRead($checkbox_logfile) Global $checkboxbusy = 0 Global $applystart = 0 Global $checkdone1 = 0 If Not $oSkype.Client.IsRunning Then $oSkype.Client.Start() EndIf $oSkype.Attach(5) If $SkypeStatus_Offline = $oSkype.CurrentUserStatus Then $oSkype.ChangeUserStatus($SkypeStatus_Online) EndIf While 1 $nMsg = GUIGetMsg() CheckingProcess() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $button_apply Global $readpriority1 = GUICtrlRead($input_priority1) Global $readpriority2 = GUICtrlRead($input_priority2) Global $readpriority3 = GUICtrlRead($input_priority3) Global $readpriority4 = GUICtrlRead($input_priority4) Global $readpriority5 = GUICtrlRead($input_priority5) Global $readpriority6 = GUICtrlRead($input_priority6) Global $readpriority7 = GUICtrlRead($input_priority7) Global $readpriority8 = GUICtrlRead($input_priority8) Global $readcheckboxbusy = GUICtrlRead($checkbox_busy) Global $readcheckboxlogfile = GUICtrlRead($checkbox_logfile) Global $applystart = 1 Case $button_arrowleft1 $inputnumber1 = $inputnumber1 - 1 If $inputnumber1 < 0 then $inputnumber1 = 0 GUICtrlSetData($input_priority1, $inputnumber1) Case $button_arrowright1 $inputnumber1 = $inputnumber1 + 1 If $inputnumber1 > 3 then $inputnumber1 = 3 GUICtrlSetData($input_priority1, $inputnumber1) Case $button_arrowleft2 $inputnumber2 = $inputnumber2 - 1 If $inputnumber2 < 0 then $inputnumber2 = 0 GUICtrlSetData($input_priority2, $inputnumber2) Case $button_arrowright2 $inputnumber2 = $inputnumber2 + 1 If $inputnumber2 > 3 then $inputnumber2 = 3 GUICtrlSetData($input_priority2, $inputnumber2) Case $button_arrowleft3 $inputnumber3 = $inputnumber3 - 1 If $inputnumber3 < 0 then $inputnumber3 = 0 GUICtrlSetData($input_priority3, $inputnumber3) Case $button_arrowright3 $inputnumber3 = $inputnumber3 + 1 If $inputnumber3 > 3 then $inputnumber3 = 3 GUICtrlSetData($input_priority3, $inputnumber3) Case $button_arrowleft4 $inputnumber4 = $inputnumber4 - 1 If $inputnumber4 < 0 then $inputnumber4 = 0 GUICtrlSetData($input_priority4, $inputnumber4) Case $button_arrowright4 $inputnumber4 = $inputnumber4 + 1 If $inputnumber4 > 3 then $inputnumber4 = 3 GUICtrlSetData($input_priority4, $inputnumber4) Case $button_arrowleft5 $inputnumber5 = $inputnumber5 - 1 If $inputnumber5 < 0 then $inputnumber5 = 0 GUICtrlSetData($input_priority5, $inputnumber5) Case $button_arrowright5 $inputnumber5 = $inputnumber5 + 1 If $inputnumber5 > 3 then $inputnumber5 = 3 GUICtrlSetData($input_priority5, $inputnumber5) Case $button_arrowleft6 $inputnumber6 = $inputnumber6 - 1 If $inputnumber6 < 0 then $inputnumber6 = 0 GUICtrlSetData($input_priority6, $inputnumber6) Case $button_arrowright6 $inputnumber6 = $inputnumber6 + 1 If $inputnumber6 > 3 then $inputnumber6 = 3 GUICtrlSetData($input_priority6, $inputnumber6) Case $button_arrowleft7 $inputnumber7 = $inputnumber7 - 1 If $inputnumber7 < 0 then $inputnumber7 = 0 GUICtrlSetData($input_priority7, $inputnumber7) Case $button_arrowright7 $inputnumber7 = $inputnumber7 + 1 If $inputnumber7 > 3 then $inputnumber7 = 3 GUICtrlSetData($input_priority7, $inputnumber7) Case $button_arrowleft8 $inputnumber8 = $inputnumber8 - 1 If $inputnumber8 < 0 then $inputnumber8 = 0 GUICtrlSetData($input_priority8, $inputnumber8) Case $button_arrowright8 $inputnumber8 = $inputnumber8 + 1 If $inputnumber8 > 3 then $inputnumber8 = 3 GUICtrlSetData($input_priority8, $inputnumber8) EndSwitch WEnd Func CheckingProcess() If $applystart = 0 then return Global $userstatus1 = $oSkype.Convert.OnlineStatusToText($oUser1.OnlineStatus) If $readpriority1 = 1 and $userstatus1 = "Online" or "Busy" then GUICtrlSetData($input_priority1, "!") If $readpriority1 = 2 and $userstatus1 = "Online" or "Busy" then ChatAlert() If $readpriority1 = 3 and $checkboxbusy = 0 and $userstatus1 = "Online" or "Busy" then MsgBox(0, "User Online!", "User1 ist Online!"&Chr(10)) If $readpriority1 = 3 and $checkboxbusy = 1 and $userstatus1 = "Online" or "Busy" then ChatAlert2() If $userstatus1 = "Do not Disturb" then $userstatus1 = "Busy" If $readcheckboxlogfile = 1 and $userstatus1 = "Online" or "Busy" then FileWrite("SkypeLog.txt", @MDAY&"/"&@MON&"/"&@YEAR&"/"&@HOUR&":"&@MIN&":"&@SEC&": "&"User1"&" is "&$userstatus1) Global $userstatus2 = $oSkype.Convert.OnlineStatusToText($oUser2.OnlineStatus) If $readpriority2 = 1 and $userstatus2 = "Online" or "Busy" then GUICtrlSetData($input_priority1, "!") If $readpriority2 = 2 and $userstatus2 = "Online" or "Busy" then ChatAlert() If $readpriority2 = 3 and $checkboxbusy = 0 and $userstatus2 = "Online" or "Busy" then MsgBox(0, "User Online!", "User2 ist Online!") If $readpriority2 = 3 and $checkboxbusy = 1 and $userstatus2 = "Online" or "Busy" then ChatAlert2() If $readcheckboxlogfile = 1 and $userstatus2 = "Online" or "Busy" then FileWrite("SkypeLog.txt", @MDAY&"/"&@MON&"/"&@YEAR&"/"&@HOUR&":"&@MIN&":"&@SEC&": "&"User2"&" is "&$userstatus2) EndFunc Func ChatAlert() EndFunc Func ChatAlert2() EndFuncI hope you can help me! =) Edit: I will make it a bit more neat when I get it to work ^^
-
Hey, I want to make a application which calls a User and returns the error / status of the call. I don't think it works, the status stays "routing". Not 100% sure what that means for me. $oSkype = ObjCreate("Skype4COM.Skype") $oUser = $oSkype.User("User") $oSkypeEvent = ObjEvent($oSkype,"Skype_") $oError = ObjEvent("AutoIt.Error","MyErrFunc") $cUserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE") $cUserStatus_Online = $oSkype.Convert.TextToUserStatus("ONLINE") $cCallStatus_Ringing = $oSkype.Convert.TextToCallStatus("RINGING") $cCallStatus_Inprogress = $oSkype.Convert.TextToCallStatus("INPROGRESS") $cCallStatus_Failed = $oSkype.Convert.TextToCallStatus("FAILED") $cCallStatus_Refused = $oSkype.Convert.TextToCallStatus("REFUSED") $cCallStatus_Cancelled = $oSkype.Convert.TextToCallStatus("CANCELLED") $cCallStatus_Finished = $oSkype.Convert.TextToCallStatus("FINISHED") $cCallStatus_Busy = $oSkype.Convert.TextToCallStatus("BUSY") $cAttachmentStatus_Available = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") If Not $oSkype.Client.IsRunning Then $oSkype.Client.Start() EndIf Func Skype_AttachmentStatus($aStatus) MsgBox(0,"","Attachment status " & $oSkype.Convert.AttachmentStatusToText($aStatus)) If $aStatus = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Then $oSkype.Attach() EndIf EndFunc While 1 If $oSkype.CurrentUserStatus = $oSkype.Convert.TextToUserStatus("ONLINE") Then ExitLoop Else $oSkype.ChangeUserStatus($oSkype.Convert.TextToUserStatus("ONLINE")) EndIf Sleep(1000) WEnd If $cUserStatus_Offline = $oSkype.CurrentUserStatus Then $oSkype.ChangeUserStatus($cUserStatus_Online) EndIf $oCall = $oSkype.PlaceCall($oUser.Handle); Start Call $callstatusraw = $oCall.Status;Raw Call Status $callstatus = $oSkype.Convert.CallStatusToText($callstatusraw);Call Status converted to Text While $callstatusraw <> $cCallStatus_Inprogress MsgBox(0, "", ""&$callstatus);Displays the Call Status WEndThe part until the $oCall Variable is from Andy Flesner (Airwolf123). But works fine.
-
Hi, I need a script to change the Skype status available/away/etc. I've tried the following, but it doesn't work very well, because quite often, the compiled app remains stuck in task manager without changing the status. #NoTrayIcon #include "SkypeCOM.au3" Opt("GUIOnEventMode", 0) $oSkype.ChangeUserStatus(1)The compiled app is triggered by a perl script each 1-5 minutes. A short switch from available to away and back to available.
-
I am curious if someone that understands the Skype UDF could answer a simple question for me. Is it possible for me to make a simple script that would call a phone number play a recording and know if the users presses a button then hang up. Thanks any help is greatly helpful
-
Ever wanted to keep a copy of a video message you got (or sent) through Skype? It is actually not so hard to get it manually, but here is a script that does it automatically. Before you try it, please note: the script has been tested on Skype v.7.x, running on Windows 7, but can be easily modified to work with Skype versions for Windows 8.x (or so I read). I have no Windows 8.x machine, and do not intend to change the script to support it until further notice. the URLs found in the Skype database are dynamic, and get invalidated after a while (within the hour in my experience). To get valid URLs in the database, open Skype and play the video messages you want to download. Once it starts playing within Skype, the link should be valid again. Try running the script after that. if the script takes a while to start, it could be because it didn't find sqlite3.dll, and will download it. If you want it to start without delay, put a copy of sqlite3.dll where the script can find it, e.g. in the same folder as the script. if you have more than one Skype user saved under your profile folder (@UserProfileDir & "AppDataRoamingSkype"), the script will go through all of them. Once again, only valid links will be downloaded. DownloadSkypeVideoMessages.au3
-
I had received lots of requests to create a program capable to erase single users chat records from skype This result cannot be achieved by operating with the SKYPE4COM object library. The remove function even if coded is not available to external calls For this reason I decided to start operating directly on the database "main.db" and browsing it through SQLlite calls Weather apparently trivial the database looked more complex to manage than expected The program is fully functional and I am including the full code. It can be integrated by creating a window where only specific chats are removed and not the full block as I decided to do I hope this program will help lots of user that othwerwise are all obliged to go for expensive solutions that most of the time work only in conjunction with administrator rights. My code does not require any special access and does not installs any regedit call, it is therefore perfectly pocket-portable and will guarantee your privacy in any situation dbbrows2.au3
-
I have a script for starting all my startup programs. But when I use the script to start skype, skype crashes immediately. When I start up skype using the shortcut on the desktop it works fine. (I'm running Windows 7 64-bit with AutoIt3.exe in compatibility mode for Windows XP.) Any ideas? Dim $answer If Not ProcessExists("wonderfl.exe") Then Run("C:\Program Files (x86)\Wonderful\wonderfl.exe") Sleep(100) EndIf $answer = MsgBox(4, "", "Run remaining startup programs?", 60) If $answer = 7 Then Exit ; if no button is selected, exit script If Not ProcessExists("PureText.exe") Then Run("C:\Program Files (x86)\Puretext\PureText.exe") Sleep(100) EndIf If Not ProcessExists("2xExplorer.exe") Then Run("C:\Program Files (x86)\2xExplorer\2xExplorer.exe") Sleep(100) EndIf If Not ProcessExists("RBTray.exe") Then Run("C:\Program Files\RBTray Minimize to Tray\64bit\RBTray.exe") Sleep(100) EndIf If Not ProcessExists("FileBX.exe") Then Run("C:\Program Files (x86)\FileBX\FileBX.exe") Sleep(100) EndIf If Not ProcessExists("FreeWheel.exe") Then Run("C:\Program Files (x86)\FreeWheel\FreeWheel.exe") Sleep(100) EndIf If Not ProcessExists("firefox.exe") Then Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe") Sleep(10000) EndIf If Not ProcessExists("thunderbird.exe") Then Run("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe") Sleep(10000) EndIf If Not ProcessExists("HprSnap7.exe") Then Run("C:\Program Files (x86)\HyperSnap 7\HprSnap7.exe") Sleep(10000) EndIf If Not ProcessExists("magicJack.exe") Then Run("C:\Users\shmuelw\AppData\Roaming\mjusbsp\magicJack.exe") Sleep(10000) EndIf If Not ProcessExists("Skype.exe") Then Run("C:\Program Files (x86)\Skype\Phone\Skype.exe") Sleep(100) EndIf WinMinimizeAll()
-
Skype TM v1.6 Update : Version 1.1 Process detection added Version 1.2 Fixed error when opening saved .stm file Fixed bug with the skype window Version 1.3 Fixed context menu problem on new item imported Fixed other various bugs Version 1.4 Fixed error when Skype TM started-up before Skype Version 1.5 Added Hotkey to show Skype TM window Added Auto Skype TM open TextMood and play it Version 1.6 New GUI, now available in taskbar Fixed minor bugs Description : Skype TM can let you animate your personnal message in Skype like in wlm RichEdit is included in Skype PM (you can add Bold, Italic, Underlined format to text and put color on it ) Screenshot : Main GUI : Skype TextMood : How to use it ? Create MoodText : -Run Skype if the process doesn't exists, -Run Skype TM and wait for notice from Skype that tell you to allow Skype TM to use Skype or not - Select 'Access allowed' -Look at the left-top corner of your main Skype window, and you will see the 'Skype TM' button (For Exit Skype TM at any moment, right click on this button and select 'Exit') -Click on Skype TM button and you have now the main window of Skype TM, -Here is the list view of TextMood steps, click on 'Add Item' for add new TextMood step -Now you can right-click on this item and select 'Edit', -Add your TextMood and build it as you like, then you can show 'preview' of RichEdit text by Clicking on 'Rich Edit' button -Between steps you can choose the sleep time -Click on apply, you're now on main gui, -Click on 'Play TM' to start the animation in Skype ! Use Process : -Click on 'other...' to have access to Skype TM cmd window, -to always display your TextMood, enter the 'Skype.exe' process in Edit Note : -Skype TM works better with Skype 4.0 -Save your animations with the button 'Save...' or Hotkey Ctrl + S -Open your animations with the button 'Open...' or HotKey Ctrl + O -Run Skype before SkypeTM with the button '?' -Run Skype TM on startup with the button '?' -Show Skype TM window with Hotkey Ctrl + Alt + T + M Special thanks : ProgAndy for his RichEdit_UDF Attachments : Skype TM pack link : Skype_TM.txt Enjoy, Skype users ! Cheers, FireFox.