Komut Gönderme Programı - Geliştirme

Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
-10 adete kadar Excel dosyalarını okuma özelliği eklendi.

* Okunan bilginin string değişkene aktarılması
* Satır ve sütun ların sayısal değişkenler ile tanımlanabilmesi sağlanacak.

EXCELDOSYAAC1 REHBER.XLS ; rehber.xls excel dosyasını 1. excel dosyası olarak aç.
BEKLE 3000 ; 3 sn bekle
EXCELDOSYAOKU1 2 1 ; 1. excel dosyasının 2. satır 1. sütunundaki veriyi oku ve mevcut konuma yaz
EXCELDOSYAOKU1 2 2 ; 1. excel dosyasının 2. satır 2. sütunundaki veriyi oku ve mevcut konuma yaz
EXCELDOSYAKAPAT1 ; Açılmış 1. excel dosyasını kapat.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Excel dosyaları ile çalışabilmek için excel den okuma ve excel e yazma komutları eklendi.
Çalışma videoları ayrıca yüklenecek.

* IF THEN (EĞER) ve GOTO (GIT) komutları için çalışma yapılacak. Mevcut GIT komutu FAREGIT olarak değiştirilecek.

- EXCELDOSYAAC1 REHBER.XLS //Rehber.xls excel dosyasını aç
- EXCELDOSYAOKU1 Sayfa1 2,1 //1 nolu dosyanın Sayfa1 isimli sayfasından 2. satır 1. Sütun bilgisini al.
- EXCELDOSYAOKU1 Sayfa1 N01,1 //1 nolu dosyanın Sayfa1 isimli sayfasından N01 sayısal değişkeninin değerine göre satır, 1. Sütun hücresindeki değeri al.
- EXCELDOSYAOKU1 Sayfa1 N01,N02 //1 nolu dosyanın Sayfa1 isimli sayfasından N01 sayısal değişkeninin değerine göre satır, N01 sayısal değişkeninin değerine göre sütun hücresindeki değeri al.

- EXCELDOSYAYAZ1 EKRANOKURESIM1 Sayfa1 1,4 //1. resimde belirlenen alanını OCR ile oku 1. dosyadaki, Sayfa1 isimli sayfanın 1. sastır 4. sütun hücresine yaz.
- EXCELDOSYAYAZ1 S01 Sayfa1 2,1 //1 nolu dosyanın Sayfa1 isimli sayfasından 2. satır 1. Sütununa S01 metin değerini yaz.
- EXCELDOSYAYAZ1 N01 Sayfa1 N01,1 //1 nolu dosyanın Sayfa1 isimli sayfasından 2. satır 1. Sütununa N01 sayısal değerini yaz.
- EXCELDOSYAYAZ1 "Asri Akdeniz" Sayfa1 N01,N02 //1 nolu dosyanın Sayfa1 isimli sayfasının N01 sayısal değişkeninin değerine göre satır, N01 sayısal değişkeninin değerine göre sütun hücresine Asri Akdeniz metin bilgisini yaz.

- S01=EXCELDOSYAOKU1 Sayfa1 2,1 //1 nolu dosyanın Sayfa1 isimli sayfasından 2. satır 1. Sütun bilgisini oku S01 metin değişkenine aktar.
- S01=EXCELDOSYAOKU1 Sayfa1 N01,1 //1 nolu dosyanın Sayfa1 isimli sayfasından N01 sayısal değişkeninin değerine göre satır, 1. Sütun hücresindeki bilgiyi oku S01 metin değişkenine aktar.
- S01=EXCELDOSYAOKU1 Sayfa1 N01,N02 //1 nolu dosyanın Sayfa1 isimli sayfasından N01 sayısal değişkeninin değerine göre satır, N01 sayısal değişkeninin değerine göre sütun hücresindeki bilgiyi oku S01 değişkenine aktar.
- EXCELDOSYAKAPAT1 //1 nolu excel dosyasını kapat.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Geliştirmekte olduğum Otomatik Komut Gönder Programı ile Bilsoft Online Ön Muhasebe programında, otomatik cari kart açma çalışması.

Program excel cari listesinden bilgileri alır. Cari kart eklemek için hızlı bir şekilde girişlerini yapar.
Program, Türkçe kendi komut setlerini kullanır.

