Hallo Heiko,
schön, dass es das doch schon gibt. Allerdings erscheint es mir recht umständlich erst drei Mausklicks an verschiedenen Stellen machen zu müssen, beim analogen Telefon nimmt man ja nur den Hörer ab und hat den Gesprächspartner.
Was ich vorschlagen würde, ist ein Button - oder ein Hotkey, um das Fenster nicht zu überladen -, der dieses automatisiert.
Eigentlich wäre das ja ein recht kurzer
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TWMHotkey = record
Msg: Cardinal;
idHotKey: Word;
Modifiers: Integer;
VirtKey: Integer;
end;
const ID = $FF;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen}
procedure WMHotKey(var Msg: TWMHotKey); Message WM_HOTKEY;
public
{ Public-Deklarationen}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var usedID: Integer;
procedure TForm1.WMHotKey(Var Msg: TWMHotkey);
begin
if Msg.IdHotKey = ID then begin
caption:='HotKey erkannt!';
Button1.Click; //Mikrofon-Button Button2.Click; //Lautsprecher-Button
Button3.Click; //Aufzeichnungsbutton
end;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
var ok: longbool;
begin
usedID := ID;
ok:=RegisterHotKey(Form1.Handle, ID, Mod_control+MOD_shift, Ord('A'));
// Weitere Möglichkeit ist mod_Alt. Sondertasten heißen vk_F1, etc.
if not ok then repeat
inc(usedID);
ok:=RegisterHotKey(Form1.Handle, usedID, Mod_control+MOD_shift, Ord('A'));
until ok;
end;
end.
Hier würde der globale Hotkey Strg-Shift-A (Für AB und weil leicht mit einer Hand zu tippen) ein "Anklicken" der drei Buttons bewirken.
Was hältst Du davon?
viele Grüße, Jens