Autoit - Sorun cevaplayalım ( SSS )

Autoit ile "neyi nasıl yaparım" sorunu yaşayan arkadaslar sorularını yorum kısmında sorabılırler.. birkaç gün içerisinde cevapları bu sayfada konu başlığı altında yayınlarım. 

2 soru yeni konu baslıgında ve yorumlarda yanıtlanmıştır. 

Kategoriler: 

Etiketler: 

6 Comments

Q-F KLAVYE DÖNÜŞÜMÜ YAPMAK

Merhaba,

Bazı genel alan bilgisayarında(internet kafe gibi) çalışırken Q klavyesini F klavyeye dönüştürmek istedim. Ancak sistem ayarları admin tarafından denetim masasına erişilemeyecek şekilde yapılandırımış. Aklıma autoit ile tüm tuş vuruşlarını F klavyeye göre değiştiren bir kod yazmak geldi. Autoit ile fazla deneyimim olmadığından bunu nasıl yapabileceğime dair fikir verebilirseniz çok güzel bir kod örneğimiz olacak. 

Bazı kaynaklardan aşağıdaki kod parçalarını birleştirsem de tam olarak istediğim sonucu vermiyor.

Bu kodu sadece f harfini denemek için yazdım. Ancak capslock ile çalışıyorken shift tuşu ile harf büyütme  büyütme küçültme işlemlerinde çalışmıyor.

Aslında Python dilini incelerken gördüğüm sözlük kavramı veya değişkeni gibi bir durum olsa her harf karşılıklarını değişkene atayıp basılan tuşa göre sözlük içinde otomatik değişim yaptırabilsek ne iyi bir kod olurdu.

Yardımcı olabilirseniz çok sevinirim.

iyi çalışmalar. Mert.

-------------------------------------------------------------------------------------------

Test edilen Autoit Kodu:

 

 

#include <Misc.au3>
#include <MsgBoxConstants.au3>

HotkeySet("q", "HotKeyPressed")

While 1
   Sleep(100)
WEnd

Func _IsToggled($sHexKey, $vDLL = 'user32.dll')
    ; $hexKey must be the value of one of the keys.
    ; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is.
    Local $a_R = DllCall($vDLL, "short", "GetKeyState", "int", '0x' & $sHexKey)
    If Not @error And BitAND($a_R[0], 0xFF) = 1 Then Return 1
    Return 0
 EndFunc   ;==>_IsToggled

Func HotKeyPressed()
   Switch @HotKeyPressed

      Case "q"
         if _IsToggled("14") then
            if _IsPressed("10") then
               Send("f")
            Else
               Send("F")
            EndIf
         Elseif _IsPressed("10") then

               Send("F")
            Else
               Send("f")

         EndIf

   EndSwitch

EndFunc

 

Q-F KLAVYE DÖNÜŞÜMÜ YAPMAK

selam mert.

eger f klavyede onparmak kullanıcısı isen tuslara bakmıyorsun demektir. 

ve bu da senin isini kolaylastırır. 

_ispressed komutu ile tuslara deger atamaktansa stringreplace() komutu ile metin içerisindeki harfleri degistirmen daha basit olur

 

örnegin  metni yazdıktan sonra enter tusuna basmadan önce bir esc tusuna basarak islemi otomatik yapabilirsin

 

func cevir()

sleep(200)

send("^x")

$a=clipget() ; crtl x ile aldıgın bilgiyi $a degiskenine atarsın

$a=stringreplace($a,"q","f")

 $a=stringreplace($a,"x","y") ; x degerini y degeri ile yer degıstır

 

gibi hangi harf ile hanfi  harfi yer degistireceksen yukarıdaki gibi tek tek $a satırını cogaltırsın

ve sonrasında

send ($a& @cr) komutu ıle ıstedıgın ekrana yazdırırsın yada $a=clipput() komutu ile metni hafızaya aldırıp crtl V kombinasyonu kullanıp ıstedıgın yere yapıstırabılırsın

