PDA

Tam Sürümünü Görmek İçin : Öğretin robot çalışsın bilgisayarınızda


ismail pala
29/09/2005, 23:39
gorpix 'e adanmış bir konudur.
http://forum.ceviz.net/showthread.php?t=23174 şeklinde bir konunun cevabını bu tarz bir başlık altında veriyorum ki başkalarıda kendisine kullansın.

benim xml web servisi yazmaya vaktim olmadı ve www.soyagaci.gen.tr nin üyeliklerinin bilgi kontrollerini elle yapıyordum; bu işi benim yerime yapacak bir robot araştırdım. araştırmama başlamadan önce böyle bir robotun olup olmadığını bilmediğim için yazmayı ve bütün işlerimde kullanmayı bile göze almıştım.

bu bahsedeceğim programdan önce daha az yetenekli bir programı 2-3 hafta kullandım ama bana umduklarımın %30 unu verdi. daha sonra kafamda yazmayı düşündüğüm programı daha farklı kelimeler kullanarak aramaya devam ettim. ve buldum

adı: Macro Scheduler
yaşı: 7.3
yaşadığı adres: www.mjnet.com

(http://www.mjtnet.com/downloads.htm?ref=about_7.3.05_mssetup)
buradan kendinize bir kopya edinin daha sonra okumaya devam edin lütfen.

bu program çalıştığınjda bir çark görüntüsünün 4 te birini anımsatan bir görüntü ile saat ikonunun oraya yerleşiyor.

açtığınızda record ikonuna tıklayıp oluşacak robota (script topluluğu) bir isim veriyorsunuz.

daha sonra enter yapınca kayıt başlıyor.

ve saatin oradan tekrar programa girdiğinizde stop ikonuyla durdurabiliyorsunuz.

şimdi ben bunu nasıl kodladım oluşan tecrübemi aktarmak istiyorum.

öncelikli olarak angarya işleri bu programa yaptırıyorum.
ve yapılacak işi periyodik; tekrarlanabilir şekilde nasıl yapabilirime bakıyorum.

örneğin xls dosyasında her bir satırı (yukarıdan aşağıya doğru) işleme alabilmek için kaydırma çubuğuna bir kez tık yapıyorum alt satır bir önceki satırın yerine en üst satıra kayıyor. böylece ben hep aynı pozisyona tıklayarak işimi periyodikleştirmiş oluyorum.

şimdi şunlara dikkat edin:
tekrarlanabilir bir işlemi bir kez siz yapıyorsunuz ve makroyu durduruyorsunuz.
daha sonra aşağıdaki şekilde işlemin en başına bir etiket tanımıyorsunuz.
label>baslangic
sayac=sayac+1 şeklinde bir ifadeyle labelden sonra sayaç işlemi yapıyoruz
ve tekrarlanan işlemin en son satırına da kaç kez aynı işlemi yapmasını istiyorsanız onun kontrolünü yapıyorsunuz.

IF>sayac<50000
goto>baslangic
ELSE
goto>islemibitir
ENDIF

label>islemibitir


size tavsiyem WaitWindowOpen> şeklinde başalayan satırları ve onlardan sonraki 2 satırı (toplam 3 satırı) silmeniz onun yerine
Wait>10
yukarı şekilde işlemin alabileceği en uzun süreyi yazmanız. burada 10 yazdım ama eğer işlem hep aynı zamanda son bulmuyorsa son bulabileceği en uzun süreyi yazın.

şimdi bazı komutları açıklayayım
LClick ; maouse left tıklama
MouseMove>330,150 ; imleci ilgili pozisyona götürür
herhangi bir press ifadesinin (klavyeden tuş vuruşu) yanına gelin ve F1 tuşuna basın size bütün Press lenecekleri gösterecek
bu noktada şunu söylemek istiyorum.
Ctrl gibi basılı tutulup başka bir tuşa basılan tuşların press işleminden sonra
Release ile o tuşun basılılığını iptal ediyorsunuz
diğer (tek başına basılıp netice getirenlerde) Release kullanmadan sadece press kullanıyorsunuz.

size bir de şu komutları söyleyeyim
Send>falanfilan
yukarıdaki komut ile o an bulunan yere istediğiniz şeyi yazar.
ama Send ile uzun bir şey yazdırmayın derim ben belli bir karakter (tespit etmedim) den sonra yazmıyor.
onun yerine ben 5-10 karakterden uzun şeyler için şu şekilde kullanıyorum.

PutClipBoard>Hello World !!!
Press Shift
Press Ins
Release Shift

hafızaya ilgili stringi (değişkende olabilir) koyup windowsdaki paste işlemini klavye ile yapıyorum.


hafızaya alınan bir bilgiyi ise şu şekilde bir değişkene alabilirsiniz.

GetClipBoard>hafizadaki_bilgi

hafizadaki_bilgi değişkenine alıp içeride istediğiniz yerde kullanabilirsiniz.

Saygılarımla

Bu arada bana www.soyagaci.gen.tr deki üyelikleri aktif eden tc kimlik no doğrulama için xml web servisi yazmama yardım edecek birileri var mı?


ismail pala
29/09/2005, 23:54
Unutmadan;
Shift + Esc <<< çalışmakta olan macroyu durduran kısa yoldur
Macronun kendisine kısayol atayıp onunla çalıştırabiliyorsunuz.

gorgpix
30/09/2005, 10:51
Öncelikle teşekkürler. Bence çok lazım olabilecek bir konu...
Şimdi şöyle anlatayım. Ben bu işi beceremedim :)

