Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Klick auf ACPI Button Notebook? (https://www.delphipraxis.net/48489-klick-auf-acpi-button-notebook.html)

Radioactive 26. Jun 2005 10:12


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

fkerber 26. Jun 2005 10:17

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

Radioactive 26. Jun 2005 10:27

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).

fkerber 26. Jun 2005 10:36

Re: Klick auf ACPI Button Notebook?
 
Hi!

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
showmessage(inttostr(key));
end;
Damit bekomme ich bei den F-Tasten sehr wohl etwas angezeigt:
112-123


Ciao Frederic

Radioactive 26. Jun 2005 10:46

Re: Klick auf ACPI Button Notebook?
 
Da hast du recht, Ich habe die FormKeyPress Methode verwendet und es mit
Delphi-Quellcode:
Label2.Caption := IntToStr(Ord(Key));
umgewandelt.
Ich habe mir also noch ein Label drauf und habe dort die FormKeyDown-Methode ausgewertet:
Delphi-Quellcode:
Label4.Caption := IntToStr(Key);
Seltsamerweise gibt es haben die Labels nicht die gleichen Codes, außer z.B. bei der Backspacetaste.
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.

toms 26. Jun 2005 10:48

Re: Klick auf ACPI Button Notebook?
 
Zitat:

Zitat von fkerber
Damit bekomme ich bei den F-Tasten sehr wohl etwas angezeigt:
112-123

Es handelt sich ja gar nicht um die F-Tasten sondern "Multimedia" Tasten

fkerber 26. Jun 2005 10:51

Re: Klick auf ACPI Button Notebook?
 
Hi!

Zitat:

Zitat von toms
Zitat:

Zitat von fkerber
Damit bekomme ich bei den F-Tasten sehr wohl etwas angezeigt:
112-123

Es handelt sich ja gar nicht um die F-Tasten sondern "Multimedia" Tasten

Das ist richtig, aber:

Zitat:

Es wird kein Tastendruck ausgelöst, sowohl beim normal FormKeyPress als auch bei einem globalen Keybordhook (wie z.B. auch bei den F-Tasten).
Deswegen habe ich es mit den F-Tasten versucht.


Ciao Frederic

turboPASCAL 26. Jun 2005 10:55

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;

Radioactive 26. Jun 2005 11:01

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;

fkerber 26. Jun 2005 11:03

Re: Klick auf ACPI Button Notebook?
 
Hi!

Schon mal bei Google nach Bei Google suchenACPI keycode gesucht?

Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.
Seite 1 von 2  1 2      

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