Uzywam w swoim programie systemowej klawiatury ekranowej:
ShellExecute(Okno, 'open', 'osk.exe', nil, nil, SW_SHOWMAXIMIZED);
no ale czasem sie zdarzy ze uzytkownik zminimalizuje klawiature,
a ze w czasie dzialania programu nie jest dostepny pasek zadan,
nie ma juz mozliwosci przywrocenia jej z powrotem.
Chcialbym zeby byl przycisk ktory dzialalby w taki sposob, ze po pierwszym
nacisnieciu uruchamialby klawiature a po nastepnym, jesli byla ona zminimalizowana,
przywracal ja na ekran.
napisalem wiec taka procedure:
procedure MojaProcedura(Sender: TObject);
var s: pchar;
okno: THandle;
begin
Okno := 0;
s:=pchar('Klawiatura ekranowa');
Okno := FindWindow(NIL,s);
if (Okno<>0) then
ShowWindow(Okno,SW_RESTORE+SW_SHOWMAXIMIZED)
else
ShellExecute(Okno, 'open', 'osk.exe', nil, nil, SW_SHOWMAXIMIZED);
BringWindowToTop(Okno);
pnlMenu.SendToBack;
end;
probowalem tez takiego czegos, zeby w przypadku znalezienia okna zamykac je
CloseWindow(okno);
a potem otwierac na nowo,
ale jak mozecie sie domyslac z obecnosci tego watku,
zadna z tych metod nie zadzialala:/
Czy mozecie poradzic jakies sensowne rozwiazanie?