LAN Web TCP Delphi

{Bu kodu yavuzsevgi TDI olarak göndermiş,
bende bu kodun Kodbank'ta bulunması gerektiğini
düşündüm.Teşekkürler yavuz sevgi.
Forma bir timer ve Listbox bileşeni
koyun ve Ontimer olayına aşağıdaki kodu yazın.
Bir internet explorer penceresinde fareyi adres
çubuğu üzerine getirin.Hepsi bu kadar.}
procedure TForm1.Timer1Timer(Sender: TObject);
Var
s : String ;
h : THandle;
px : PChar ;
ss,se:Integer;
begin
h:=WindowFromPoint(mouse.CursorPos);
SendMessage(h,EM_GETSEL,Integer(@Ss),Integer(@Se));
px:=StrAlloc(1024);
SendMessage(h,WM_GETTEXT,1024,integer(pointer(px)));
s:=px;
StrDispose(px);
s:=Copy(s,ss+1,se-ss);
if (ListBox1.Items.IndexOf(s)=-1) and (s<>'') Then ListBox1.Items.Add(s);
end;
{Yavuz sevginin Açıklaması
h:=WindowFromPoint(mouse.CursorPos);
ile hangi edit/RichEdit/memoedit alanından veri çekileceğini buluyor. Yani mouse'un alındaki
window/control nesnesinin handle'ını çekiyor.
bu nesneden
SendMessage(h,EM_GETSEL,Integer(@Ss),Integer(@Se));
satırı ile seçili alanın hangi karakterler arasında olduğunu çekiyor
daha detaylı söylemek gerekirse EM_GETSEL mesajını gönderiyor
paremetre olarak (integer kabul ettiğinden tip çevrimi yaptım)
ss ve se adlı değişkenlerin adresini gönderiyor. sonuçta ss içine
ilk karakter se içine son karakter indexi geliyor.
px:=StrAlloc(1024);
ile px pchar değişkenine (aslında bir pointer) 1K lık bir yer açıyoruz.
SendMessage(h,WM_GETTEXT,1024,integer(pointer(px)));
bu kez px in gösterdiği yer ki daha önce 1024 bytlık bir alan açmıştık...
ve yerin boyutu ile h değikenine Handle'ını aldığımız nesneden TEXT bilgi
istiyoruz.. bu pchar ı s adlı stringe alıp ss ten se ye kadar bölümü de copy ile
parçalıyoruz.. Ancak bu işlem explorer da address alanında çalışıyor yada
herhangi bir ekrandaki EDIT/RichEdit/MEMOEDIT gibi alanlarda çalıyor..
yavuzsevgi 26 Eyl 2002 12:08
yani mouse ile explorerde addres alanındaki url'yi çift tıklatırsan ve mouse'u üzerinde
tutarsan bu kod çalışır ..
mesela forma bir timer koy ve timerın ontimer eventinde bu kodu yaz,
ozaman çalıştığını görürsün.
yavuzsevgi
}