quote:
Originally posted by lopardo
So, my question is how does Plus read the AppSettings value to determine if MSN Messenger should start when Windows starts?
When Plus is started with /WinStart:
====================================
Plus! performs:
1) Unknown1 = RegGet(HKEY_CURRENT_USER\Software\Patchou\MsgPlus2\HandleMessengerStart)
AutoMsg4Start = RegGet(HKEY_CURRENT_USER\Software\Patchou\MsgPlus2\AutoMsg4Start)
AutoMsg5Start = RegGet(HKEY_CURRENT_USER\Software\Patchou\MsgPlus2\AutoMsg5Start)
2) When "AutoMsg5Start" or "AutoMsg4Start" has a value (the normal startup string) then Messenger is strarted up automaticly
3) Plus! process ends (?)...
.........
.........
You exit Messenger:
Nothing happens, because Plus! process was already stopped (?)...
When Plus is started without /WinStart
======================================
Plus! performs:
AppState = RegGet(HKEY_CURRENT_USER\Software\Microsoft\MessengerService\AppSettings)
ForceLoad = RegGet(HKEY_LOCAL_MACHINE\SOFTWARE\Patchou\MsgPlus2\ForceLoad)
.........
.........
You exit Messenger:
Plus! performs (explained in pseudo-code again):
MSNString = RegGet(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\msnmsgr)
RegDelete(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MessengerPlus2)
Unknown1 = RegGet(HKCU\Software\Patchou\MsgPlus2\HandleMessengerStart)
Unknown2 = RegGet(HKCU\Software\Patchou\MsgPlus2\HandleMessengerStart)
/* meaning? and why twice? */
IF MSNString = NOT Empty THEN
AppState = RegGet(HKCU\Software\Microsoft\MSNMessenger\AppSettings)
IF CheckBit(AppState, 17) = 1 THEN
RegSet(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MessengerPlus3, "c:\blah\msgplus.exe /Winstart")
RegSet(HKCU\Software\Patchou\MsgPlus2\AutoMsg5Start, "c:\blah\msnmsgr.exe /background")
/* (or "AutoMsg4Start", depending on what messenger version is used I assume) */
RegDelete(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\msnmsgr)
END IF
ELSE
IF RegGet(HKCU\Software\Patchou\MsgPlus2\AutoMsg5Start) = NOT Empty THEN
AppState = RegGet(HKCU\Software\Microsoft\MSNMessenger\AppSettings)
IF CheckBit(AppState, 17) = 1 THEN
RegSet(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MessengerPlus3, "c:\blah\msgplus.exe /Winstart")
RegDelete(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\msnmsgr)
ELSE
RegDelete(HKCU\Software\Patchou\MsgPlus2\AutoMsg5Start)
END IF
END IF
END IF
these things can be found out with programs like Registry Monitor...
PS: There is also something about
HKCU\Software\Patchou\MsgPlus2\HandleMessengerStart which is read after the "MessengerPlus2"-key is deleted, but I don't know why or what it's function is and I hadn't time yet to figure that out...
EDIT (3hours later): OK, I'll stop editing for now... It isn't easy to figure these things out, possible, but very confussing... my head hurts now
Also, it seems complicated. And I don't know why all these things are performed. But there must be a reason. All this is just to show that Plus! does many things when Messenger is quit... It doesn't realy answer the question in a strait forward way, but I started this to try and answer it, and all this was the result... confussing isn't it
quote:
Originally posted by lopardo
So, my question is how does Plus read the AppSettings value to determine if MSN Messenger should start when Windows starts?
So, my second answer would be, it doesn't
It does do some checks and makes some changes when Messenger quits, and depending on that (HandleMessengerStart, AutoMsg4Start, AutoMsg5Start ?) it starts up Messenger the next time...
But is seems that when Plus! is started with /WinStart it doesn't perform all those checks....
Patchou, post your code instead, much easier
... nah... j/k
FYI: AppSettings consists of a some hexadecimal numbers indicating some general settings for MSN Messenger (eg: 62 0E 00 80):
=> if bit 1 of the second one (0E) is set (
= bit 17 from the entire number, see above code), then MSN Messenger is started up when windows starts up and there should be an entry in the run-key. (eg: if it wasn't set in this example then the second number would be "0C")
=> if bit 5 of the first one (62) is set, then the option "open messenger main window when messenger starts" is selected also. (eg: if it wasn't set in this example then the first number would be "42").
Note that this bit is always set when bit 1 of second number is not set.
=> if bit 2 of the second one (0E) is set, then the option "allow automatic sign in when connected to the internet" is selected.
=> etc...