Ik ben bezig aan een plug-in voor MSN die nogal wat low-level doet. Hooken, patchen, je verzint het zo gek nog niet of je kunt er hele leuke functies mee maken 
Echter zodra MSN update, wil het nog wel eens voorkomen dat er wat veranderd, een search-routine verkeerde offset vind, en het hele zootje crashed.
Nu wil ik graag een soort beveiliging inbouwen dat als MSN crashed de gebruiker hiervan op de hoogte stelt, en duidelijk uitlegt dat het best kan dat dit niet de schuld van MSN is, en dat ze eerst moeten proberen zonder mijn plugin. uiteraard ook duidelijk instructies hoe je tijdelijk disabled, en/of uninstalled.
Ik heb zo snel drie methoden weten te bedenken, maar aan elke methode kleven voor- en nadelen, en ik ben er niet helemaal zeker van welke methode nu het beste is.
Daarom graag jullie meningen over de volgende methoden:
Ikzelf vindt methode 3 het mooiste klinken, vooral omdat de nadelen van Methode 1 en 2 veel zwaarder zijn van het nadeel van methode 1
Ik zit eventueel ook te denken aan Methode 3 en 2 samen (dus als methode 2 de crash vind, doet die de foutmelding. Anders wordt methode 3 ingeschakelt.)
Echter zodra MSN update, wil het nog wel eens voorkomen dat er wat veranderd, een search-routine verkeerde offset vind, en het hele zootje crashed.
Nu wil ik graag een soort beveiliging inbouwen dat als MSN crashed de gebruiker hiervan op de hoogte stelt, en duidelijk uitlegt dat het best kan dat dit niet de schuld van MSN is, en dat ze eerst moeten proberen zonder mijn plugin. uiteraard ook duidelijk instructies hoe je tijdelijk disabled, en/of uninstalled.
Ik heb zo snel drie methoden weten te bedenken, maar aan elke methode kleven voor- en nadelen, en ik ben er niet helemaal zeker van welke methode nu het beste is.
Daarom graag jullie meningen over de volgende methoden:
- Methode 1: Bij laden van plug-in wordt een extra exe gestart, die constant MSN in de gaten houdt. Als MSN weg is, laat ie de foutmelding zien. plug-in zelf hooked PostQuitMessage, en als die aangeroepen wordt sluit die de controle-exe, zodat er geen bericht wordt weergegeven bij een nette afsluiting
Grootste nadeel van deze methode is dat er wel constant een extra programma in de achtergrond draait als MSN draait, en gebruikers worden hier vaak paranoie over. - Methode 2: Bij laden van de plug-in wordt een reg-key gezet. PostQuitMessage wordt gehooked, and als die wordt aangeroepen wordt de reg-key weggehaalt. Als de plug-in opstart en de reg-key is niet blanco, dan wordt de melding weergegeven, met mogelijkheid om de plugin niet door te laden. Nadeel is dat de gebruiker pas de volgende start een foutmelding krijgt, en niet op de hoogte wordt gesteld als MSN bijv stilletjes crashed.
- Methode 3: Bij laden van plug-in wordt een extra DLL geladen. bij PostQuitMessage wordt er in die DLL de functie Unlock() aangeroepen. Als de DLL wordt uitgeladen, en Unlock is niet aangeroepen, start deze een extra programma op dat de foutmelding weergeeft. In de meeste crash-gevallen worden DLLs alsnog netjes ge-unload. Nadeel is dat onder sommige omstandigheden de DLL niet goed wordt geunload.
Ikzelf vindt methode 3 het mooiste klinken, vooral omdat de nadelen van Methode 1 en 2 veel zwaarder zijn van het nadeel van methode 1
Ik zit eventueel ook te denken aan Methode 3 en 2 samen (dus als methode 2 de crash vind, doet die de foutmelding. Anders wordt methode 3 ingeschakelt.)
[img=http://www.web2messenger.com/smallstatus/w2m/theblasp.png]