Osmanlıca Lûgat İçin Windows Seçili Alanın Alınması Hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
MyOsM
Üye
Mesajlar: 46
Kayıt: 20 Tem 2005 11:43
Konum: İzmir

Osmanlıca Lûgat İçin Windows Seçili Alanın Alınması Hk.

Mesaj gönderen MyOsM »

Sa.

Osmanlıca bir Lugat yapıyorum, Babylon daki mantığı kullanmak istiyorum. Bunun için Windowsta herhangi bir uygulama içersinden (Word, Excel, Notepad, İnternet Explorer vs.) seçilen alanı nasıl okutabilirim. Okutulan değer hazırda bulunan bir veritabanı içersinde aratılacak ve sonuçları, seçilen kök kelimeyle alakalı diğer kelimeler ve anlamlarını görüntülecek.

Araştırdığım kadarıyla API kullanmam gerekiyormuş.

Eğer konu hakkında bilgisi olan varsa ve yardımcı olabilirseniz sevinirim.
Gecenin en karanlık anı sabahın en yakın olduğu andır.
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

merhaba;

Yazacaklarım sorununuzun tam bir çözümü olmayacak maalesef ama biraz bilgi ve fikir verebilir.

Babylon OCR yazılımı içeriyor. Ekranda tıklanan alanın görüntüsünden texti OCR ile okuyup alıyor. Eğer ekrandaki text yeterince açık değilse (scanner ile taratılarak oluşturulan bazı PDF ler gibi) yada koruma tarzı birşey varsa (MS Reader gibi) yazıyı çözemiyor. Ekrandan yazı çözen OCR yazılımına Kleptomania ve ScreenOCR örnek verilebilir.

Şimdi;
Eğer OCR yöntemini kullanacaksanız ya bir OCR yazılımı yazacaksınız ki bu uzmanlık isteyen bir konu. Çok zamanınızı alır. Epey kasmalı. Ya componenet paketi kullanmalı (OCR componenti var ama ekrandan okuyormu bilmiyorum belki ekrandan okuma işlemini siz yaparsınız) yada API ile bu hizmeti saplayan bir yazılım kullanacaksınız (Kleptomania yada ScreenOCR bu hizmeti sunsa ne güzel olurdu ama sağlıyorlarmı bilmiyorum)

OCR kullanmadan sınırlıda olsa bu işlem yapılabilir. Standart windows controllerinden (yada onları temel olan controllerden) Win API ile text bilgisini almak mümkün.

Pek yardımcı olamadığımı biliyorum lakin benden bukadar.
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Hocam sizin dediginize göre resim üzerindeki texti babylonun okuması lazım. Hiç denemedim. Ben onların aktif dökümandan kopyalama ile çalıştığını sanırdım.
Her zaman bir vâmuk-i azra olur alem bu ya,
Nev-be-nev efsaneler peydâ olur alem bu ya,
Kabz u bast kıl tefekkür aleminde ey gönül,
Vakt-i sermânın sonu, vakt-i germân olur alem bu ya...
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Mesaj gönderen Akin_Delphi »

shadowmann yazdı:Hocam sizin dediginize göre resim üzerindeki texti babylonun okuması lazım. Hiç denemedim. Ben onların aktif dökümandan kopyalama ile çalıştığını sanırdım.
Valla ne yalan söyleyeyim ben de Babylon türü uygulamaların Windows Hook'lar yardımıyla çalıştığını düşünüyordum. Yani ekranda bir metniniz var, buna tıkladığınızı Babylon tarzı bir uygulamanın algılayabilmesi için Windowsa kanca atması, yani belirli API çağrılarını yakalaması lazım.

Çok kolay değil gibi görünüyor. Babylon kendisini İnternet tarayıcılarına da plugin olarak tanıttığını biliyorum. (HelperObjects vs. sanırım.)
Başarılar ve Saygılar
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

OCR kullanmak ile HOOK kullanmak birbiri ile çelişen şeyler değilki.