Program giriş yapmadan önce giriş yapacağı sayfada olup olmadığını kontrol eder.
BEKLE RESIM1 ALAN1 - ALAN1 olarak belirlenen alan için RESIM1 in bulunmasını bekle sonraki işleme geç

Not: program geliştirme aşamasındadır. Nihai ürün değildir.

Programın deneme işlemleri içim Bilsoft firmasından onay alınmıştır.
Onay verdikleri için teşekkür ederim.



233060
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Bu deneme süreçleri tamamlandığında diğer muhasebe yada farklı programlarada (Sanal tuşları engellemeyen) otomatik girişler yapılabilecek.

Üstteki deneme işleminde komutların açıklaması.

BEKLE 2000 ; 2 sn bekle
EXCELDOSYAAC1 CARIKARTLISTESI.XLSX ; CARIKARTLISTESI.XLSX 1 nolu excel dosyasını okuma yazma işlemi için aç

N01=1 ; Sayısal N01 değişkenine 1 değerini aktar

KOMUTLARARASIBEKLEME ; Bundan sonraki komutlar için komutlar arası bekleme yapma.
DONGUBASLA 10 ; 10 kayıt için işlemleri tekrarla

N01=N01+1 ; N01 değişkenini 1 arttır

BEKLE RESIM1 ALAN1 ; Belirlenmiş ALAN1 içinde RESIM1 i bulunmasını bekle
TEKTIKLA KOORDINAT1 ; Önceden belirlenmiş KOORDINAT1 i tıkla.
TUS +END;TUS DEL ; Shift +End e tuşla, DEL tuşla
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,1;TUS TAB ;1 nolu excel dosyasındaki, Sheet1 sayfasındaki, N01 satır, 1. sütundaki veriyi oku ve yaz, TAB tuşla
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,2;TUS TAB ;1 nolu excel dosyasındaki, Sheet1 sayfasındaki, N01 satır, 2. sütundaki veriyi oku ve yaz, TAB tuşla
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,3;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,4;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,5;TUS TAB
BEKLE RESIM1 ALAN1
TUS DOWN;TUS TAB ; Aşağı tuşu gönder, TAB tuşu gönder
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,6;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,7;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,8;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,9;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,10;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,11;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,12;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,13;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,14;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,15;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,16;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,17;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,18;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,19;TUS TAB
BEKLE RESIM1 ALAN1
EXCELDOSYAOKU1 Sheet1 N01,20;TUS TAB
BEKLE RESIM1 ALAN1
TUS TAB;TUS ENTER ; TAB tuşu gönder, ENTER tuşu gönder
TEKTIKLA KOORDINAT2

BEKLE RESIM2 ALAN1 ; Belirlenmiş ALAN1 içinde RESIM2 i bulunmasını bekle
TEKTIKLA RESIM2 ALAN1 ; Belirlenmiş ALAN1 içinde RESIM2 i bul ve tıkla

BEKLE RESIM3 ALAN1 ;Belirlenmiş ALAN1 içinde RESIM3 i bulunmasını bekle
TEKTIKLA RESIM3 ALAN1 ; Belirlenmiş ALAN1 içinde RESIM3 i bul ve tıkla
DONGUBITIR ; Döngü işlemini bitir.
KOMUTLARARASIBEKLE ;Komutlar arasında bekle
EXCELDOSYAKAPAT1 ; 1. Excel dosyasını kapat.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Programda genel olarak komutlar arası bekle süresi belirlenebiliyor.

Güncelleme;
- KOMUTLARARASIBEKLEME ; Bu komuttan sonra tüm komutlarda, komutlar arasında varsayılan bekleme süresi beklenmez.
BEKLE 2000 gibi girilen bekleme komutu geldiğinde beklenir.
- KOMUTLARARASIBEKLE ; Bu komuttan sonraki tüm komutlarda, komutlar arasında varsayılan bekleme süresi kadar beklenir.
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
436
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2019 TR - 32bit

