Jump to content

mustafavanli

Üye
  • Posts

    12
  • Joined

  • Last visited

Posts posted by mustafavanli

  1. Öncelikle mobilden yazdığım için örnek kodları ancak fotoğraflarla verebileceğim kusura bakmayın. Program bir çeşit otomatik program kurucu bitince kaynak kodları ile birlikte burada yayınlacağım. Ayrıca bu konu altına sizce otomatik program kurucuda hangi özellikler olmalı? Sorusunu Cevaplarsanız sevinirim. Son olarak tasarım konusunda kendine ve zevkine güvenen arkaşlar bana özelden mesaj atabilirler.

    Sorunumu ukısaca anlatmak gerekirse datagrid içine checkbox ekledim ve onlar kontrol edildiğinde geri bildirim almak hangi Satır için seçildiğini öğrenmek istiyorum. Yabancı forumlarda araştırma falan yaptım ama maalesef isime yarar bir şey bulamadım. .Net 4.0 için çalışıyorum. Datagride bir acess dosyasından bağlanıyorum. Checkbox ekleme yöntemim:PicsArt_07-19-11.10.40.jpg

  2. İf(WinActive("Adsız")) Then

        MsgBox(64, "Coder Scrappy", "Not defteri şu an aktif.")

    Else

        MsgBox(64, "Coder Scrappy", "Not defteri şu an aktif değil!")

    EndIf

     

    Bir kaç gün önce kodlarla tekrar ilgilenirken fark ettim ama konuya yazmamıştım. Konunun altında durması aynı sorunları yaşayacak arkadaşlar için iyi olabilir. Teşekkür ederim.

  3. Teşekkür ederim, while döngüsünü aşağıdaki haline getirdim lag yok oldu ve artık pencere fare imlecinin yanına taşınmıyor. Döngüdeki $a değişkeni "true-false" dışında değer almıyor. Bu da döngüyü sadece gerektiği zaman çalıştırıp diğer zamanlarda çalıştırmıyor.

     

    While $a

    $ssss = PixelGetColor(1877, 956)
    if $ssss = "0" Then
    WinWait($Form1)
    WinSetOnTop($Form1,"",1)
    Else
    WinWait($Form1)
    WinSetOnTop($Form1,"",0)
    EndIf
    Sleep(1000)
    WEnd
  4. Merhabalar, autoit ile program yazmaya yeni başladım ve bir şeyler yazdım fakat yazdığım programın daha stabil çalışmasını istiyorum. Stabilden kastımı tek tek anlatacağım. Ama ondan önce kodu ve ne işe yaradığını bilmeniz lazım. Bir arkadaşım benden metin 2 de hızlı ch atmak için bir program yazmamı ve bunun ban sebebi olmadan olmasını istedi bende yolu aşağıdaki kodlarda buldum ama ufak tefek sorunlar var(aslında onun için onun beklediğinden de iyi çalışıyor ama ben daha iyisini istiyorum). Önce kodlar;

     

    [spoiler]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include
    #include
    #include
    #include
    #include
    #include
    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 0)
    $mpos = MouseGetPos()
    #Region ### START Koda GUI section ### Form=
    $Form1= GUICreate("Metin2 CH ATICI", 335, 71, $mpos[0], $mpos[1])
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
    $Button3 = GUICtrlCreateButton("CH4", 8, 40, 75, 25)
    GUICtrlSetOnEvent($Button3, "Button4Click")
    $Button4 = GUICtrlCreateButton("CH2", 88, 8, 75, 25)
    GUICtrlSetOnEvent($Button4, "Button2Click")
    $Button5 = GUICtrlCreateButton("CH3", 168, 8, 75, 25)
    GUICtrlSetOnEvent($Button5, "Button3Click")
    $Button6 = GUICtrlCreateButton("CH6", 168, 40, 75, 25)
    GUICtrlSetOnEvent($Button6, "Button6Click")
    $Button1 = GUICtrlCreateButton("CH5", 88, 40, 75, 25)
    GUICtrlSetOnEvent($Button1, "ch5Click")
    $Button2 = GUICtrlCreateButton("CH1", 8, 8, 75, 25)
    GUICtrlSetOnEvent($Button2, "ch1Click")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    $serveradiiii="Reklam olmasın :)"
    $serverx = 840
    $servery = 640
    $chx = 1074
    $ch1y= 620
    $ch2y= 635
    $ch3y= 650
    $ch4y= 665
    $ch5y= 690
    $ch6y=705
    $idee= "bosver id yi"
    $pwee= "id yoksa zaten önemli değil"
    $tmmtusuy=932
    Func clientkontrol()
    WinWait($serveradiiii)
    Sleep(250)
    WinActivate($serveradiiii)
    Sleep(250)
    WinWaitActive($serveradiiii)
    Sleep(250)
    BlockInput(1)
    EndFunc
    While 1
    $winpos = WinGetPos($Form1)
    $ssss = PixelGetColor(1877, 956)
    if $ssss = "0" Then
    $mpos1 = MouseGetPos()
    WinActivate($Form1)
    if $mpos1[0] > $winpos[0]+335 Or $mpos1[0] < $winpos[0] Then
    WinMove($Form1,"",$mpos1[0],$mpos1[1])
    EndIf
    EndIf
    Sleep(500)
    WEnd
    Func IDPW()
    Send($idee)
    Send("{TAB}")
    Send($pwee)
    Sleep(250)
    Send("{ENTER}")
    BlockInput(0)
    EndFunc
    Func ch1Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch1y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,1,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func Button2Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch2y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,2,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func Button3Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch3y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,2,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func Button4Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch4y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,2,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func ch5Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch5y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,1,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func Button6Click()
    clientkontrol()
    MouseClick("left",$serverx,$servery,2,0)
    Sleep(250)
    MouseClick("left",$chx,$ch6y,2,0)
    Sleep(250)
    MouseClick("left",$chx,$tmmtusuy,2,0)
    Sleep(250)
    IDPW()
    EndFunc
    Func Form1Close()
    Exit
    EndFunc
    Func Form1Maximize()

    EndFunc
    Func Form1Minimize()

    EndFunc
    Func Form1Restore()

    EndFunc
    #EndRegion form1 kodları[/spoiler]

    Şimdi anlatmaya başlayayım. Koddan anladığınız üzere metin 2 giriş ekranına döndüğünde kendini ön plana çıkararak bir ch seçmemi istiyor ve seçene kadar kendini fare imlecinin yanına taşıyor. Bunu yaparken ise sanki ufaktan bir lag hissediyorum tuşlara basarken bunun nedenin aşağıdaki döngüden olduğunu düşünüp birazcık uyutmayı denedim ama olmadı maalesef :(.Ayrıca oradaki 2. "if" döngüsü fare imleci formun içinde değilse formu fare imlecine taşı demek için orada.(if döngüsünün şartlarında da sorun var galiba) Birincisi ise sadece giriş ekranında iken bu döngü gerçekleşsin diye orada. Bana biraz fazla acemi çözümü gibi(ayrıca iyi çalışmadığını hissettiriyor bana) geldi bu döngü, daha profesyonel ve daha stabil her türlü çözüm önerisi veya kod parçası burada geçerli.

    While 1
    $winpos = WinGetPos($Form1)
    $ssss = PixelGetColor(1877, 956)
    if $ssss = "0" Then
    $mpos1 = MouseGetPos()
    WinActivate($Form1)
    if $mpos1[0] > $winpos[0]+335 Or $mpos1[0] < $winpos[0] Then 
    WinMove($Form1,"",$mpos1[0],$mpos1[1])
    EndIf
    EndIf
    Sleep(500)
    WEnd
    

    Bir diğeri ise butonlara bastıktan sonra bazen en son basması gereken sol tuşa basmıyor.Basmaması için hiç bir sebep göremedim. Ben bunu da çözemedim maalesef. Konuya bakan ve ilgilenen herkese sonsuz teşekkürler.

  5.  

    Örnek projedeki nesnelerin Auto-Resize özelliklerini inceleyin, bir kaç nesne ekleyip farklı şekillerde pozisyon almalarını sağladım.

    http://yadi.sk/d/m2vHnok0KrnfA
    

    Auto-Resize özelliği resimleri belirli bir boyuttan sonra auto-Resize yapamıyor, ve ben bir tür slayt hazırlamaya çalıştığım için malesef istedğim çözüm değil, teşekkür ederim

  6.  

    Tüm objeler ortalansın mı istiyorsun her boyuttaki ekranlarda?

     

    Objeler her boyuttaki ortamda o boyuta göre koordinatları tekrar ayarlansın, bir obje sağ alt köşede ise öle kalsın tam ekranda da. Yani tam erkan olsa da mevcut tasarım korunsun. Paragraflar ve labeller o boyutlara genişlik ve yükseklikleri ayarlansın falan, büyük bir kısmı var kodu incelersen ama resimleri taşımada sorun çıkarıyor. Gerekli noktaya taşımıyor. 

  7. Verdiğiniz dosya bir proje dosyası değil. File menüsünden export seçeneğini tıklayarak oluşturduğunuz dosyayı verirseniz yardımcı olmaya çalışırız.

     

    c1wBIOO.png

     

    Edit : Resim objesinin özelliklerini aşağıda resimdeki işaretli alanda olduğu gibi yapınız.

     

    qjhAmFv.png

    Ams'yi  mecburen kullanıyorum ve çok yeni bir kullanıcıyım. Linki Güncelliyorum. Resim için dediğiniz ayarları yaptım, Resim gereksiz derecede büyüyor. İstediğim çözüm değil malesef. Teşekkür ederim.

  8. Merhabalar,

        Ams ile üniversite için tam ekran bir slayt hazırlamaktayım, Ams'nin tam ekran yapma özelliğini;

    [spoiler]]function CikisButonuEngelle(hWnd, bEnable)
    local nEnable=0
    if bEnable then nEnable = 1 end
    local hMenu = DLL.CallFunction("user32.dll", "GetSystemMenu", hWnd..", 0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
    if hMenu then
    DLL.CallFunction("user32.dll", "EnableMenuItem", hMenu..", 61536, "..nEnable, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
    DLL.CallFunction("user32.dll", "DrawMenuBar", hWnd, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
    end
    end
    function TamEkran(hWnd)
    local ekran = System.GetDisplayInfo();
    Window.SetPos(hWnd, 0, 0);
    Window.SetSize(hWnd, ekran.Width, ekran.Height);[/spoiler]

    yukarıdaki kodla kullanıyorum, bu kodu da bu forumda şu an hatırlamadığım bir ismin projesinden aldım. Bu kodda sorun yok güzel bir şekilde çalışıyor. Kendisine çok teşekkür ederim.

     Ben proje boyutlarını 790x545 şeklinde tanımladım(tam ekran çözünürlüğü 1366x768) Proje tam ekran yapılırken butonlar ve diğer nesneler taşınmıyor. Bu sorunu çözmek için ben ;

    [spoiler]function ObjKrdntyrl(objname,objetr)
    local ekran = System.GetDisplayInfo();
    local btnnm = objetr.GetPos(objname);
    local objkrdntX = (ekran.Width*btnnm.X)/790;
    local objkrdntY = (ekran.Height*btnnm.Y)/545;
    objetr.SetPos(objname, objkrdntX, objkrdntY);
    end
    [/spoiler]

    yukarıdaki kodu kullanıyorum bunu tamamen kendim yazdım. Butonlar, labeller ve Paragraph için denedim ve güzel çalışıyor fakat iş resime gelince kod sapıtıyor ve resmi gerekli yere taşımıyor. Bu sorunu nasıl çözebilirim. Koddaki sorun ney ? Yada farklı bir çözüm yolu varmı ? Örnek proje olarak;

    http://www.mediafire.com/download/q3v25b202tj3c0d/tamekran.apz

    Şimdiden herkese çok teşekkür ederim.

  9. Teşekkür ederim inceleyeceğim.
     
     
    Düzenleme:
     
     

     
    Run("notepad.exe");
    WinWait("Adsız - Not Defteri");
    WinActivate("Adsız - Not Defteri");
    WinWaitActive("Adsız - Not Defteri");
    Sleep(100);
    Send("a");
    Sleep(2000);
    Send("a");
    Sleep(2000);
    Send("a");
    Sleep(2000);
    Send("a");
    Sleep(2000);aaaa
    Send("a");
    $a = 0
    While 1   ; Bu döngünün send komutunu etkilemeden fakat sürekli aşağıdaki  işlemi yapmasını nasıl sağlayabilirim ?
    if Not ProcessExists("notepad.exe") then;
    MsgBox(0,"hata","");
    Exit;
    EndIf;
    WinWait("Adsız - Not Defteri");
    WinActivate("Adsız - Not Defteri");
    WinWaitActive("Adsız - Not Defteri");
    WinSetState("Adsız - Not Defteri","",@SW_RESTORE ) ;
    if Not ProcessExists("notepad.exe") then;
    MsgBox(0,"hata1","");
    Exit;
    EndIf;
    if $a >= 5 and WinWaitNotActive("Adsız - Not Defteri") Then;
    MsgBox(0,"hata2",$a);
    EndIf;
    $a = $a +1;
    WEnd; 

    Sorunumu yukarıdaki gibi halletmeye çalıştım , daha iyi çözüm bilen üstadlardan yardım istiyorum, ayrıca  belirttiğim gibi "while-wend döngüsünün send komutunu etkilemeden fakat sürekli döngüdeki işlemi  işlemi yapmasını nasıl sağlayabilirim ?" 
    İlgilenen herkese sonsuz teşekkürlerimi sunarım.
  10. Merhaba Tnctr ailesi bir süredir forumun programlama bölümünü takip ediyorum(misafir olarak) ve acemi olarak auto-it programlama yapmaya çalışıyorum. Sözü fazla uzatmadan sorunumu anlatmak istiyorum.(Konuma başlık bulmakta biraz zorlandım.Başlık saçma ise mazur görülmesini rica ediyorum. )

    Bir programımda aktif bulunan pencerenin kullanıcı tarafından kapatıldığı yada simge durumuna indirildiği durumda kodların belirli bir yere geri dönüp baştan başlamasını istiyorum ben biraz denedim ama beceremedim.

     

    Run("notepad.exe")
    WinWait("Adsız - Not Defteri")
    WinActivate("Adsız - Not Defteri")
    WinWaitActive("Adsız - Not Defteri")
    Sleep(100)
    Send("a") ;harflerin yazılması esnasında program aşa inerse  not defteri kapatılıp baştan açılacak ve ilk send komutundan baştan başlayacak ama bir türlü çıkamadım işin içinden
    Sleep(2000)
    Send("a")
    Sleep(2000)
    Send("a")
    Sleep(2000)
    Send("a")
    Sleep(2000)
    Send("a")
    
    
    While 1  ; bunu buraya koyduğumda bitmesini bekliyo en başa koyduğumda program açılmıyor, arala konduğunda ise döngüyü durduruyor
    	WinWaitNotActive("Adsız - Not Defteri")
    	ProcessClose("notepad.exe")
    	Sleep(100)
    	Exit
    
    WEnd
    

     

     

     

     

     

     

     

     

     

     

×
×
  • Create New...