Windows ta her hangi bir uygulamada meydana gelen bir mesaj çağrısını (burada bir metnin üzerinde (babylon da varsayılan olarak) Shift+RightmouseButton tuşlarına basılınca) almak için HOOK kullanmak zorundasınız. HOOK kullanımı zor bir konu değil. Bir kaç ayrıntısı var o kadar(Hook procedure leri trace edebilen var mı? Ben sorun yaşamıştım. Doğası gereği böyle olması normal tabi).
Mesaj çağrısını aldıktan sonra ilgili pencerede üzerine tıklama yapılan metni alabilmek için ise ilk notumda belirttiğim teknikler kullanılabilir. Babylon OCR tekniğini kullanıyor.
Yani ekranda bir metniniz var, buna tıkladığınızı Babylon tarzı bir uygulamanın algılayabilmesi için Windowsa kanca atması, yani belirli API çağrılarını yakalaması lazım.
API fazlasıyla genel bir kavram. Windows API; fonksiyon, sınıf, tip, mesaj gibi pek çok unsuru içeriyor. Açıkçası HOOK ile herhangi bir API çağrısının alınabileceğini sanmıyorum (yanılıyorda olabilirim tabi). HOOK lar mesaj lar ile (events-olaylar desek belki daha doğru olacak) sınırlı olsa gerek. Yoksa bir FindWindow, ShellExecute gibi API fonksiyon çağrıları HOOK ile yakalanamaz. Tabi ilgili fonksiyon bir mesajı tetikliyorsa başka.
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

clipboard'da aldığın metini bir değişkene alabilirsin...Oradan sorgulayabilirsin... clipboard diye aratırsen birşeyler çıkar diye düşünüyorum...
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Babylon tabiki text okuma mantığını kullanır, sadece yeni geliştirdiği bir teknik sayesinde artık bir image'ın içindeki yazıyıda okuyor. OCR tekniğiyle.

Ama web sayfasındaki bir yazıyı seçip okutunca OCR falan yapmıyor direk GetTText metodu ile okuyor..

Bu konuyla alakalı olarak bende ingilizce türkçe sözlük tarzi bişi yapacaktım, bayağı bir araştırma yapmıştım. Kodları arayıp bulmam lazım..

Teknik olarak mouse ile üstünde bulunduğumuz bir nesnenin Captionunun alabiliyorum. Button Label windos title.

Ayrıca IE içinde bir metin seçince seçili alanı alabiliyordum.

Fakat bir kaç sorun çıkmıştı, IE içinden okuma yapabiliyordum ama firefox yada başka uygulamalardan bunu yapmak için componet adını bilmek gerekiyordu. derin konuydu anlıyacağınız. bende para kazandırmayacak iş neyime gerek dedim bırakmıştım.

kodları bulursam yayımlarım...

saygılar.
MyOsM
Üye
Mesajlar: 46
Kayıt: 20 Tem 2005 11:43
Konum: İzmir

Mesaj gönderen MyOsM »

Yaptığımız çalışmanın hiçbir ticari boyutu bulunmamaktadır. Biraz geçmişe indiğinizde kitaplar osmanlıca çevirileri ise tam değil karşılığını bulmuyor. Öyle kitaplar var internette yapımlanıyor. Orjinali bozulmuyor, türkçeleştirilmiyor. Çünkü anlam kargaşalarına neden olacağı bariz çünkü şuan türkçenin gidişi pek hoş değil. Dilini kaybetden hürriyetini kaybetmiştir. okumaya çalıştığımız eserler osmanlıca ağırlıklı ve okurken sözlük karıştırmakta baya bi işkence yaptığımız çalışma ile seçilen bir metnin anlamını göstertmeye çalışıyoruz.


muratdicle arkadaşımız eğer çalışmalarını bizimle paylaşırsa bizi memnun etmiş olur.

Herkese yorumlarından dolayı teşekkür ediyorum
Teşekkürler
Gecenin en karanlık anı sabahın en yakın olduğu andır.
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

Amaç okumaksa babylonun osmanlıca-türkçe sözlüğünü kurup kullanabilirsiniz. :wink:

yada hazır yapılmış bir örneği incelemek isterseniz;

http://www.nurrisaleleri.com

:wink:

Kolay Gelsin...
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

Mesaj gönderen ng »

Yeni bir konu açmamak için buraya sormak istedim.tİcari amaçlı olmayan bir projede bazen inigilizce kelimelerin türkçe anlamlarını bulmam gerekiyor bunu için aklıma gelen en kolay yol babylonun free dağıtılan sözlüklerinden birini kullanmak oldu. Dolayısı ile sorum : Babylon sözlük dosyalının yapısı nasıldır?
Bu dosyalarda istediğim bir kelimenin karşılığını nasıl bulurum?
Cevapla