VBA, Selenium ve VBS
Bazan bir şeyler öğrendiğimi zannediyorum. Sizin yaptıklarınıza bakınca hiç bir şey bilmediğimi bir kere daha anlamış oluyorum. Elinize sağlık. Tebrik ediyorum.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Bazan bir şeyler öğrendiğimi zannediyorum. Sizin yaptıklarınıza bakınca hiç bir şey bilmediğimi bir kere daha anlamış oluyorum. Elinize sağlık. Tebrik ediyorum.
Estğ. çok farklı bir iş değil.
Sendkey işlemine, mouse işlemide dahil edip biraz daha kontrollü ve kararlı çalışacak şekilde ayarlamaya çalışıyorum.
Tabi işlevsel olması için kolay kullanım komutları da eklenince biraz birşeylere benzedi. :)
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Güncelleme;
- ATLA (GOTO) Komutu eklendi. ATLA DENEME1
DENEME1 Kullanıcının belirleyeceği her hangi bir kelime
Atlama sonraki satırlar için geçerli. Geçmiş satırlama atlama henüz eklenmedi.
- EGER (IF) komutu eklendi. EGER N01=N02 ISE ATLA DENEME1
EĞER komutunda tek koşul var birden fazla koşul (or, and) henüz eklenmedi.

EGER N01=N02 ISE ATLA DENEME1
EGER N01=5 ISE ATLA DENEME1
EGER 5=N01 ISE ATLA DENEME1
EGER S01="ELMA" ISE ATLA DENEME1
EGER "ELMA"=S01 ISE ATLA DENEME1
EGER S01=S02 ISE ATLA DENEME1

Bu script 1 den 7 ye kadar alt alta yazar. Ancak 5 i yazmaz.
C#:
BEKLE 2000
N01=0
N02=5

DONGUBASLA 7
N01=N01+1

EGER N01=N02 ISE ATLA DENEME1

YAZ N01;TUS ENTER

DENEME1:

DONGUBITIR
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Karşılaştırma operatörleri eklendi.
= ; Eşit
> ; Büyük
< ; Küçük
! ; Eşit değil

C#:
EGER N01=N02 ISE ATLA DENEME1
EGER N01=5 ISE ATLA DENEME1
EGER 5=N01 ISE ATLA DENEME1
EGER S01="ELMA" ISE ATLA DENEME1
EGER "ELMA"=S01 ISE ATLA DENEME1
EGER S01=S02 ISE ATLA DENEME1

EGER N01>N02 ISE ATLA DENEME1
EGER N01>5 ISE ATLA DENEME1
EGER 5>N01 ISE ATLA DENEME1
EGER S01>"ELMA" ISE ATLA DENEME1
EGER "ELMA">S01 ISE ATLA DENEME1
EGER S01>S02 ISE ATLA DENEME1

EGER N01<N02 ISE ATLA DENEME1
EGER N01<5 ISE ATLA DENEME1
EGER 5<N01 ISE ATLA DENEME1
EGER S01<"ELMA" ISE ATLA DENEME1
EGER "ELMA"<S01 ISE ATLA DENEME1
EGER S01<S02 ISE ATLA DENEME1

EGER N01!N02 ISE ATLA DENEME1
EGER N01!5 ISE ATLA DENEME1
EGER 5!N01 ISE ATLA DENEME1
EGER S01!"ELMA" ISE ATLA DENEME1
EGER "ELMA"!S01 ISE ATLA DENEME1
EGER S01!S02 ISE ATLA DENEME1
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Alım satım bot um

BOT um henüz emekleme aşamasında. Sanal alım satımda denemeler yapıyor.
Ama ilk denemeler için fena sayılmaz :):)

Kendi script dilim emin adımlar ile ilerliyor :)

35088_DEN_SATIS_YAPILDI
35040_DEN_ALIS_YAPILDI
35063_DEN_SATIS_YAPILDI
35046_DEN_ALIS_YAPILDI
35066_DEN_SATIS_YAPILDI
35031_DEN_ALIS_YAPILDI

CSS:
BEKLE 2000

S01=" " // ALIM İŞLEMİ YAPILDIĞINDA ALINDI YAZILIR.
S02="SATTI" //SATIŞ İŞLEMİ YAPILDIĞINDA SATTI YAZILIR.

DONGUBASLA 100000  // 100 BİN DEFA KODU ÇALIŞTIR.

