• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makro ile pc den bulunan programa teklif oluşturtma.

Yaptığımız işin en basit ama süreklilikte en çok zamanı alan bölüm idi burasını aştık beraber teşekkürler,
Sıra geldi teklif çıktısını pdf ni alıp müşteriye email gönderme işlemi kaldı araştırıyorum nasıl yapılır diye bir sonuca ulaşırız inşallah.
 
Yaptığımız işin en basit ama süreklilikte en çok zamanı alan bölüm idi burasını aştık beraber teşekkürler,
Sıra geldi teklif çıktısını pdf ni alıp müşteriye email gönderme işlemi kaldı araştırıyorum nasıl yapılır diye bir sonuca ulaşırız inşallah.

Program teklif çıktısını alabiliyor mu?
Hangi formatlarda çıktı alabiliyor?

Teklifi zaten siz excel den programa giriyorsunuz?
Excel deki teklifi pdf olarak kaydedip mail gönderebilir siniz?

Edit: Düşündüm de asıl olan programa girilen tekliftir. Excel de programa geçerken bir farklılık olabilir, yada excel de daha sonradan değiştirilmiş olabilir v.s.
Sonuç olarak programdan alınıp gönderilmesi gerekir diye düşünüyorum.


Farklı bir durum mu var?
 
Son düzenleme:
program pdf olarak çıkış verebiliyor ,direk bir kısa yolu yok f6 gibi.

durum şöyleki teklif hazırlanıp f12 ye basıldığın da kaydedildi.

Ekranın belirli bir bölgesin de sağ klik yapıp çıkan uygulamada teklif kaydet butonu çıkıyor buraya sol klik yapıyoruz basıyoruz ve teklif nosu çıkıyor buda belirli bir bölgede bu yazıyı kopyalayıp entere basıyorum ve teklif ceki listesi oluşuyor ve ardından teklif kaydetme butonuna basıyorum ve bilgisayarımda ki bir klasöre kaydediyorum ve burdan alıp emaile yapıştırıp imzada bulunan kalıp satandart yazıyı seçiyorum ve emil olarak iletiyorum,durum kısaca böyle .


sağ kilik ve kordinata göre işlem yaptırabilme durumu mevcut .bunları nasıl aşabiliriz.
 
"Ekranın belirli bir bölgesin de sağ klik yapıp çıkan uygulamada teklif kaydet butonu çıkıyor "

Burası sağ tuşda alttan kaçıncı sırada.

"buraya sol klik yapıyoruz basıyoruz ve teklif nosu çıkıyor"
Ok tuşları ile üstüne gelip entere basınca aynı etkiyi yapıyor mu?


"teklif nosu çıkıyor buda belirli bir bölgede bu yazıyı kopyalayıp entere basıyorum"
Bu yazıyı kopyaladığınızda daha sonra nerede kullanıyorsunuz?


"teklif ceki listesi oluşuyor ve ardından teklif kaydetme butonuna basıyorum ve bilgisayarımda ki bir klasöre kaydediyorum"

Kaydetmek için kısa yol tuşu var mı?
Tüm işlemleri bir video olarak paylaşır mı sınız?
 
Kod:
"Ekranın belirli bir bölgesin de sağ klik yapıp çıkan uygulamada teklif kaydet butonu çıkıyor "

Burası sağ tuşda alttan kaçıncı sırada.

aşağıdan yukarı 42 sırada yukarıdan 2

Kod:
"buraya sol klik yapıyoruz basıyoruz ve teklif nosu çıkıyor"
Ok tuşları ile üstüne gelip entere basınca aynı etkiyi yapıyor mu?

evet enter aynı işlemi görüyor.

Kod:
"teklif nosu çıkıyor buda belirli bir bölgede bu yazıyı kopyalayıp entere basıyorum"
Bu yazıyı kopyaladığınızda daha sonra nerede kullanıyorsunuz?

teklif çeki listesinin ismi oluyor örnek y1000023.pdf


Kod:
"teklif ceki listesi oluşuyor ve ardından teklif kaydetme butonuna basıyorum ve bilgisayarımda ki bir klasöre kaydediyorum"
Kaydetmek için kısa yol tuşu var mı?

