Socket ile gönderdiğim veri
Kod: Tümünü seç
function GetWindows(hWnd:HWND; lParam:boolean):boolean;stdcall;
var
IsVis: boolean;
PID: DWORD;
sName: array[0..256] of char;
c:integer;
begin
IsVis := IsWindowVisible(hWnd);
GetWindowText(hWnd, sName, 256);
GetWindowThreadProcessId(hWnd, PID);
if IsVis = lParam then
client.Socket.SendText('wnds|' + sName + '|' + IntToStr(hWnd) + '|' + IntToStr(PID) + '|' + GetWindowState(hWnd));
end
Kod: Tümünü seç
sData: String;
sCmd: String;
sDat: TStringList;
lw: TListItem;
Karşılayıp parseleme yaptığım yer.(server)
Kod: Tümünü seç
begin
sData := Socket.ReceiveText;
sDat := Explode('|', sData);
sCmd := sDat[0];
iReceived := iReceived + Length(sData);
Listeye ekleme bölümü
Kod: Tümünü seç
if sCmd='wnds' then
begin
lw:=frmwindws.lvWindows.items.add;
lw.Caption:=sdat[1];
lw.SubItems.Add(sdat[2]);
lw.SubItems.Add(sdat[3]);
lw.SubItems.Add(sdat[4]);
Halbuki aktif olan 7 pencere var çalışan.Ama sadece 1. si listeme ekleniyor bu neden olabilir sizce?
Aynı modülü çalışan uygulamarda (process list) yapıyorum sorunsuz hepsi ekleniyor.
Fikri olan arkadaşlarım yardımcı olabilirler mi?
İyi çalışmalar.