N01=EKRANOKURESIM1  //ALIŞ FİYATI İLGİLİ ALANDAN OKUNUR N01 SAYISAL DEĞİŞKENE AKTARILIR.
N02=EKRANOKURESIM2 //SATIŞ FİYATI İLGİLİ ALANDAN OKUNUR N02 SAYISAL DEĞİŞKENE AKTARILIR.

EGER N01<35050 ISE ATLA ALISYAP  // ALIŞ FİYATI 35050 DEN KÜÇÜK İSE ALISYAP BÖLÜMÜNE ATLANIR.
EGER N02>35060 ISE ATLA SATISYAP  // SATIŞ FİYATI 35060 DEN BÜYÜK İSE SATISYAP BÖLÜMÜNE ATLANIR.
ATLA SON  // İKİ KOŞULA UYMUYOR İSE DÖNGÜ SONUNA ATLANIR.

SATISYAP:  // SATIŞ YAP BÖLÜMÜ
EGER S02="SATTI" ISE ATLA SON   // SATIŞ YAPILMIŞ İSE BİR DAHA SATIŞ YAPILMAZ. ALIŞ İŞLEMİ YAPILANA KADAR.
S01=" "   // TEKRAR ALIM YAPILABİLİMESİ İÇİN. ALIŞ İŞLEMİNİ SIFIRLA.
S02="SATTI" // TEKRAR SATIŞ YAPILAMAMASI İÇİN. SATIŞ İŞLEMİ YAPILDIĞINI BELİRT.

YAZ N02;TUS "_DEN_SATIS_YAPILDI";TUS ENTER  // SATIŞ YAPILDI BİLGİSİNİ YAZDIR.
ATLA SON //DÖNGÜ SONUNA ATLA

ALISYAP: // ALIŞ YAP BÖLÜMÜ
EGER S01="ALDI" ISE ATLA SON  // ALIŞ YAPILMIŞ İSE BİR DAHA ALIŞ YAPILMAZ.SATIŞ İŞLEMİ YAPILANA KADAR.
S01="ALDI" // TEKRAR ALIM YAPILAMAMASI İÇİN. ALIM İŞLEMİ YAPILDIĞINI BELİRT.
S02=" " // TEKRAR SATIŞ YAPILABİLİMESİ İÇİN. SATIŞ İŞLEMİNİ SIFIRLA.
YAZ N01;TUS "_DEN_ALIS_YAPILDI";TUS ENTER  // ALIM YAPILDI BİLGİSİNİ YAZDIR.

SON:  // SON A ATLA BÖLÜMÜ
DONGUBITIR
 
Katılım
9 Mayıs 2007
Mesajlar
218
Excel Vers. ve Dili
365 TR
Abi eline sağlık bu uygulamayı E-Arşiv fatura uygulaması için yapabilsek süper olur. Otomatik gib den fatura kesebilmek için.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Abi eline sağlık bu uygulamayı E-Arşiv fatura uygulaması için yapabilsek süper olur. Otomatik gib den fatura kesebilmek için.
Fatura kesme adımlarını tam bilmiyorum. Ancak kullanıcıya bağımlı giriş yok ise dosyadan okuyup yapılabiliyor ise program tamamlandığında yapılabilir.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Alım satım bot um

BOT um henüz emekleme aşamasında. Sanal alım satımda denemeler yapıyor.
Ama ilk denemeler için fena sayılmaz :):)

Kendi script dilim emin adımlar ile ilerliyor :)

35088_DEN_SATIS_YAPILDI
35040_DEN_ALIS_YAPILDI
35063_DEN_SATIS_YAPILDI
35046_DEN_ALIS_YAPILDI
35066_DEN_SATIS_YAPILDI
35031_DEN_ALIS_YAPILDI

CSS:
BEKLE 2000

S01=" " // ALIM İŞLEMİ YAPILDIĞINDA ALINDI YAZILIR.
S02="SATTI" //SATIŞ İŞLEMİ YAPILDIĞINDA SATTI YAZILIR.

...
İlk paralı denemelerde 1 usd zarar ile devam ediyorum : )))
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Alım satım bot u başarısız. En azından bu script için uygun değil :)

Yeni komutlar eklendi.

