Expand to see contents
This is a small project to "bridge" the Windows 10 Media status with the MSN client, specifically, the escargot project version of the client. With this program you can modify the current song message that is displayer on messenger and you even have control on what information is beign shown. This means that anything that displays a status on facebook (i.e. Spotify, Youtube, etc.) will be displayed on Windows Messenger for others to see, just like the old times!
I found the escargot project and decided to use it in order to play a bit with MSN again and I remembered the option to display the current song you are listening. After some digging I saw the project supports that feature but it mostly needs you to use any old media player that connects to MSN in order to display the song that you are listening to. I didn't want to use any old media player since I don't save music files on my computers like I used to. I look into this a bit and found other options for just displaying the spotify status and that was alright but some of those projects were "forgotten", had unresolved bugs or simply weren't 100% what I wanted. So, I decided to do what anyone on my position would do: take things into my own hands and research how to make this aplication for Windows 10.
If you want to use this project, modify it or just compile it yourself, you need four things: Visual Studio, the .NET cross-platform tools, the .NET desktop tools and the Universal Windows Platform tools. In order to download these you need to:
- Download Visual Studio community
not VS Codefrom the official website and install it. - When the installer runs, the Visual Studio installer window will appear asking you for the complements that you want to add. Here you want to select the .NET Core cross-platform development option and before you click next.
- Select the .NET desktop development as well as the Universal Windows Platform development. These complements are important since the project used them for creating it's interface as well as working with the Windows 10 media API.
- Click on "install" and the Visual Studio IDE will be installed with the components selected.
Now that you have the necessary tools to build, debug and modify this project, you now need to have it on your local machine. Simply clone or download this repository in any folder you want on your computer.
Open the Visual Studio IDE now, you can do so from the Visual studio installer window or simply searching for it on your computer's programs. If it's the first time you open it it might ask you for your Microsoft's account (you can skip this step), what colors you want to use, etc. After that is done It will give you a menu to create projects or open an existing one. Simply click on the open an existing one option and navigate to the folder where you previously cloned this repository. After this, wait a bit and once the project opens you are done.
The way I deploy this project is by using a command from the command line (the build configurations often make too many files instead of a simple .exe
). But before you run it for the first time, follow these steps:
- Open the folder where you have the repository.
- Open the
TaskTrayUI
folder. - Create a folder named
Publish
. - Copy the
Resources
folder and paste inside the one you just created. - On the Visual Studio IDE open a development terminal or just open CMD, powershell or any terminal you have on Windows on the project's folder
(psst, it's the folder where theand paste the following command:.sln
file is)
dotnet publish -r win-x86 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --output ".\TasktrayUI\Publish"
Once it runs, and assuming it didn't had any errors, you will have an AudioSyncMSNUI.exe
file as well as an AudioSyncMSNUI.pdb
file. The AudioSyncMSNUI.pdb
can be removed but keep the .exe
and the copy of the Resources
folder togheter wherever you want to have the app. Once you have these element where you want to have them, you can simply run the program by double clicking on the .exe
file.
In order to create this project I used documentation projects and examples from different people and places, If anyone wants to create a smiliar thing for a MSN client I'd like to have an easy to find section for anyone to read on the subject and this is it. If you want to know more about Windows 10 media API or how to interact with messenger, these are the resources I used:
Expand to see contents
- MSN message queue, how to use and documentation:
- Segin's psymp3 wiki Was essential in understanding how to detect the MSN window as well as how to both format and send the message.
- Ledyba's Clock_For_WindowsLiveMessenger Helped me a bit on how to organize the code for detecting and sending the message to MSN
- lowjoel's jrmc-oss-plugins I was using an incorrect
sendMessage
function from theuser23.dll
, this project was really helpful to find and know how to use the correct one. - Microsoft's findWindow, Microsoft's COPYDATASTRUCT, sendMessage and Message queues Also helped me understand a lot about the structure of the messages and the syntax used for this.
- This stackoverflow quetion was where I found how to call external
.dll
s from C# (really important to find the msn window and to send the message using the windows APIs).
- For the Window's media session API I mostly used the Microsoft's documentation but I also used other sources as guide. All of them were:
- Pipe's coding clues For examples on how to call the Window's media transport protocol from a new C# .NET 5 project.
- Microsoft's session manager documenation To see what kinds of events are in the controller and other information on how to use it.
If anyone wants to give me any help or ideas, you cando so by making new Issues or Pull requests.
This repository has the standard MIT license. You can find it here.