[delphi]ATX knop intercepten

Pagina: 1
Acties:

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 14-05 03:35
Je kan zo'n beetje elke knop wel loggen maar als je op je powerknop drukt dan kan je daar in windows ook een actie aan koppelen.. Kan delphi ook deze knop zien??

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Dat is niet taal afhankelijk. Tenzij je een device driver moet maken, want dat is wat lastiger onder Delphi. Als jij een stukje C code hebt gevonden die dat kan, kan je het vertalen naar Delphi.

We adore chaos because we like to restore order - M.C. Escher


  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-04 16:09
Ik denk niet dat je die kunt onderscheppen. Zou mooi worden als virussen je kunnen beletten je PC uit te zetten.

Van windows krijgt je programma wel te horen dat het aan het afsluiten is.

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Ik weet niet of je in Delphi ook ActiveX-controls kunt gebruiken, maar in VB6 kan ik een control 'Microsoft SysInfo Control 6.0' (SYSINFO.OCX). Deze heeft o.a. de events PowerSuspend, PowerStatusChanged, PowerResume, PowerQuerySuspend(Cancel As Boolean). Het is niet precies de druk op de knop zelf, maar wel de reactie erop... misschien heb je er wat aan.

  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

hmm ik denk als je zelf de controle over die knop wilt, dan moet je waarschijnlijk gaan rommelen met ACPI.
and i doubt that u want that.

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 07:55
Kuhlie schreef op 18 augustus 2004 @ 09:27:
Ik weet niet of je in Delphi ook ActiveX-controls kunt gebruiken, maar in VB6 kan ik een control 'Microsoft SysInfo Control 6.0' (SYSINFO.OCX). Deze heeft o.a. de events PowerSuspend, PowerStatusChanged, PowerResume, PowerQuerySuspend(Cancel As Boolean). Het is niet precies de druk op de knop zelf, maar wel de reactie erop... misschien heb je er wat aan.
daar heb je geen ActiveX voor nodig. Dat zijn gewoon window messages die je aangeboden krijgt.

A software developer is someone who looks both left and right when crossing a one-way street.


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 23:27

Tomatoman

Fulltime prutser

De aan/uit-knop is iets heel anders dan een toets op het toetsenbord. Het is een hardwareonderdeel dat direct door het BIOS wordt gecontroleerd. Zoek maar eens in je BIOS-instellingen, bij sommige computers kun je de functie van de aan/uit-knop veranderen. Op welke manier een computer in standby/suspend mode wordt gebracht of wordt afgesloten – al dan niet via de aan/uit-knop – is in Windows niet te achterhalen.

Een goede grap mag vrienden kosten.


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