FARESOLBASILITUT ; Fare nin sol tuşunu basılı tutar. FARESOLBIRAK yada bri tıklama yapılana kadar.
FARESOLBIRAK ; Fare sol tuşunu bırakır.
FARESAGBASILITUT ; Fare nin sol tuşunu basılı tutar. FARESOLBIRAK yada bri tıklama yapılana kadar.
FARESAGBIRAK ; Fare sol tuşunu bırakır.
YAZ PANODANOKU ; Windows panoya kaydedilen metinsel bilgiyi mevcut konuma yazar.
S01=PANODANOKU ; Windows panoya kaydedilen metinsel bilgiyi S01 değişkenine akatarır.
ASAGIKAYDIROZEL 1 10 ; ScrollBar ı 1 pixel ve 10 defa aşağı kaydırır. Değerler değiştirilebilir. Şu an için browser larda çalışıyor.
YUKARIKAYDIROZEL 1 10 ; ScrollBar ı 1 pixel ve 10 defa yukarı kaydırır. Değerler değiştirilebilir. Şu an için browser larda çalışıyor.

Bu komutlar ile ekranın belirli alanlarında fare ile metinler seçilip kopyala yapılarak panoya ve değişkene aktarılır ve istenen her hangi bir yerde
veri olarak kullanılabilir.

Programın son komut seti.
ASAGIKAYDIR 10
ATLA DENEME1
!END
^END
+END //SHIFT
BEKLE 2000
BEKLE KAPAT.BMP ALAN1
BEKLE RESIM1
CIFTTIKLA
CIFTTIKLA KAPAT.BMP ALAN1
CIFTTIKLA KOORDINAT1
CIFTTIKLA RESIM1
DONGUBASLA 5
DONGUBITIR
DOSYAAC1 VERILER.TXT
DOSYAKAPAT1
DOSYAOKU1
EGER N01=N02 ISE ATLA DENEME1
EGER N01=5 ISE ATLA DENEME1
EGER 5=N01 ISE ATLA DENEME1
EGER S01="ELMA" ISE ATLA DENEME1
EGER "ELMA"=S01 ISE ATLA DENEME1
EGER S01=S02 ISE ATLA DENEME1

EGER N01>N02 ISE ATLA DENEME1
EGER N01>5 ISE ATLA DENEME1
EGER 5>N01 ISE ATLA DENEME1
EGER S01>"ELMA" ISE ATLA DENEME1
EGER "ELMA">S01 ISE ATLA DENEME1
EGER S01>S02 ISE ATLA DENEME1

EGER N01<N02 ISE ATLA DENEME1
EGER N01<5 ISE ATLA DENEME1
EGER 5<N01 ISE ATLA DENEME1
EGER S01<"ELMA" ISE ATLA DENEME1
EGER "ELMA"<S01 ISE ATLA DENEME1
EGER S01<S02 ISE ATLA DENEME1

EGER N01!N02 ISE ATLA DENEME1
EGER N01!5 ISE ATLA DENEME1
EGER 5!N01 ISE ATLA DENEME1
EGER S01!"ELMA" ISE ATLA DENEME1
EGER "ELMA"!S01 ISE ATLA DENEME1
EGER S01!S02 ISE ATLA DENEME1