sözlük içerisinde kelime değişiminden bahsetmişsin o kısmı tam anlayamadım ama bir örnekle izah edersen yardımcı olmaya çalışırım. 

mesela sözlükten s harfi ile baslayan kelimeleri alıp şunları yaptırmak istiyorum.. gibi

 

 

 

 

 

 

Zaman Ekleme

Ben autoit konusunda biraz yeniyim burda bişeyler öğrenmeye çalışıyorum.Benim ufak bir sorunum var yardımcı olursanız.

Belli saatler arasında programı çalıştırıp durdurmak istiyorum.Örneğin : Saat 07:00 de çalışmaya başlayacak saat 18:00 da duracak. Sleep komutuyla yapıyorum ama başlatma sonlandırma sıkıntılı ben direk bilgisayarımdaki saate göre döngü başlatlmak istiyorum.Bana bu konuda örnek bir kod yazabilirmisiniz.

while 1

while 1

if @hour>"06" and @hour<"19"  Then ; saat 06'd0n büyükse 19'dan kücükse yani 07,00-18,00 aralında çalışır

yapılacak islemler yada programın içerigi buraya

 

endif

 

sleep(30000)  ; otuz saniye beklet

if @hour="18" and @min="00" then

shutdown(9) ;burada saat ve dakika eşitliği dogruysa yani saat 18:00 ise pc yi kapatır

endif 

wend ;while 1 kısmına geri döner

eğer shutdown komutu ıle pc yı kapatmayıp direkt programdan cıkmak istiyorsak shutdown(9) yerine Exit komutuyla programı sonlandırabılırız. 

eger belli dakikalarda birseyleri kontrol ettirmek istiyorsanız örnegin 15 dk. arayla program çalışıp duracaksa...

while 1

if @min="15" or @min=30" or @min=45" or @min=00" then

calistir()  ; calistir isimli fonksiyona gider oradaki islemi yapar eger while wend sınırsız döngüsü yoksa geri gelir

endif

 

sleep(30000)

wend

 

func calistir()

consolewrite( "saat şu an "&@hour&":"@min"&@crlf)

endfunc

programı pause almanıza gerek yok. ayrıca istediginiz saat ve dakikada istediginz programı çalıştırp istediginiz saatte istediginiz programı da kapatabılırsınız. 

run("C:\Program Files\Google\Chrome\Application\chrome.exe") komutu ile istediginz programı baslatırsınız. ve processclose("notepad.exe") komutuyla da ctrl alt del ile calısan uygulamarda gördügünüz bir programı kapatabilirsiniz

ayrıca sleep komutu programı askıya almaz. sleep belli bir süre bekletme komutudur yukarıdaki örnekte programı her turda 30sn bekleterek uygun saat ve dakikanın gelip gelmediğini kontrol etmiş oluyoruz. kendini pause durumuna alan bir program tekrar kendini başlatamaz. o yüzden sleep ile işleme ara verilir

autoit

<p>BİRŞEY RİCA EDECEĞİM MAUSE KORDİNATLARINI BULUP O KORDİNATLARDAKİ YAZIYI SAYIYI BOTUN EKRANINA YANSITIP AYNI ZAMANDA O YANSIYAN YAZILARI HIZLI BİR ŞEKİLDE BAŞKA Bİ YERE KOPYALAMA GİBİ BİR BOT VARMI YADA YAPILABİLİRMİ</p>

sorunu tam anlamadım ama yazı

sorunu tam anlamadım ama yazı yada sayıların oldugu koordinattaki imleç I şeklınde ıse alabılırsın. 

bir örnek göstermiş olsaydın daha açıklayıcı olurdu

Sayfalar

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satır ve paragraflar otomatik olarak bölünür.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Resimli CAPTCHA
Resimde görünen karakterleri girin.