Ekran Klavyesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
burdem
Üye
Mesajlar: 3
Kayıt: 08 Nis 2006 08:50

Ekran Klavyesi

Mesaj gönderen burdem »

arkadaşlar oncelikle merhaba
ben lisede programlama bölümü öğrencisiyim
bi sorum olacaktı sizlere.

delphide bir butona basinca bana 12345 yazmasını istiyorum.
ama bu 12345, bir notepad e yada başka bir belgeye(o anda hazır olan) yazılacak..
viewtopic.php?t=1587
bu linkte birşeyler buldum ama ayıklayamadım..

buna ek olarak :

bunlara bekleme komutu nasil ekleriz.
yani yarım saniye arayla : 1 2 3 4 5 yazması gibi..

şimdiden çok teşekkür ederim..hepinize kolay gelsin..
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

O an açık olan notepad'e karakter göndermek için;

Kod: Tümünü seç

Procedure KarakterGonder(harf:char);
var
  g,d:integer;
begin
 {uygulamanın ana penceresini bul}
 g:=FindWindow('Notepad',nil);
 {uygulama penceresindeki text box'ı bul}
 d:=ChildWindowFromPoint(g,point(50,50));
 {karakteri gönder}
 SendMessage(d,WM_CHAR,Ord(harf),0);
end;
(Yanlış hatırlamıyorsam bu kodları DelphiTurkiye'den almıştım.)

Beklemek içinse;

Kod: Tümünü seç

Sleep(1000);//1000 milisaniye =1 saniye bekle
Kolay gelsin
burdem
Üye
Mesajlar: 3
Kayıt: 08 Nis 2006 08:50

Mesaj gönderen burdem »

çoook çoook teşekkür ederim hemen deniyorum :):)

Allah sizden razı olsun :)
burdem
Üye
Mesajlar: 3
Kayıt: 08 Nis 2006 08:50

Mesaj gönderen burdem »

peki birşey sorucam.
bu "1 2 3 4 5" sayı grubunu nereye yazıcam.
yani butona basınca onların yazması icin..
ben sizin verdiklerinize gore yaparsam 12345 i nereye yazmam gerek kodların içinde ?
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Bir butona basıldığında bu karakterlerin gönderileceğini farzedersek;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
KarakterGonder('1');
Sleep(500);
KarakterGonder(' ');
Sleep(500);
//...
end;
Size bir ödev olsun, karakter karakter göndermek yerine, string ifadeyi bir döngü ile, parçalayarak göndermeye çalışın. Yapamazsanız yardım isteyin, hallederiz :wink:

Allah hepimizden razı olsun
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Çözüm;

Kod: Tümünü seç

Var
   i:integer;
begin
   For i:=1 to Length(karakterler) Do   
   begin
      karaktergonder(copy(karakterler,i,1));
   end;
end;

//karakterler, göndereceklerimiz ve string tipte
//karakterler:='1 2 3 4 5' gibi...
Cevapla