kısayol tuşu yok fakat söyle bir durum var ,

ekranın belli bir yerine sol klik yapılırsa 1 kere taba basıp enter ile sorun çözülüyor.

videoyu hemen çekip yazılı bir biçimde upload edeceğim sağ klik ve sol kilk için kodu hakkında yardımcı olabilirseniz belli bir aşamaya geleceğim ,

sorularınız ile çoğu kordinat iptal oldu :)
 
Kodların en üstüne aşağıdakini ekleyin.
#include <AutoItConstants.au3>

x 0, y 500 e çift klik yapar.
MouseClick($MOUSE_CLICK_LEFT, 0, 500, 2)

x 0, y 500 e tek klik yapar.
MouseClick($MOUSE_CLICK_LEFT, 0, 500, 1)

x 0, y 500 e tek sağ klik yapar.
MouseClick($MOUSE_CLICK_RIGHT, 0, 500, 1)

Sorulardan ne yapılası gerektiğini anladınız :)

Bu kodlar ile devamını getirirsiniz.
Sorun olur ise yazın.
 
Devamını yaptım şu bölümde kaldım ,2 adım kaldı

rapor bas ekranındaki onay kutusu sol klık ve 11 tab enter sonra otomatık bana sıstem emaıl yolluyor ,yardımcı olabilir misiniz kodların düzenlenmesi hakkın da

Kod:
next
    MouseClick($MOUSE_CLICK_RIGHT, 850, 250, 1)
	send("{TAB}")
   ;1 sn bekleniyor
   Sleep(1000)
   send("{TAB}{TAB} {TAB} {TAB} {TAB}{TAB} {TAB} {TAB}{ENTER}{TAB} {TAB} {TAB}")
   ;1 sn bekleniyor
   Sleep(1000)

   _WinWaitActivate("Rapor Bas","")
   send("{TAB}{TAB} {TAB}{TAB}")
     Sleep(3000)

 MouseClick($MOUSE_CLICK_RIGHT, 557,622, 1)
 send("{TAB}{TAB} {TAB} {TAB} {TAB}{TAB} {TAB} {TAB}{TAB} {TAB} {TAB}{ENTER}")
   ;1 sn bekleniyor
   Sleep(1000)

rapor bas ekranı çıkıyor 3 tab yapıyor ama ilgili kordinata sol klik yapamadım

frozen ile kontrol ediyorum şuna email gönder onay butonunun olduğu bölgede bunlar yazıyor.


Kod:
>>>> Window <<<<
Title:	Rapor Bas
Class:	WindowsForms10.Window.8.app.0.a6ad9a_r14_ad1
Position:	504, 136
Size:	432, 584
Style:	0x16C80000
ExStyle:	0x00010501
Handle:	0x000F3AEA

>>>> Control <<<<
Class:	WindowsForms10.BUTTON.app.0.a6ad9a_r14_ad1
Instance:	4
ClassnameNN:	WindowsForms10.BUTTON.app.0.a6ad9a_r14_ad14
Name:	fndCheckBoxSendMail
Advanced (Class):	[NAME:fndCheckBoxSendMail]
ID:	735932
Text:	Şuna E-mail Gönder
Position:	19, 456
Size:	120, 17
ControlClick Coords:	51, 5
Style:	0x5601000B
ExStyle:	0x00000000
Handle:	0x000B3ABC

>>>> Mouse <<<<
Position:	577, 619
Cursor ID:	0
Color:	0xFAF5FA

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Raporlar
Yazdırma Seçenekleri
&Kopyalar:
1
-
&Sayfalar:
Tümü
Bağımsız Ayarlar
Seçenekleri Formatla
Sayı/Tarih format lokal::
tr
Dil:
Portrait (Dinamik A4/Mektup)
&Yerleşim:
E-Posta Raporu
Şuna E-mail Gönder
Yazıcı
Tüm yazıcıları göster
Dosyaya Yaz
&Adı:
\\ERAYDINY\EPSON L355 Series
Gelişmiş
OK
Iptal
Öngörüntüle


