Şimdi Ara

Autohotkey'de script için yardım lazım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
78
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba, bilgisayarda işlerimi kolaylaştıracak bir komut dizisi yazıyorum ama çok acemi olduğum için bazı aşamaları oluşturamıyorum. Chatgpt'den genelde yardım aldım yazma konusunda ama tıkandım.

    1 - İnternet sayfasında "a, b, c" şeklinde 3 değişken aratıyorum

    2 - Bulamazsa sayfada "page down"

    3 - Bulursa rastgele 3 değişkenden birine tıklıyor.

    4 - Açılan sayfada ilgili başlığı bulana kadar "page up" yapıyor.

    5 - Başlığı bulup tıklıyor ve daha sonra diğer başlık açılıp başlık2'ye tıklıyor.

    6 - Tekrar "page down" yapıp kaydet görselini bulup tıklıyor ve sonra geri kısmına tıklıyor.


    Buraya kadar tamam ama geri sayfaya geldikten sonra script sadece "page up" şeklinde takılı kalıyor. Sürekli yukarı çıkıyor sayfa. Beni istediğin tekrar geri gelinde "a,b,c" değişkenlerinden yine herhangi birini bulup yine aynı şekilde işlemleri yapmak. Ne zaman ki geri geldikten sonra sayfada bir "a,b,c" değişkeni bulamazsa "end" yapıp aşağıdaki sayfa numaraları için sayfa2.png yapıp o sayfada da aynı işlemleri yapıp bu şekilde 5 sayfada da işlem yapmak. Belki kolay yada zordur acemiyim diye bilemiyorum ama tıkandığım için profesyonel yardım gerekiyor sanırım.




    Kod

    Yığını:
    Esc::Reload ; Toggle değişkenini başlat toggle := false ; Insert tuşuna basıldığında toggle değişkenini aç/kapat Insert:: toggle := !toggle if (toggle) {     MsgBox, Arama başlatılıyor.     SetTimer, StartImageSearch, 0 ; Döngüyü başlat } else {     MsgBox, Arama durduruluyor.     SetTimer, StartImageSearch, Off ; Döngüyü durdur } return ; Arama ve tıklama işlemi StartImageSearch: {     ; Chrome penceresini etkinleştir ve kontrol et     if !WinActive("ahk_exe chrome.exe") {         WinActivate, ahk_exe chrome.exe         WinWaitActive, ahk_exe chrome.exe, , 3 ; 3 saniye bekler         if !WinActive("ahk_exe chrome.exe") { ; Chrome etkin değilse işlem yapmaz             return         }     }     ; Resim dosya yollarını tanımla     mainImages := ["Q:\a.png", "Q:\b.png", "Q:\c.png"]     backupPages := ["Q:\sayfa2.png", "Q:\sayfa3.png", "Q:\sayfa4.png", "Q:sayfa5.png"]     additionalImages := ["Q:\başlık.png", "Q:\başlık2.png", "C:\kaydet.png", "C:\geri.png"]     found := false  ; Görüntü bulunduğunu kontrol eden değişken     retry := 0  ; Sayfa kaydırma sayacı     ; Ana resim dosyalarını sırayla ara     while (retry < 3) {         for index, imagePath in mainImages {             positions := FindAllImagePositions(imagePath)                          if (positions.MaxIndex() > 0) { ; Eğer pozisyon bulunduysa                 found := true                 Random, randIndex, 1, % positions.MaxIndex() ; Rastgele bir pozisyon seç                 pos := positions[randIndex]                 MouseMove, pos[1], pos[2] ; Seçilen pozisyonda tıklama yap                 Click             }         }         if found {             ; 1. İlk olarak ibranamealindi.png görselini bulana kadar "Page Up" tuşuna bas     foundImage := false             while !foundImage {                 positions := FindAllImagePositions("Q:\başlık.png")                      if (positions.MaxIndex() > 0)(ErrorLevel = 0) {                     ; Görsel bulundu, tıklanacak             Random, randIndex, 1, % positions.MaxIndex()           pos := positions[randIndex]           MouseMove, pos[1], pos[2]         Click           foundImage := true ; Görsel bulundu, döngüden çık           } else {           Send, {PgUp} ; Görsel bulunamadıysa Page Up tuşuna bas             Sleep, 1000 ; 0.5 saniye bekle                 }             }             ; 2. talimatgitti.png görselini bulana kadar bekle     foundImage := false     while !foundImage {             positions := FindAllImagePositions("Q:\başlık2.png")                  if (positions.MaxIndex() > 0)(ErrorLevel = 0) {           ; Görsel bulundu, tıklanacak           Random, randIndex, 1, % positions.MaxIndex()           pos := positions[randIndex]         MouseMove, pos[1], pos[2]           Click             foundImage := true ; Görsel bulundu, döngüden çık           } else {           Sleep, 500 ; 0.5 saniye bekle             }     }     ; 3. kaydet.png görselini bulana kadar "Page Down" tuşuna bas     foundImage := false     while !foundImage {             positions := FindAllImagePositions("C:\kaydet.png")                      if (positions.MaxIndex() > 0)(ErrorLevel = 0) {                     ; Görsel bulundu, tıklanacak           Random, randIndex, 1, % positions.MaxIndex()           pos := positions[randIndex]         MouseMove, pos[1], pos[2]         Click         foundImage := true ; Görsel bulundu, döngüden çık           } else {           Send, {PgDn} ; Görsel bulunamadıysa Page Down tuşuna bas           Sleep, 500 ; 0.5 saniye bekle             }     }     ; 4. geri.png görselini bulana kadar bekle     foundImage := false     while !foundImage {           positions := FindAllImagePositions("Q:\geri.png")                      if (positions.MaxIndex() > 0)(ErrorLevel = 0) {                 ; Görsel bulundu, tıklanacak                 Random, randIndex, 1, % positions.MaxIndex()             pos := positions[randIndex]           MouseMove, pos[1], pos[2]           Click           foundImage := true ; Görsel bulundu, döngüden çık           } else {         Sleep, 500 ; 0.5 saniye bekle           }     }         }         ; Ana resimler bulunamazsa "Page Down" ile sayfayı kaydırıp tekrar dene         if !found {             Send, {PgDn}             Sleep, 500             retry++         }     Continue     }     ; Eğer ana dosyalar ve kaydırma ile bulunamazsa yedek sayfaları ara     if (!found) {         for index, backupPage in backupPages {             positions := FindAllImagePositions(backupPage)                          if (positions.MaxIndex() > 0) {                 Random, randIndex, 1, % positions.MaxIndex()                 pos := positions[randIndex]                 MouseMove, pos[1], pos[2]                 Click                 Sleep, 500                 break             }         }     }          ; 5 saniye bekleyip tekrar başla     Sleep, 5000 } ; Tüm görüntü pozisyonlarını bulan fonksiyon FindAllImagePositions(imagePath) {     global     positions := [] ; Pozisyonları saklayacağımız dizi          ; Ekran çözünürlüğüne göre arama alanını belirle     x1 := 0     y1 := 0     x2 := 1920     y2 := 1080          ; Görüntüleri tüm ekranda arayıp pozisyonları listeye ekle     Loop {         ImageSearch, foundX, foundY, x1, y1, x2, y2, %imagePath%                  if (ErrorLevel != 0) ; Görüntü bulunamazsa döngüden çık             break                  ; Pozisyonu kaydet         positions.Push([foundX, foundY])                  ; Sonraki arama için konumu güncelle (bulunan resmin biraz sağına kayarak aramaya devam et)         x1 := foundX + 10         y1 := foundY + 10     }     return positions }







  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.