tomatoman schreef op 18 augustus 2004 @ 12:02:
De aan/uit-knop is iets heel anders dan een toets op het toetsenbord. Het is een hardwareonderdeel dat direct door het BIOS wordt gecontroleerd. Zoek maar eens in je BIOS-instellingen, bij sommige computers kun je de functie van de aan/uit-knop veranderen. Op welke manier een computer in standby/suspend mode wordt gebracht of wordt afgesloten – al dan niet via de aan/uit-knop – is in Windows niet te achterhalen.
Windows die reageert er anders wel op. Het is niet zo dat je in een keer alles uitzet, maar windows sluit gewoon netjes af als je gewoon de powerknop indrukt, dus windows heeft er volgens mij wel controle op. (correct me if i'm wrong)

Die messages die je allemaal kunt afvangen staan trouwens in de libary messages. Die staat standaard in je uses.

[ Voor 8% gewijzigd door eghie op 18-08-2004 12:10 ]


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 23:27

Tomatoman

Fulltime prutser

Leuk, maar volgens de documentatie van Microsoft treedt dit event op als het systeem in suspendmodus wil gaan.• Ten eerste is het niet duidelijk of dat komt doordat op de aan/uit-knop wordt gedrukt of dat er een andere oorzaak is (zoals een bepaalde energiespaarstand).• Ten tweede kan de aan/uit-knop ook een heel andere functie krijgen, waardoor er niet altijd een WM_POWERBROADCAST message wordt verstuurd als de aan/uit-knop wordt ingedrukt.
eghie schreef op 18 augustus 2004 @ 12:09:
Windows die reageert er anders wel op. Het is niet zo dat je in een keer alles uitzet, maar windows sluit gewoon netjes af als je gewoon de powerknop indrukt, dus windows heeft er volgens mij wel controle op. (correct me if i'm wrong)
Dat is inderdaad zo, ik heb ook niets anders beweerd. Windows kan via APM en ACPI op allerlei hardwarespecifieke zaken reageren en soms zelfs beïnvloeden. Het is voor een Windowsprogramma echter niet mogelijk te achterhalen wanneer de aan/uit-knop wordt indrukt. Waarschijnlijk weet Windows dat zelf niet eens en reageert het alleen op het suspendcommando van de hardware zonder te weten waar dat commando vandaan komt - het wordt immers door het power management in het BIOS gegenereerd.
Die messages die je allemaal kunt afvangen staan trouwens in de libary messages. Die staat standaard in je uses.
Ik kan je niet volgen :?

Een goede grap mag vrienden kosten.


  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 14-05 03:35
tomatoman schreef op 18 augustus 2004 @ 13:28:
[...]
Dat is inderdaad zo, ik heb ook niets anders beweerd. Windows kan via APM en ACPI op allerlei hardwarespecifieke zaken reageren en soms zelfs beïnvloeden. Het is voor een Windowsprogramma echter niet mogelijk te achterhalen wanneer de aan/uit-knop wordt indrukt. Waarschijnlijk weet Windows dat zelf niet eens en reageert het alleen op het suspendcommando van de hardware zonder te weten waar dat commando vandaan komt - het wordt immers door het power management in het BIOS gegenereerd.
Dan zou je applicatie deze toch ook op kunnen reageren? Je kan in je windows instellingen zeggen wat windows doet, dus hij luisterd er idd naar, dan moet er ook een mogelijkheid zijn om een applicatie er naar te laten luisteren..

Verwijderd

Megamind schreef op 18 augustus 2004 @ 13:54:
[...]


Dan zou je applicatie deze toch ook op kunnen reageren? Je kan in je windows instellingen zeggen wat windows doet, dus hij luisterd er idd naar, dan moet er ook een mogelijkheid zijn om een applicatie er naar te laten luisteren..
Windows zal message rondsturen naar draaiende applicatie's/services voor een CloseQuery, en Close. Hiermee weet je nog niet of het via de PowerKnop komt.

Misschien kan ts wat met de WM_POWERBROADCAST (ff zoeken op msdn), ik weet niet of deze message verstuurd wordt bij het indrukken van de powerbutton

[ Voor 24% gewijzigd door Verwijderd op 18-08-2004 14:18 ]


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 23:27

Tomatoman

Fulltime prutser

Verwijderd schreef op 18 augustus 2004 @ 14:10:
Misschien kan ts wat met de WM_POWERBROADCAST (ff zoeken op msdn), ik weet niet of deze message verstuurd wordt bij het indrukken van de powerbutton
Zoals ik al aangaf gebeurt dat inderdaad, alleen weet je niet of hij verstuurd wordt DOORDAT de powerknop wordt ingedrukt.

Een goede grap mag vrienden kosten.


Verwijderd

tomatoman schreef op 18 augustus 2004 @ 16:52:
[...]
Zoals ik al aangaf gebeurt dat inderdaad, alleen weet je niet of hij verstuurd wordt DOORDAT de powerknop wordt ingedrukt.
oeps, had over dat stukje van je post heengelezen.

Misschien dat je het kan zien aan de AC_POWER_OFFLINE status?
Pagina: 1