>>>> Hidden Text <<<<

class:WindowsForms10.BUTTON.app.0.a6ad9a_r14_ad1
ınstance :4


birde burdaki teklif her müşteri nosuna göre değişiyor

Kod:
Title:	Satis Teklifi - Y20001174 - MUSTAFA DOGRU @ DURMAZLAR PROD. APPLICATION SERVER - IFS Applications

misal şuan sistem teklif nosu olarak bunu veriyor
Kod:
Satis Teklifi - Y20001174 - MUSTAFA DOGRU @ DURMAZLAR PROD. APPLICATION SERVER - IFS Applications



çok oluyorum ama kusura bakmayın ,

birde bu teklifin çeki listesi var , yapmaya çalıştım ama takıldım hiç hareket ettiremedim sanırım başlangıç kodlarım yanlış.
Kod:
next
   _WinWaitActivate("Satis Siparisi - Y10001814 - MUSTAFA DOGRU @ DURMAZLAR PROD. APPLICATION SERVER - IFS Applications","")
    MouseClick($MOUSE_CLICK_RIGHT, 850, 250, 1)
	send("{TAB}{TAB} {TAB}{ENTER}")
   ;1 sn bekleniyor
   Sleep(1000)
   
     MouseClick($MOUSE_CLICK_RIGHT, 379, 122, 1)
   send("{TAB}{ENTER}")
   
   Bericht exportieren sayfada kaydet kısa yolu C:\Users\mdogru\Desktop\yedek teklıf 
   
   send("{TAB}{TAB}")
   
   sayfa ismi olan Y10001814.pdf diyerek kaydettirmek istiyorum bu konjuda da yardımcı olabilirseniz benim işim tamamdır.
 
Hepsi birden çok karışık geldi. : )

İlk bölümü aşağıdaki şekilde deneyin.

Her işlem için ekran görüntüsü gönderir mi siniz?

"rapor bas ekranındaki onay kutusu sol klık ve 11 tab enter sonra otomatık bana sıstem emaıl yolluyor ,yardımcı olabilir misiniz kodların düzenlenmesi hakkın da"



Kod:
next     
  MouseClick($MOUSE_CLICK_RIGHT, 850, 250, 1)      
  send("{TAB}")     
  ;1 sn bekleniyor     
  Sleep(1000)     
  send("{TAB 8}")
  send("{ENTER}")
  send("{TAB 3}")     
  ;1 sn bekleniyor     
  Sleep(1000)      
  _WinWaitActivate("Rapor Bas","")     
  send("{TAB 4}")     
  Sleep(3000)      
  MouseClick($MOUSE_CLICK_LEFT, 557,622, 1)     
  send("{TAB 11}")
  send("{ENTER}")     
  ;1 sn bekleniyor     
  Sleep(1000)
 
Pencerede başlıklar değişiyor ise, aşağıdaki şekilde OPT komutunu kullanın.
Bu Title de içerir özelliğini kullanacaktır. Bunu kullanırken dikkat edin.

İçeren kelimeler başka pencerelerde ortak olan kelimeler olmamalı.
Program kararlı çalışmaz.


Kod:
   Opt('TrayIconDebug', 1)
   Opt("WinTitleMatchMode", 2)
   _WinWaitActivate("Satis Teklifi -","")
 
Teklif programı ilk aktif olduğunda pencere başlığından aşağıdaki şekilde teklif numarasını değişkene aktarabilir siniz.

Daha sonra bunu kaydederken kullanır sınız.

Kod:
   Opt('TrayIconDebug', 1)
   Opt("WinTitleMatchMode", 2)
   _WinWaitActivate("Satis Teklifi -","")
   Local $sText = WinGetTitle("[ACTIVE]")
   $sText=StringMid($sText,17,9)
 
teklif işlemi tamamdır ,teklif oluşturup sistem email atabiliyor artık bana :),