Macro record ediyorum, gerekli işlemleri kaydediyorum. Bir döngü kurup bunu script editor`den ekliyorum, ancak çalışmıyor.

Döngü dönmüyor anlayacağın.
Başka bir önerin var mı?
( Code olarak - döngü konusunda? )

Mesela excel`de 5000 kayıt var. Satır 1`e gelip gerekli işlemi yapıyor, copy-paste ile bunu worde ekliyorum. Sonra tekrar excel`e geri dönüyor, scroll`u bir tık yapıyor, copy-paste ediyorum vs.

ismail pala
30/09/2005, 11:18
kodu gönderir misin?

gorgpix
30/09/2005, 11:44
// C:\Documents and Settings\CEYHUNAVG\Belgelerim\excel.scp
// Recorded on Cuma, Eylül 30, 2005, at 11:45 AM

//Recorded Events
Let>WW_TIMEOUT=5
CapsOff
MouseMove>513,149
Wait>1.8
LClick
Wait>0.09
MouseMove>345,102
Wait>2.2
LDown
Wait>0.05
MouseMove>171,100
Wait>0.98
LUp
Wait>0.13
Press CTRL
Wait>0.29
Send>c
Wait>0.05
MouseMove>458,586
Wait>0.3
Release CTRL
MouseMove>710,759
Wait>0.74
LClick
WaitWindowOpen>Yeni Microsoft Word Belgesi.doc - Microsoft Word
MoveWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,-4,-4
ResizeWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,1032,754
Wait>0.03
MouseMove>552,543
Wait>0.26
Press CTRL
Wait>0.03
MouseMove>529,504
Wait>0.23
Send>v
Wait>0.2
Release CTRL
Wait>0.91
Press Enter
Wait>0.73
MouseMove>532,751
Wait>2.33
LClick
WaitWindowOpen>Microsoft Excel - otomotiv.xls
MoveWindow>Microsoft Excel - otomotiv.xls,-4,-4
ResizeWindow>Microsoft Excel - otomotiv.xls,1032,754
Wait>0.06
MouseMove>1014,698
Wait>2.75
LClick
Wait>0.11
MouseMove>555,153
Wait>2.73
LClick
Wait>0.15
MouseMove>396,108
Wait>1.15
LDown
Wait>0.03
MouseMove>127,108
Wait>0.51
LUp
Wait>0.12
Press CTRL
Wait>0.33
Send>c
MouseMove>647,715
Wait>0.35
Release CTRL
MouseMove>711,756
Wait>0.51
LClick
WaitWindowOpen>Yeni Microsoft Word Belgesi.doc - Microsoft Word
MoveWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,-4,-4
ResizeWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,1032,754
Wait>0.16
Press CTRL
Wait>0.3
Send>v
Wait>0.2
Release CTRL
Wait>0.55
Press Enter
Wait>0.69
MouseMove>595,759
Wait>0.36
LClick
WaitWindowOpen>Microsoft Excel - otomotiv.xls
MoveWindow>Microsoft Excel - otomotiv.xls,-4,-4
ResizeWindow>Microsoft Excel - otomotiv.xls,1032,754
Wait>0.03
MouseMove>1012,702
Wait>2.25
LClick
Wait>0.08
MouseMove>543,154
Wait>1.08
LClick
Wait>0.06
MouseMove>394,142
Wait>1.86
Press Esc
Wait>0.02
MouseMove>429,154
Wait>0.85
LClick
Wait>0.08
MouseMove>341,103
Wait>0.84
LDown
MouseMove>144,100
Wait>0.58
LUp
Wait>0.09
Press CTRL
Wait>0.44
Send>c
MouseMove>296,241
Wait>0.34
Release CTRL
MouseMove>740,767
Wait>0.8
LClick
WaitWindowOpen>Yeni Microsoft Word Belgesi.doc - Microsoft Word
MoveWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,-4,-4
ResizeWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,1032,754
Wait>0.05
MouseMove>395,409
Wait>0.51
Press CTRL
Wait>0.26
Send>v
Wait>0.05
Release CTRL
Wait>0.77
Press Enter
Wait>0.69
MouseMove>540,762
Wait>0.61
LClick
WaitWindowOpen>Microsoft Excel - otomotiv.xls
MoveWindow>Microsoft Excel - otomotiv.xls,-4,-4
ResizeWindow>Microsoft Excel - otomotiv.xls,1032,754
Wait>0.03
MouseMove>1014,703
Wait>1.67
LClick
Wait>0.08
MouseMove>522,155
Wait>1.6
LClick
Wait>0.08
MouseMove>359,110
Wait>1.49
LDown
MouseMove>102,108
Wait>0.48
LUp
Wait>0.06
Press CTRL
MouseMove>225,204
Wait>0.34
Send>c
Wait>0.02
MouseMove>490,703
Wait>0.3
Release CTRL
Wait>0.02
MouseMove>781,767
Wait>0.45
LClick
WaitWindowOpen>Yeni Microsoft Word Belgesi.doc - Microsoft Word
MoveWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,-4,-4
ResizeWindow>Yeni Microsoft Word Belgesi.doc - Microsoft Word,1032,754
Wait>0.05
MouseMove>630,641
Wait>0.46
Press CTRL
Wait>0.25
Send>v
Wait>0.17
Release CTRL
Wait>0.67
Press Enter
Wait>1.38
MouseMove>910,738
Wait>1.41
Press CTRL
Wait>0.22
Send>S
Wait>0.56
Release CTRL
Wait>0.67
Press Shift
Wait>0.16
Press ALT
Wait>0.34
Send>s
Wait>0.17
Release CTRL
Wait>0.05
Release Shift
Wait>0.02
Release CTRL
Wait>0.08
MouseMove>900,762
Wait>1.42
RDown
WaitWindowOpen> To Stop
MoveWindow> To Stop,0,0
ResizeWindow> To Stop,0,0
Wait>0.07
RUp
Wait>0.09
MouseMove>846,645
Wait>1.42



-----

Çaban için tekrar teşekkür. Kod yukarıda...
Aynı işlemi 3 defa yaptığım için kod bayağı bir uzun oldu :)

ismail pala
30/09/2005, 12:19
label>baslangic
let>sayac=sayac+1

.......
.....
.....
buraya kodlar geliyor
.....
......
....


IF>sayac<50000
goto>baslangic
ELSE
goto>bitis
ENDIF

label>bitis


_______________________
makroyu oluşturduktan sonra oluşan kodu buraya kodlar geliyor denen alana al üstte ve altta burada benim verdiğim kodlar olsun