merhaba arkadaşlar. bi uzaktan yardım programı hazırlamam gerek. birçok tanıdığım bilgisayarında sorun olduğunda bana gelio sağolsun ama her zaman yanlarında olamıyorum ve uzaktan erişip yardım etmem gerek. ama M$ un uzak masaustunu kullanamıyorum çunku port yonlendirmesi vs gibi sorunlar var ve karşı taraf bu konuda bilgisiz.
bende kendi ihtiyaçlarımı karşılayacak şekilde bi program hazırlayayım diyorum. reverse connection yaparak da port yonlendirmeden kurtulmuş olcam. şimdi ekran görüntüsünü almak kolay belki ama mouse kontrolunu nasıl yapacağımı bilemedim.
yani mouse nin konumunu ayarlarım belki ama tıklamasını nasıl sağlarım bilemedim. yani mouse a tam hakim olmam lazım. bu konuda yardımcı olabilirmisiniz?
uzaktan yardım için mouse kontrol??
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Selam..
- Aşağıdaki şekilde bir kurulum işini görecektir. SetCursorPos fonksiyonu ile mouse'u dilediğin koordinata konumlandırabilirsin. Geriye sahipsiz bir mouse olayı yayınlamak kalıyor. Onu da Mouse_event fonksiyonu ile yapabilirsin.
- Denemek için en güzel uygulama, Windows Paint'dir. Paint'i aç ve Delphi'den mouse koordinatlarıyla oynarak paint'deki açık boş beyaz alanda dilediğin yerde dilediğin çizimi yaptırarak çalışma yap.
- Mesela aşağıda bir noktada mouse basılı hale getiriyoruz, diğer noktada basılı olayını kaldırıyoruz... Paint bu iki nokta arasında çizim yapıyor...
gibi...
- Afiyet olsun
- Aşağıdaki şekilde bir kurulum işini görecektir. SetCursorPos fonksiyonu ile mouse'u dilediğin koordinata konumlandırabilirsin. Geriye sahipsiz bir mouse olayı yayınlamak kalıyor. Onu da Mouse_event fonksiyonu ile yapabilirsin.
Kod: Tümünü seç
var
Pt: TPoint;
begin
Pt.X := 100;
Pt.Y := 100;
SetCursorPos(Pt.X, Pt.Y);
Mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
Mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
end;

- Mesela aşağıda bir noktada mouse basılı hale getiriyoruz, diğer noktada basılı olayını kaldırıyoruz... Paint bu iki nokta arasında çizim yapıyor...

Kod: Tümünü seç
var
Pt: TPoint;
begin
Pt.X := 100;
Pt.Y := 100;
SetCursorPos(Pt.X, Pt.Y);
Mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
SetCursorPos(Pt.X+10, Pt.Y+20);
Mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
end;
- Afiyet olsun

ilginize ve güzel örneğinize teşekkürler
ancak ekran görüntüsünü almanın mouse dan daha kolay olacağını sanarken bi türlü onu halledemedim. forumdaki konuyla ilgili mesajları inceledim ancak pek bişey çıkaramadım. elimdeki kitaptan indy ile alakalı örneği yaptım. text dosya gönderirken prk sorun yok gibi ama ekranın resmini aldıktan sonra göndermede problem oldu. lokalde bi denedim. 3.47 mb olan ekran resmi server a 1 gb evet 1 gb olarak geldi
yani gelir gibi yaptı ama içi boş tabiki.
server.pas
client.pas
bu kitapta verilen basit bi örnekti. üzerinde uygun olcak şekilde basit değişiklikler yaptım. çalışırsa asıl istediğim şekle getiririm dedim ama nafile
bu dosya transfer olayı ne berbat bişeymiş yaa.... ben mi yanlış yapıom bi yerlerde mantık nedir, nasıl olcak bu iş.
serversocket/clientsocket le deneyeyim dedim ama o da stream yazabilirken stream okunamıyo.... readbuf diom yemiyo off offf

ancak ekran görüntüsünü almanın mouse dan daha kolay olacağını sanarken bi türlü onu halledemedim. forumdaki konuyla ilgili mesajları inceledim ancak pek bişey çıkaramadım. elimdeki kitaptan indy ile alakalı örneği yaptım. text dosya gönderirken prk sorun yok gibi ama ekranın resmini aldıktan sonra göndermede problem oldu. lokalde bi denedim. 3.47 mb olan ekran resmi server a 1 gb evet 1 gb olarak geldi

server.pas
Kod: Tümünü seç
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
dosya:TFileStream;yol:AnsiString;
begin
//if SaveDialog1.Execute Then
//begin
//yol:=SaveDialog1.FileName;
//end;
dosya:=TFileStream.Create('ekran.bmp',fmCreate);//Oluştur
StatusBar1.Panels[0].Text:='Dosya Alınıyor';
AThread.Connection.ReadStream(dosya);//dosyaya aktar
StatusBar1.Panels[0].Text:='Dosya alımı Tamamlandı';
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
resim:tbitmap;
dosya:TFileStream;
yol:AnsiString;
begin
resim:=TBitmap.Create;
resim:=GetScreenShot;
resim.SaveToFile('ekran.bmp');
{if OpenDialog1.Execute Then
begin
yol:=OpenDialog1.FileName;
end;}
dosya:=TFileStream.Create('ekran.bmp',fmOpenRead);//var olanı kullan
boyut:=dosya.Size; //dosyanın uzunluğu
StatusBar1.Panels[1].Text:=IntToStr(boyut);
IdTCPClient1.Connect(); //bağlan
IdTCPClient1.WriteStream(dosya);//akışa al
resim.Free;
end;

bu dosya transfer olayı ne berbat bişeymiş yaa.... ben mi yanlış yapıom bi yerlerde mantık nedir, nasıl olcak bu iş.
serversocket/clientsocket le deneyeyim dedim ama o da stream yazabilirken stream okunamıyo.... readbuf diom yemiyo off offf