Sıra geldi çeki listesini kaydetme işlemine ,
kodlamasını yaptım fakat hatalar ve eksikler var sanırım yardımcı olabilir misiniz.
Kod:
#include <AutoItConstants.au3>



   Opt('TrayIconDebug', 1)
   Opt("WinTitleMatchMode", 2)
   _WinWaitActivate("Satis Siparisi - ","")
   Local $sText = WinGetTitle("[ACTIVE]")
   $sText=StringMid($sText,17,9)


   next
  MouseClick($MOUSE_CLICK_RIGHT,1375 , 220, 1)
  send("{TAB 2}")
  ;1 sn bekleniyor
  Sleep(1000)
  send("{ENTER}")
  _WinWaitActivate("Hızlı Rapor Sorgusu: 005 - Yedek Parca Ceki Listesi - IFS Applications","")
  send("{TAB 2}")
  ;1 sn bekleniyor
  Sleep(1000)


send("{right buton}")     klavyenin sag ok yön tusu yanlış kodluyorum sanırım

ctrl c tusu ile kopy alacağız   (yön tusu ile işaretlenmiş sayıyı hafızaya alarak)

   send("{ENTER}")


   _WinWaitActivate("005 - Yedek Parca Ceki Listesi - MUSTAFA DOGRU @ DURMAZLAR PROD. APPLICATION SERVER - IFS Applications","")

    MouseClick($MOUSE_CLICK_LEFT, 200,717, 1)

	send("{TAB}")
  ;1 sn bekleniyor
  Sleep(1000)
  send("{ENTER}")


  _WinWaitActivate("Bericht exportieren","")

  ctr v ile yapıstırıcağız ve sonuna.pdf dedirtmemiz lazım ardından


 send("{TAB 5}")
  ;1 sn bekleniyor
  Sleep(1000)
  send("{ENTER}")

  şu kısayala kaydettireceğiz.

  C:\Users\mdogru\Desktop\YENI SIPARISLER

ve döngü bitecek




Workbooks.close
 
Yardimci olamam : )

Video yada her ekran icin goruntu lazım
Bu sekilde gormeden kod yazmak olur.

Ayrica tebrikler. Hizli ilerliyorsunuz.
 
Sorularınız zaten olayı çözümlüyor :) hoşuma da gidince zorluyorum koşulları autoıt ilk kodlamasını kavrayabilsem gerisi gelecek bir hafta sonu oturup sırf video dinleyeceğim .

Video çektim yeni proje için linki aşağıdaki gibidir .kapsamanı genişlettim biraz.

http://s5.dosya.tc/server/xqmuoq/uploadi.rar&77342226
 
Ben bunun bir değişini IT Müdürüm den duymuştum kaç klik yapıp ta maaş almayı düşünüyorsun diye :) Yetkilendirme talebi önüne gelince haklısın demişti.

çok sağolun epey bir yükten alacak beni.
 
Flash da bazı açıklamalar hızlı geçiyor yakalayamadım.
Yakın olarak, bir tur için kodlar aşağıdaki şekildedir.
Aralara uygun yerlere sleep leri ekler siniz.

İşinizi kolaylaştırın ki, daha fazla araştırma yapmaya zaman olsun : )


Kod:
#include <AutoItConstants.au3>

Func _WinWaitActivate($title,$text,$timeout=0)
        WinWait($title,$text,$timeout)
        If Not WinActive($title,$text) Then WinActivate($title,$text)
        WinWaitActive($title,$text,$timeout)
