Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
Turbo Delphi für Win32
|
AW: innovaphone direkt ansteuern
29. Okt 2010, 15:00
Moin,
ich habe etwas gefunden:
Delphi-Quellcode:
procedure TFormMain.TimerStartTimer(Sender: TObject);
var
lNr : string;
lH,
lHform : THandle;
lZ : Integer;
lWert : Byte;
begin
TimerStart.Enabled := False;
lH := 0;
lHform := 0;
repeat
lHform := FindWindowEx(0,lHform, nil,' innovaphone SoftwarePhone');
lH := 0;
if lHform > 0 then
begin
lH := FindWindowEx(lHform, 0, nil, ' Telefon');
end;
until (lHform = 0) or (lH > 0);
if lH > 0 then
begin
lH := FindWindowEx(lH, 0, nil, ' Telefon');
end;
if lH > 0 then
begin
lH := FindWindowEx(lH, 0, ' AfxWnd70s', nil);
end;
if ParamCount = 0 then
begin
lNr := ClipBoard.AsText;
end
else
begin
for lZ := 1 to ParamCount do
begin
lNr := lNr + ParamStr(lZ);
end;
end;
lNr := StringReplace(lNr,' +49',' 0',[]);
lZ := 1;
while lZ <= Length(lNr) do
begin
if lNr[lZ] in [' 0'..' 9'] then
begin
Inc(lZ);
end
else
begin
Delete(lNr,lZ,1);
end;
end;
if Copy(lNr,1,9) = ' <eigene externe Nummer>' then
begin
Delete(lNr,1,9);
end;
if Length(lNr) > 4 then
begin
lNr := ' 0' + lNr;
end;
if lH > 0 then
begin
if isIconic(lHform) then
begin
SetForegroundWindow(lHform);
ShowWindow(lHform,SW_RESTORE);
end;
for lZ := 1 to Length(lNr) do
begin
lWert := Ord(lNr[lZ]) - Ord(' 0');
PostMessage(lH
,WM_KEYDOWN
,lWert + 96
,0);
end;
end
else
begin
ShowMessage(' Handle für innovaphone nicht gefunden!');
end;
Close;
end;
Das Ding startet über einen Timer eben durch und beendet sich wieder.
Damit interne Gespräche nicht über Außerhalb laufen, habe ich die Stelle <eigene externe Nummer> eingefügt.
Für eine Doku hatte ich leider keine Zeit, ist nur eine interne Geschichte.
Stefan
|
|
Zitat
|