[Win32] MSN 6.0 FriendlyName / nickname aanpassen? *

Pagina: 1
Acties:

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Hey.

Weet iemand hoe ik in MSN 6.0 programmatisch mijn nickname kan aanpassen?

Voor MSN 4.6 lukte dit door het "Messenger.MsgrObject" op te vragen, en dan vervolgens via de properties Services->PrimaryService->FriendlyName de FriendlyName te wijzigen.

Voor MSN 6.0 is de ProgID volgens mij hernoemd naar "MSNMessenger.MsgrObject" - nu, dat is niet zo'n probleem, maar het heeft geen "Services" property meer :(.
Bovendien kan ik ook in geen van de 4 TypeLibs die in de messenger executable zitten de declaratie vinden van MsgrObject.

Het lijkt erop dat ik nu gebruik moet maken van het "Messenger"-object (die implementeert IMessenger3, en heeft wel een "Services" property), maar van het Messenger-object kan ik weer geen ProgID vinden...

Iemand suggesties?

  • jvvv
  • Registratie: November 2002
  • Laatst online: 08-05 15:37
http://msdn.microsoft.com ... Zal wel te vinden zijn

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

offtopic:
P&W FAQ - De "quickstart" -> PUNTJE 1. Topictitle prefixed.

Professionele website nodig?


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Wellicht is dit in Messenger 6 nog niet helemaal ondersteund, omdat Messenger 6 nog niet officieel uit is? HEet is en blijft een beta, dus misschien komt dat nog. Net als de SDK voor Messenger 6

[slaken zoutleggerij]
MSN is het Microsoft Network. Jij hebt het over de MSN Messenger ;)
[/slaken zoutleggerij]

My personal website


Verwijderd

Msn 6.0 is geen beta meer... maar je nickname kan je toch gewoon onder opties veranderen?

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Ok, iemand wees me er even fijntjes op dat ik niet per se een ProgID nodig heb om een COM-object te creeren, het kan ook direct met een ClassID... En laat ik die nu wel uit de type libraries kunnen halen...
(Voor de geinteresseerden: {b69003b3-c55e-4b48-836c-bc5946fc3b28})

Nu zit ik wel met het volgende probleem: de properties zoals ik ze eerst noemde (Services->PrimaryService->FriendlyName) zijn nu wel beschikbaar, alleen is FriendlyName niet langer meer te zetten - het is een read-only property geworden :(

Iemand suggesties om dit te omzeilen toevallig?

En wat betreft de msdn-tip: Het enige wat ik kan vinden is een link naar de documentatie van Windows Messenger 4.7... En de objectmodellen van die twee applicaties verschillen toch behoorlijk...

Cheers.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Verwijderd schreef op 03 July 2003 @ 14:53:
Msn 6.0 is geen beta meer... maar je nickname kan je toch gewoon onder opties veranderen?
Nou.... Kijk dan maar eens HIER, dan zie je dit staan:
Testversie van MSN Messenger 6.0 downloaden

My personal website


  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017

Parcye

Mr C

Ik heb het idee dat FriendlyName read only is vanaf MSN 5.0....

En ik krijg in VC6 de .exe niet eens geimport, of komt dit door een Win98SE bak?

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Hmm, idd, read-only... :(

Importen van de .exe gaat bij mij (Win2k) wel gewoon, maar lijkt me niet dat dat iets OS-specifieks is...

Welke foutmeldingen krijg je bij het importen? Ik neem aan dat je met importen gebruik maakt van '#import "bestand.exe"' ?

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 18:53

RayNbow

Kirika <3

Volgende stukje code heb ik hier gevonden: http://www.msnfanatic.be/forums/index.php?showtopic=3801


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'PLAATS IN MODULE
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ 
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _ 
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _ 
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" _ 
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ 
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const VK_SPACE = &H20
Public Const WM_COMMAND = &H111
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SETTEXT = &HC
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE

Public Property Let FriendlyName(ByVal sNewFriendlyName As String)
Dim x&, button&, edit As Long
  objMessenger.OptionsPages 0, MOPT_GENERAL_PAGE
  x = FindWindow("#32770", vbNullString)
  x = FindWindowEx(x, 0, "#32770", vbNullString)
  edit = FindWindowEx(x, 0, "edit", vbNullString)
  Call SendMessageByString(edit, WM_SETTEXT, 0, sNewFriendlyName)
  x = FindWindow("#32770", vbNullString)
  button = FindWindowEx(x, 0, "button", vbNullString)
  Call SendMessageLong(button, WM_KEYDOWN, VK_SPACE, 0)
  Call SendMessageLong(button, WM_KEYUP, VK_SPACE, 0)
End Property


Visual Basic:
1
2
'Hoe te gebruiken:
FriendlyName = "Je Naam Hier"

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Hahaha... briljante hack :D

Zo kan het natuurlijk ook - gewoon user-input simuleren. Cool, hier kom ik zekers te weten weer een heel stuk verder mee!

Cheers :)

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017

Parcye

Mr C

Nu nog omzetten naar Delphi of C++.... en TSR van maken zoals dat in dos zo mooi ging ;)

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • mocean
  • Registratie: November 2000
  • Laatst online: 15-08 04:26