EndFunc

  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("Satis Siparisi - ","")
  ;Sipariş numarası aınıyor.
  Local $sText = WinGetTitle("[ACTIVE]")
  $sText=StringMid($sText,17,9)

  ;Teslimat bilgisi tıklanıyor
  MouseClick($MOUSE_CLICK_LEFT,197 , 338, 1)
  ;Sevkiyat oluşturulud kutusuna gidiliyor
  send("{TAB 21}")
  ;İki defa aşağı tuşu
  Send("{DOWN 2}")
  ;F12 kaydet
  Send("{F12}")
  ;Sipariş satırları tıklanıyor
  MouseClick($MOUSE_CLICK_LEFT,60 , 305, 1)
  ;Shift+F5
  Send("+{F5}")
  ;Sağ daki boş yer sağ klik, koordinatı siz girin.Açıklama okunamadı.
  MouseClick($MOUSE_CLICK_RIGHT, x , y , 1)
  ;Sipariş yayınla ya gidiliyor.Aşağı tuşu ile. Tahmini
  Send("{DOWN 4}")
  Send("{ENTER}")

  ;IFS Uygulamaları bilgi ekranında Enter e basılıyor
  _WinWaitActivate("IFS Uygulamaları","")
  Send("{ENTER}")
  sleep(2000)
  ;Shift+F5
  Send("+{F5}")
  ;Sevk no alınıyor
  send("{TAB 9}"
  Send("^C")
  ;Sevkiyat modülünün gelmesi bekleniyor
  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("Sevkiyat-","")
  ;Sorgulama ekranı getiriliyor.
  Send("{F3}")
  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("Ara:","")
  ;Sevk no yapıştırılıyor.
  send("{TAB 2}"
  Send("^V")
  Send("{ENTER}")
  ;Sevkiyat ekranında sağ tuş 17 tab ve enter yapılıyor.
  MouseClick($MOUSE_CLICK_RIGHT, 1289 , 123 , 1)
  send("{TAB 17}"
  Send("{ENTER}")

  ;REZ ET yapılıyor. Sağ daki boş yer sağ klik, koordinatı siz girin.Açıklama okunamadı.
  MouseClick($MOUSE_CLICK_RIGHT, x , y , 1)
  Send("{DOWN 17}")
  Send("{ENTER}")

  ;Mlz/Çekist Yarat yapılıyor. Sağ daki boş yer sağ klik, koordinatı siz girin.Açıklama okunamadı.
  MouseClick($MOUSE_CLICK_RIGHT, x , y , 1)
  Send("{DOWN 18}")
  Send("{ENTER}")

  ;Kadir Güler den mail gelmesi bekleniyor :)

  ;Sipariş ekranına tekrar dönülüyor.
  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("Satis Siparisi - ","")
  ;Shift+F5
  Send("+{F5}")

 ;MYedek Parça çeki listesi seçiliyor. Sağ daki boş yer sağ klik, koordinatı siz girin.Açıklama okunamadı.
  MouseClick($MOUSE_CLICK_RIGHT, x , y , 1)
  Send("{DOWN 2}")
  Send("{ENTER}")

  ;Hızlı rapor sayfasının gelmesi bekleniyor.
  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("Hızlı Rapor","")
  Send("{TAB 2}")
  Send("{RIGHT}")
  Send("^C")
  Send("{TAB 2}")
  Send("{ENTER}")

  ;Yedek parça çek listesi gelmesi bekleniyor.
  Opt('TrayIconDebug', 1)
  Opt("WinTitleMatchMode", 2)
  _WinWaitActivate("005 - Yedek","")

  MouseClick($MOUSE_CLICK_LEFT,200 , 3264, 1)
  Send("{TAB}")
  Send("{ENTER}")

  ;Kaydet penceresinin gelmesi bekleniyor.
  _WinWaitActivate("Bericht exportieren","")
  ;Buradaki dosya yolunu doğru şekilde değiştirin
  Send("C:\Users\mdogru\Desktop\YENI SIPARISLER\")
  Send("^V")
  Send(".pdf")
  Send("{TAB}")
  ;PDF formatı seçiliyor
  Send("{DOWN 2}")
  Send("{ENTER}")
  ;TAMAM butonuna gidiliyor
  Send("{TAB 2}")
  Send("{ENTER}")
 
Son düzenleme:
ilginiz için teşekkür ederim ,

Şöyle bir hata alıyorum f5 den sonra

Kod:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\mdogru\Desktop\ıfs teklıf hazırlatma auto ıt ıle\kaydet.au3"    
"C:\Users\mdogru\Desktop\?fs tekl?f haz?rlatma auto ?t ?le\kaydet.au3" (5) : ==> Unknown function name.:
_WinWaitActivate("Satis Siparisi - ","")
^ ERROR
>Exit code: 1    Time: 0.4527
 
Kodu güncelledim. İlk satırlara aşağıdaki kodu eklemek gerekiyor.

Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
 
Geri
Üst