EKRANALONCEKINISIL RESIM1
EKRANALONCEKINISILME RESIM1
EXCELDOSYAAC1 REHBER.XLS
EXCELDOSYAKAPAT1
EXCELDOSYAOKU1 Sayfa1 2,1
EXCELDOSYAOKU1 Sayfa1 N01,1
EXCELDOSYAOKU1 Sayfa1 N01,N02
EXCELDOSYAYAZ1 "Asri Akdeniz" Sayfa1 N01,N02
EXCELDOSYAYAZ1 EKRANOKURESIM1 Sayfa1 1,4
EXCELDOSYAYAZ1 N01 Sayfa1 N01,1
EXCELDOSYAYAZ1 S01 Sayfa1 2,1
EXCELDOSYAYAZ1 PANODANOKU Sayfa1 1,4
GIT
GIT 100,250
GIT 500,N01
GIT KAPAT.BMP ALAN1
GIT KOORDINAT1
GIT N01,500
GIT N01,N02
GIT RESIM1
GIT RESIM1 ALAN1
KOMUTLARARASIBEKLEME
KOMUTLARARASIBEKLE
N01=10
N01=DOSYAOKU1
N01=N01+1
N01=N01+N02
N50=FAREXPOS
N60=FAREYPOS
PROGRAMBEKLE Excel
S01="ELMA"
S01="KIRMIZI"+S01
S01=DOSYAOKU1
S01=EKRANOKURESIM1
S01=EXCELDOSYAOKU1 Sayfa1 2,1
S01=EXCELDOSYAOKU1 Sayfa1 N01,1
S01=EXCELDOSYAOKU1 Sayfa1 N01,N02
S01=S01+S02
SAAT
SAGTIKLA
SAGTIKLA KOORDINAT1
SAGTIKLA RESIM1
SAGTIKLA RESIM1 ALAN1
TARIHSAAT
TEKTIKLA
TEKTIKLA KAPAT.BMP ALAN1
TEKTIKLA KOORDINAT1
TEKTIKLA RESIM1
TEKTIKLA RESIM1 ALAN1
TUS ENTER
YAZ N01
YAZ S01
YUKARIKAYDIR 10
FARESOLBASILITUT
FARESOLBIRAK
FARESAGBASILITUT
FARESAGBIRAK
YAZ PANODANOKU
S01=PANODANOKU
ASAGIKAYDIROZEL 1 10
YUKARIKAYDIROZEL 1 10
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
ATLA <etiket> Komutu ileri ve geri komutlara olacak şekilde düzenlendi.
Aşağıdaki kodun sonucu

ADIM4 YAZILDI
ADIM2 YAZILDI
ADIM1 YAZILDI
ADIM3 YAZILDI

C#:
BEKLE 2000

ATLA ADIM4

ADIM1:
YAZ "ADIM1 YAZILDI";TUS ENTER

ATLA ADIM3

ADIM2:
YAZ "ADIM2 YAZILDI";TUS ENTER

ATLA ADIM1

ADIM3:
YAZ "ADIM3 YAZILDI";TUS ENTER

ATLA SON

ADIM4:
YAZ "ADIM4 YAZILDI";TUS ENTER
ATLA ADIM2

SON:
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
İki koodinat farkını alma ile fare kaydırma ve işlem yapmaya örnek.
Hız bence gayet iyi :)

BEKLE 2000 ;2 sn bekle
TEKTIKLA KOORDINAT1 ; 1. koordinata tıkla
N01=FAREXPOS ;Mevcut koordinatın X pozisyonunu al, N01 değişkenine aktar.
TEKTIKLA KOORDINAT2 ; 1. koordinata tıkla
N02=FAREXPOS ;Mevcut koordinatın X pozisyonunu al, N02 değişkenine aktar.
TEKTIKLA KOORDINAT1 ; 1. koordinata tıkla
N03=N02-N01 ;2. koordinatın X değerinden, 1. Koordinatın X değerini çıkar N03 değişkenine farkını aktar.
N05=FAREYPOS; Mevcut pozsiyonun Y değerini N05 değişkenine aktar.
N04=N01 ; N04 değişkenine 1. Koordinatın X değerini aktar.

DONGUBASLA 10 ; Döngüdeki işlemleri 10 defa tekrarla.
SAGTIKLA ; Mevcut konumda fare sağ tuş tıkla
TUS "S" ; S ye bas
TUS DOWN ; Aşağı ok a bas
TUS ENTER ; Enter e bas
N04=N04+N03 ; N04 X değişken değerini N03 fark kadar arttır
TEKTIKLA N04,N05 ; Artmış X ile sabit Y değerinden oluşan koordinatı tıkla.
DONGUBITIR ; Döngü 10 defa yapıldı ise bitir.



234759
 

mustilem23

Altın Üye
Katılım
29 Ekim 2010
Mesajlar
365
Excel Vers. ve Dili
Microsoft Office 365 ProPlus 64 bit
Üstad süper bir program olmuş , epey uğraşılmış emeğine sağlık.

Bir şey rica etsem 2. mesajınızdaki belirli alanın resmini seç olayının kodlaması nasıl acaba auotoit de.
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Üstad süper bir program olmuş , epey uğraşılmış emeğine sağlık.

Bir şey rica etsem 2. mesajınızdaki belirli alanın resmini seç olayının kodlaması nasıl acaba auotoit de.
resim alma işlemleri için bu konuyu da inceleyebilirsiniz.


