Toon posts:

[Win32 API] RegisterShellHook - Windows XP

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om in VB enkele system wide hooks te kunnen uitvoeren (wat normaal gesproken niet kan), maak ik gebruik van de RegisterShellHook API.

Dit is dus zo'n fijne undocumented API van Micosoft, in Shell32.dll, en moet dus ook met een ordinal value aangeroepen worden (nummer 181).

Dit werkt altijd prima, totdat ik het met Windows XP probeerde. De functie zit nog altijd in Shell32.dll, en geeft een normale return, maar ik ontvang geen messages meer.

Deze API wordt volgens mij toch wel regelmatig gebruikt, dus het lijkt me vreemd als het opeens niet meer ondersteund wordt. Heeft iemand meer info hierover?

Het doel van dit gebeuren is detecteren wanneer een bepaalde applicatie geminimaliseerd wordt. De enige andere manier in VB is een loopje met GetWindowLong, wat dus continu moet draaien en de halve CPU capaciteit gebruikt.
Als iemand een manier weet om die in C++ te doen (wat ik dus niet kan) zou ik het ook graag willen weten.

Bedankt! :)

Verwijderd

Topicstarter
Woei :P

Ik heb t opgelost. Ik zat gewoon wat te proberen, en kom er achter dat door het gebruikt van een TaskMan Register ipv een Register het opeens wel werkt met Windows XP :)

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 22-06 15:30
Ik zou toch maar oppassen met die undocumented features ... grote kans dat in een volgende windowsversie het er niet meer inzit.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op vrijdag 22 februari 2002 14:07 schreef paulh het volgende:
Ik zou toch maar oppassen met die undocumented features ... grote kans dat in een volgende windowsversie het er niet meer inzit.
nah. Verwijderen zal M$ ze niet snel. Wel eens geprobeerd de NTAPI te gebruiken? Volledig ongeducumenteerd, maar 2 to 3 keer zo snel als sommige win32 api. Ik weet zeker dat M$ ze niet zal veranderen, omdat sommige van hun eigen programma's ze gebruiken: vrijwel alle programma's die alleen onder NT (+XP) werken gebruiken wel 1 of 2 NTAPI functies (functies uit ntoskrnl.exe). Doorgaans zijn die runtime gelinkt waardoor ze niet getoond worden bij de dependencies.

Localhost, sweet localhost


Verwijderd

Topicstarter
Op vrijdag 22 februari 2002 14:46 schreef kvdveer het volgende:

[..]

nah. Verwijderen zal M$ ze niet snel. Wel eens geprobeerd de NTAPI te gebruiken? Volledig ongeducumenteerd, maar 2 to 3 keer zo snel als sommige win32 api. Ik weet zeker dat M$ ze niet zal veranderen, omdat sommige van hun eigen programma's ze gebruiken: vrijwel alle programma's die alleen onder NT (+XP) werken gebruiken wel 1 of 2 NTAPI functies (functies uit ntoskrnl.exe). Doorgaans zijn die runtime gelinkt waardoor ze niet getoond worden bij de dependencies.
Precies, alleen even testen met alle versies kan wel nuttig zijn :) In Shell32.dll zitten heel veel undocumented API's, en die worden ook door alle MS programma's gebruikt.

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 22-06 15:30
Bij zulke belangrijke onderdelen zal het misschien niet snel gebeuren maar op mijn werk zijn ze al een paar keer zwaar tegen de lamp gelopen omdat een na upgrade van een dll opeens bepaalde methodes niet meer aanwezig waren.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Verwijderd

Topicstarter
Op vrijdag 22 februari 2002 15:30 schreef paulh het volgende:
Bij zulke belangrijke onderdelen zal het misschien niet snel gebeuren maar op mijn werk zijn ze al een paar keer zwaar tegen de lamp gelopen omdat een na upgrade van een dll opeens bepaalde methodes niet meer aanwezig waren.
Was dat een Windows DLL die backwards compatible zou moeten zijn?
Pagina: 1