offtopic:
Mmm, dus we krijgen voor MSN6 ook weer van die vervelende programma's die vertellen wat Winamp aan het spelen is etc...

Koop of verkoop je webshop: ecquisition.com


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Mmm, dus we krijgen voor MSN6 ook weer van die vervelende programma's die vertellen wat Winamp aan het spelen is etc...
Sterker nog, als winamp van liedje veranderd krijg je van het nieuwe liedje het album waar het op staat als schermafbeelding :D

Dat moet dan ook zo te doen zijn...

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Hoe leg je dan de reference naar objMessenger??
Want dat krijg ik niet voor elkaar met Messenger 6.

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017

Parcye

Mr C

offtopic:
PSV ;) mooi mooi :D


Door een import van de .exe..... even zoeken op #import en msn en je komt hem tegen op GoT....

Dit is in VC6 (dacht ik)

In VB.. Geen idee, Delphi, wou dat ik het wist

[ Voor 23% gewijzigd door Parcye op 08-07-2003 11:51 . Reden: Beetje erbij, gegroet, PSVer ]

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
robjanssen schreef op 08 July 2003 @ 11:44:
Hoe leg je dan de reference naar objMessenger??
Want dat krijg ik niet voor elkaar met Messenger 6.
Ik weet niet in welke taal je 't wil doen, maar 't hangt ervan af of je een type library kunt importeren. Zo ja, dan kun je gewoon de messenger .exe file importeren (daar zitten de type libraries als resources in), en dan heb je meteen alle interface-definities en GUIDs die je nodig hebt.

Zonder type-library kan ook, maar dan wordt 't iets minder elegant. Omdat er geen ProgID bestaat voor Msn 6 (Msn 4.6 had bijv. "Messenger.MsgrObject"), moet je het object via z'n class-id aanmaken. Het class-id is:
{b69003b3-c55e-4b48-836c-bc5946fc3b28}

In C zou 't er zo uit komen te zien:
C++:
1
2
3
4
5
6
7
IDispatch *pDisp = NULL;
CLSID clsid = {0xb69003b3, 0xc55e, 0x4b48, {0x83, 0x6c, 0xbc, 0x59, 0x46, 0xfc, 0x3b, 0x28}};
hr = CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)&pDisp);
if(FAILED(hr))
    //...
}
//DispInterface pointer van een IMessenger3 interface zit nu in pDisp


De documentatie van de interfaces is hier: http://msdn.microsoft.com/library/en-us/messenger/reference/messengeruasdk/ifaces/imessenger/imessenger.asp?frame=true te vinden
Hopelijk helpt dit - Cheers :)

[ Voor 14% gewijzigd door MrBucket op 08-07-2003 12:19 ]

Pagina: 1