Bu kodu inceleyebilirsiniz.

C#:
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
#Include <Misc.au3>

Global $iX1, $iY1, $iX2, $iY2, $aPos, $sMsg, $sBMP_Path

; Create GUI
$hMain_GUI = GUICreate("Select Rectangle", 240, 50)

$hRect_Button   = GUICtrlCreateButton("Mark Area",  10, 10, 80, 30)
$hCancel_Button = GUICtrlCreateButton("Cancel",    150, 10, 80, 30)

GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $hCancel_Button
            FileDelete(@ScriptDir & "Rect.bmp")
            Exit
        Case $hRect_Button
            GUISetState(@SW_HIDE, $hMain_GUI)
            Mark_Rect()
            ; Capture selected area
            MsgBox($MB_SYSTEMMODAL, "Coords", "Left: " & $iX1 & @CRLF & "Top: " & $iY1 & @CRLF & "Right: " & $iX2 & @CRLF & "Bott0m: " & $iY2)

    EndSwitch

WEnd

; -------------

Func Mark_Rect()

    Local $aMouse_Pos, $hMask, $hMaster_Mask, $iTemp
    Local $UserDLL = DllOpen("user32.dll")

    ; Create transparent GUI with Cross cursor
    $hCross_GUI = GUICreate("Test", @DesktopWidth, @DesktopHeight - 20, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
    WinSetTrans($hCross_GUI, "", 8)
    GUISetState(@SW_SHOW, $hCross_GUI)
    GUISetCursor(3, 1, $hCross_GUI)

    Global $hRectangle_GUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW + $WS_EX_TOPMOST)
    GUISetBkColor(0x000000)

    ; Wait until mouse button pressed
    While Not _IsPressed("01", $UserDLL)
        Sleep(10)
    WEnd

    ; Get first mouse position
    $aMouse_Pos = MouseGetPos()
    $iX1 = $aMouse_Pos[0]
    $iY1 = $aMouse_Pos[1]

    ; Draw rectangle while mouse button pressed
    While _IsPressed("01", $UserDLL)

        $aMouse_Pos = MouseGetPos()

        $hMaster_Mask = _WinAPI_CreateRectRgn(0, 0, 0, 0)
        $hMask = _WinAPI_CreateRectRgn($iX1,  $aMouse_Pos[1], $aMouse_Pos[0],  $aMouse_Pos[1] + 1) ; Bottom of rectangle
        _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
        _WinAPI_DeleteObject($hMask)
        $hMask = _WinAPI_CreateRectRgn($iX1, $iY1, $iX1 + 1, $aMouse_Pos[1]) ; Left of rectangle
        _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
        _WinAPI_DeleteObject($hMask)
        $hMask = _WinAPI_CreateRectRgn($iX1 + 1, $iY1 + 1, $aMouse_Pos[0], $iY1) ; Top of rectangle
        _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
        _WinAPI_DeleteObject($hMask)
        $hMask = _WinAPI_CreateRectRgn($aMouse_Pos[0], $iY1, $aMouse_Pos[0] + 1,  $aMouse_Pos[1]) ; Right of rectangle
        _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
        _WinAPI_DeleteObject($hMask)
        ; Set overall region
        _WinAPI_SetWindowRgn($hRectangle_GUI, $hMaster_Mask)

        If WinGetState($hRectangle_GUI) < 15 Then GUISetState()
        Sleep(10)

    WEnd

    ; Get second mouse position
    $iX2 = $aMouse_Pos[0]
    $iY2 = $aMouse_Pos[1]

    ; Set in correct order if required
    If $iX2 < $iX1 Then
        $iTemp = $iX1
        $iX1 = $iX2
        $iX2 = $iTemp
    EndIf
    If $iY2 < $iY1 Then
        $iTemp = $iY1
        $iY1 = $iY2
        $iY2 = $iTemp
    EndIf

    GUIDelete($hRectangle_GUI)
    GUIDelete($hCross_GUI)
    DllClose($UserDLL)

    FileDelete(@ScriptDir & "\resim.bmp")
    _ScreenCapture_Capture(@ScriptDir & "\resim.bmp",$iX1, $iY1,$iX2, $iY2)
EndFunc   ;==>Mark_Rect
 
Üst