![]() |
Klick auf ACPI Button Notebook?
Hi Leute!
Ich habe ein Notebook (Medion) auf dem Schnellstart-Buttons sind, z.B. einer für's E-Mail-Programm und einer für den Browser. Leider haben die das Programm, dass den Klick auf einen der Schnellstartknöpfe registriert, so schwachsinnig programmiert, dass die nur IE oder OE aufrufen. Damit sind die Buttons für mich nutzlos. Wie kann man jetzt so ein Programm schreiben, dass bein Klick auf einen der Schnellstartbuttons eine Aktion ausführt? Grüße, Radioactive |
Re: Klick auf ACPI Button Notebook?
Hi!
Nimm dir ein einfaches Formular und lass die mal im Keydown oder im Keypress den TastenCode der Schnellstarttasten ausgeben. Wenn du das hast, dann müsstest du eigentlich nen Keyboardhook schreiben, um sie so immer abfangen zu können. Ciao Frederic |
Re: Klick auf ACPI Button Notebook?
Es wird kein Tastendruck ausgelöst, sowohl beim normal FormKeyPress als auch bei einem globalen Keybordhook (wie z.B. auch bei den F-Tasten).
|
Re: Klick auf ACPI Button Notebook?
Hi!
Delphi-Quellcode:
Damit bekomme ich bei den F-Tasten sehr wohl etwas angezeigt:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin showmessage(inttostr(key)); end; 112-123 Ciao Frederic |
Re: Klick auf ACPI Button Notebook?
Da hast du recht, Ich habe die FormKeyPress Methode verwendet und es mit
Delphi-Quellcode:
umgewandelt.
Label2.Caption := IntToStr(Ord(Key));
Ich habe mir also noch ein Label drauf und habe dort die FormKeyDown-Methode ausgewertet:
Delphi-Quellcode:
Seltsamerweise gibt es haben die Labels nicht die gleichen Codes, außer z.B. bei der Backspacetaste.
Label4.Caption := IntToStr(Key);
Und das Programm zeigt keine Reaktion, wenn ich eine Schnellstarttaste drücke. Ich vermute, die gehören nicht zur Tastatur, sondern sind eine eigene Komponente des Notebooks. |
Re: Klick auf ACPI Button Notebook?
Zitat:
|
Re: Klick auf ACPI Button Notebook?
Hi!
Zitat:
Zitat:
Ciao Frederic |
Re: Klick auf ACPI Button Notebook?
k.A. ob das was bringt, versuchs mal.
Delphi-Quellcode:
function KeyPressed : Integer;
var i : Integer; buf : TKeyboardState; begin Result := -1; // keine Taste gedrückt if GetKeyboardState(buf) then for i := 0 to High(buf) do if (buf[i] and $80) <> 0 then begin Result := i; Exit; // Taste gefunden dann Exit; end; end; procedure TForm1.Timer1Timer(Sender: TObject); // interval = 25 ms begin label1.Caption := Inttostr(KeyPressed); end; |
Re: Klick auf ACPI Button Notebook?
Ergibt die gleiche Antwort wie bei FormKeyDown (es gibt als auch keine Reaktion, wenn ich eine Schnellstarttaste drücke).
Interessanterweise wird ein Tastenklick auf dem Fomular als 1 oder 2 angezeigt. Ich habe die Funktion etwas abgewandelt, damit nicht immer -1 dasteht und das Timer-Intervall auf 100 ms gesetzt:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i: Integer; begin i := KeyPressed; if i <> -1 then Label6.Caption := IntToStr(KeyPressed); end; |
Re: Klick auf ACPI Button Notebook?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz