ie,chrome,word vb. Seçilen texti otomatik olarak kopyalamk

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Code_Monster
Üye
Mesajlar: 16
Kayıt: 09 Tem 2010 10:36

ie,chrome,word vb. Seçilen texti otomatik olarak kopyalamk

Mesaj gönderen Code_Monster »

Merhaba Arkadaşlar
Ben mousumla ekranda herhangi bir yerde gezinirken Web sitesi olur başka harici programlar olur, buralarda bi şekilde seçtiğim veyahut üzerine geldiğim Text formatında olan verileri otomatik olarak kopyalamak, Örneğin mous ile seçtiğimde arka planda otomatik olarak clipboarda kopyalansını istiyorum.

Babylon sözlük kullanan varsa aranızda eğer onun gibi bir uygulama yapmaya çalışıyorum. Tabi Babylon resimlerdeki kelimeleride seçip ayırt edebiliyor. Ama ben şimdilik Text verileri elde edebileceğim bir yöntem bir kod arıyorum.

Her türlü yorum fikir yönlendirme işime yarayacaktır. Şimdiden teşekkürler.

Kod: Tümünü seç

var
  Buff: array[0..65535] of char;
...
function CurrentSelectedText: string;
var
  hFocus: hWnd;
  aStart, aEnd: integer;
begin
  //added by andrei, attach input to current thread
  AttachThreadInput(GetCurrentThreadId, GetWindowThreadProcessId(GetForegroundWindow), true); 
  hFocus:= GetFocus;
  SendMessage(hFocus, WM_GETTEXT, 65535, integer(@buff));
  SendMessage(hFocus, EM_GETSEL, Integer(@aStart), Integer(@aEnd));
  result:= Copy(StrPas(Buff), 1+aStart, aEnd-aStart);
end;
bu kod parçası ile formdaki bileşenlerin yazılarını yada windowsun belirli bölgelerindeki yazıları clipboarda alabiliyorum. fakat diğer uygulamaların text verilerini elde edemiyorum. sebebini az çok tahmin edebiliyorum. texti alacağım yerin handle si ya yok yada alamıyorum bu yüzden oraya windows mesajı gönderemiyorum.

nasıl bir yol izlesem sizce ?

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
var
  W: HWnd;
  rpos:TPoint;
begin
GetCursorPos(rpos);
  W := WindowFromPoint(rpos);


  SendMessage(w,WM_COPY,0,0); {copy to clipboard}
  memo1.Text:= Clipboard.AsText;
end;
bu yöntemle de word not defteri gibi yerlerdende alabiliyorum ama hala ie, chrome gibi yerlerden text'i clipboarda yada herhangi hafızaya alamıyorum.

aceba bu copy kombinasyonunu post mesajla değilde direk klavyeden basılmış gibi simule edemezmiyiz?
Cevapla