0

I'm wanting to build a central notifications hub that can interact with and delay, control or manage Notifications that are generated from different software (such as Outlook, Skype, Live Messenger, Facebook Messenger, etc.) on a Windows PC. Unfortunately, i'm not sure where to start looking and how to achieve it? Any kind of help would be really appreciated.

Haseeb Ahmed
  • 643
  • 5
  • 16
  • 1. Learn to speak each service's protocol. 2. Log in to each service. 3. ??? 4. PROFIT! – cHao Aug 25 '14 at 05:18
  • Well, Facebook, and Outlook Live (365) have API's you can download, so start there (you might need to write a c# interface to them or port some code). Skype also has a Desktop API you can download. That just leaves Live Messenger. Which also has an api but it might not do everything you need, Windows Live Messenger Library – Ryan Mann Aug 25 '14 at 05:27
  • Optionally you could just use Trillian, which already does most of everything you listed and make a Trillian Plugin. – Ryan Mann Aug 25 '14 at 05:28
  • Really...this is a much bigger question than you'd think. Way too big to cover on a Q/A site. I know of at least two apps (Trillian and Pidgin) that have been working on this kind of thing for ages. Pidgin is open-source, if you want to take a look and see how it does what it does if you really want to roll your own. As Rylos mentioned, though...you might do better to just take one of them and plug into it. – cHao Aug 25 '14 at 05:34
  • @cHao Yes, i know its a really big question but I'm not asking for a complete how-to answer. I just want to be pointed in the right direction. – Haseeb Ahmed Aug 25 '14 at 06:07
  • @Ryios You understood me wrong. I don't want to manage each platform through my software. I want my software to be able to suppress notifications from 3rd party software. Let me give you an example, lets say that I'm working and i set my software status to busy, what my software will do is that whenever Skype or any other software generates a notification it'll suppress it and save it. When i tell it that im free now, it'll show me all the notifications in a hub or notification center. – Haseeb Ahmed Aug 25 '14 at 06:11
  • @haseebahmed7: Oi. That sounds even more ambitious than what i was thinking you were asking about. It's getting into that territory where if you have to ask, you probably won't be able to make sense of the answer. There's a bunch of background knowledge required. – cHao Aug 25 '14 at 06:51
  • @cHao I'm starting research on this, which is why i just want a starting point rest i can manage :-) – Haseeb Ahmed Aug 25 '14 at 09:54
  • Ok, I understand now. But it's not entirely possible without injecting. If the API's do not offer what you want, then you will have to build dynamic dll's in c++ for each technology that you then inject into their processes to intercept their actions. Incredibly ambitious, if not impossible entirely. And possibly against the Terms of Usage agreement for one or all of said technologies. First facebook is a website, which also has a plethora of devices that it runs on, not to mention skype, facebook, and live messenger could be running on multiple devices as well as the PC. – Ryan Mann Aug 25 '14 at 14:52
  • @Ryios this is just a research project so no Terms would be violated. Microsoft Research has done something similar and I'm trying to base my work on theirs. I contacted them but they haven't replied yet so i was just trying to get up to speed meanwhile. When i said Facebook i meant Facebook Messenger, as for the rest it doesn't matter on how many devices they are connected on, i just want to handle notifications for the PC :-) – Haseeb Ahmed Aug 25 '14 at 16:14
  • Hmm, probably the easiest thing to do would be to would be to use something like SharpPcap to intercept network traffic to the apps, analyze their protocol, and catch them (block them from arriving at their destination). Then later when no longer busy, send them to their original destinations. http://sourceforge.net/projects/sharppcap/ – Ryan Mann Aug 25 '14 at 19:16
  • If you end up needing to do dll injection, your going to need to get real familiar with the Windows Debugging Functions, C++ Dll's (because you can't inject .net dlls into native process 'well you can, but that will cause the process to load the .net framework and you could run into version conflicts, e.g. not easy'. You'll likely need to reverse engineer some ASM x86 instruction code and maybe inject some as well. – Ryan Mann Aug 25 '14 at 19:17
  • @Ryios Sharppcap idea is nice, or perhaps the best :-D I also did find this: http://www.growlforwindows.com/gfw/developers.aspx but im still looking into it :-) – Haseeb Ahmed Aug 26 '14 at 05:03

0 Answers0