ฟอรั่ม PSsix

Would you like to react to this message? Create an account in a few clicks or log in to continue.

ฟอรั่มของบล็อก http://pssix.blogspot.com


+3
aut
POS
autoitnew
7 posters

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    avatar
    autoitnew
    สมาชิกทั่วไป
    สมาชิกทั่วไป


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 11
    ความนิยม : 0
    เข้าร่วมเมื่อ : 13/08/2011

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by autoitnew 13/08/11, 01:22 am

    คือมีโปรแกรมเกมส์เปิดอยู่หลายๆตัว เช่น a.exe b.exe c.exe
    แล้ว Title ของแต่ละอันจะเหมือนกันหมดเลย เช่นแสดงชื่อTitle ว่าzzzz ถ้าอยากให้แต่ละอัน ใช้คำสั่งWinSetTitle ให้Titleต่างกัน เป็น a b c โดยโปรแกรมย่ออยุ่บนtaskbarจะต้องเขียนคริปยังไงดีครับ
    เพราะลองหลายแบบแล้วแต่ต้องมายกจอขึ้นแล้วกดเปลี่ยนเองตลอดเลย ขอบคุณครับ
    POS
    POS
    PSsix
    PSsix


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by POS 13/08/11, 06:44 am

    ลองสคริปต์ด้านล่างนี้ เปิดโปรแกรมขึ้นมาให้หมดก่อน

    Code:
    $a = 1
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
       If $winlist[$i][0] <> "" Then
          If $winlist[$i][0] = "xxx" Then ;ชื่อไตเติลโปรแกรมเดิม
             WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
             $a += 1
          EndIf
       EndIf
    Next


    ***เท่าที่อ่านดูปัญหาบรรทัดล่างสุดของคุณ โปรแกรมมีการป้องกันไม่ให้เปลี่ยนไตเติล ถ้าจะควบคุมโปรแกรมแบบแยกให้วิธีดึงเอาค่า pid ของโปรแกรมที่เปิดมาควบคุมอีกครั้ง เช่น

    Code:
    Global $pid1 = Run("aaa.exe")
    Sleep(1000);กะหน่วงเวลาจนกว่าจะเปิดโปรแกรมเสร็จ

        $WinList=WinList()
        for $i=1 to $WinList[0][0]
            if WinGetProcess($WinList[$i][1])=$pid1 then
              $pid1 = $WinList[$i][1]
            EndIf
        Next

     
       WinActivate($pid1);สั่งเด้งหน้าต่างขึ้นมา

    ;เขียนสคริปต์ควบคุมอื่นๆ  อ้างอิงหน้าต่างโดยใช้ $pid1
    ;เขียนสคริปต์ควบคุมอื่นๆ อ้างอิงหน้าต่างโดยใช้ $pid1
    ;เขียนสคริปต์ควบคุมอื่นๆ อ้างอิงหน้าต่างโดยใช้ $pid1


    เวลาจะควบคุมก็สั่งที่ $pid1 แทนการสั่งที่ชื่อไตเติลโปรแกรม
    avatar
    autoitnew
    สมาชิกทั่วไป
    สมาชิกทั่วไป


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 11
    ความนิยม : 0
    เข้าร่วมเมื่อ : 13/08/2011

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by autoitnew 13/08/11, 11:35 pm

    POS พิมพ์ว่า:ลองสคริปต์ด้านล่างนี้ เปิดโปรแกรมขึ้นมาให้หมดก่อน

    Code:
    $a = 1
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
       If $winlist[$i][0] <> "" Then
          If $winlist[$i][0] = "xxx" Then ;ชื่อไตเติลโปรแกรมเดิม
             WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
             $a += 1
          EndIf
       EndIf
    Next


    ***เท่าที่อ่านดูปัญหาบรรทัดล่างสุดของคุณ โปรแกรมมีการป้องกันไม่ให้เปลี่ยนไตเติล ถ้าจะควบคุมโปรแกรมแบบแยกให้วิธีดึงเอาค่า pid ของโปรแกรมที่เปิดมาควบคุมอีกครั้ง เช่น

    Code:
    Global $pid1 = Run("aaa.exe")
    Sleep(1000);กะหน่วงเวลาจนกว่าจะเปิดโปรแกรมเสร็จ

        $WinList=WinList()
        for $i=1 to $WinList[0][0]
            if WinGetProcess($WinList[$i][1])=$pid1 then
              $pid1 = $WinList[$i][1]
            EndIf
        Next

     
       WinActivate($pid1);สั่งเด้งหน้าต่างขึ้นมา

    ;เขียนสคริปต์ควบคุมอื่นๆ  อ้างอิงหน้าต่างโดยใช้ $pid1
    ;เขียนสคริปต์ควบคุมอื่นๆ อ้างอิงหน้าต่างโดยใช้ $pid1
    ;เขียนสคริปต์ควบคุมอื่นๆ อ้างอิงหน้าต่างโดยใช้ $pid1


    เวลาจะควบคุมก็สั่งที่ $pid1 แทนการสั่งที่ชื่อไตเติลโปรแกรม


    ผมได้ลองเอาไปใช้แล้วครับสคริปแรกตัวนี้ กลายเป็นว่ามันเจอtitle ที่กำหนดทั้งหมดและทำการเปลี่ยนชื่อให้แล้วเรียงตามตัวเลข แต่ดันมีปัญหาคือว่ามันเรียงเลขจากขวามาซ้าย เช่นในtasbar จะเรียงดังนี้
    10 9 8 7 6 5 4 3 2 1
    โดยที่ผมต้องการคือให้มันเรียง
    1 2 3 4 5 6 7 8 9 10
    ไม่ทราบว่าต้องแก้ตรงส่วนไหนครับ ขอบคุณครับ
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by aut 14/08/11, 11:54 am

    มี10อันใช่เป่าก้อแก้$aนะตามนี่เลยนาย

    $a = 10
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
    If $winlist[$i][0] <> "" Then
    If $winlist[$i][0] = "xxx" Then ;ชื่อไตเติลโปรแกรมเดิม
    WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
    $a -= 1
    EndIf
    EndIf
    Next
    avatar
    autoitnew
    สมาชิกทั่วไป
    สมาชิกทั่วไป


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 11
    ความนิยม : 0
    เข้าร่วมเมื่อ : 13/08/2011

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by autoitnew 14/08/11, 05:46 pm

    aut พิมพ์ว่า:มี10อันใช่เป่าก้อแก้$aนะตามนี่เลยนาย

    $a = 10
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
    If $winlist[$i][0] <> "" Then
    If $winlist[$i][0] = "xxx" Then ;ชื่อไตเติลโปรแกรมเดิม
    WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
    $a -= 1
    EndIf
    EndIf
    Next

    ได้ละคับ แต่ติดปัญหาตรงชื่อtitleถ้าเราจะใช้แค่บางส่วนที่หมือนชื่อtitleแล้วให้มันเปลี่ยนตามที่กำหนด จะต้องแก้ตรงไหนครับ เพราะตามscriptด้านบนจะเปลี่ยนไมได้ถ้าไม่ตรงทั้งหมดครับ ขอบคุณครับ สอบถามเพิ่มเติมครับ ถ้าเราอยากให้ทำฟังชั่นซ้ำกันเป็นจำนวนครั้งเช่น ให้ทำ5ครั้ง
    จะเขียนในคริปอย่างไรครับ ขอบคุณครับ

    เพิ่มเติมครับ อีกปัญหาคือcontrolclickเวลาผมส่งคำสั่งไปหลายๆหน้าจอ จะเกิดการส่งไม่ครบ
    และpixelsearchแบบ
    $coord = PixelSearch( 681,206, 1097,500, 0xD59158 )
    If Not @error Then
    MouseClick("right",$coord[0] ,$coord[1],1,0)
    Sleep (500)

    บางเครื่องใช้สีเดียวกันเกมส์เดียวกันสคริปเดียวกันก้อเช๊คสีได้ไม่ถูกต้อง
    บางเครื่องจะคลิกบางเครื่องจะไม่คลิกทั้งที่ใส่หลายสีแล้วล่ะครับ

    ขอบคุณครับ
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by aut 15/08/11, 03:01 pm

    ทำแบบ5ทีก้อเอาforคอบคำสั่งไว้นะ

    for $i =1 to 5 ;ทำ5ทีนะจาทำ10ก้อเปลี่ยน5เป็น10

    ;ยัดคำสั่งไรก้อได้ตงนี้
    ;ยัดคำสั่งไรก้อได้ตงนี้
    ;ยัดคำสั่งไรก้อได้ตงนี้

    Next
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by aut 15/08/11, 03:11 pm

    controlclickส่งไม่ครบนายก้อเขียนสั่งให้มานตรวจดิปรามาณสั่งกดไปในเกมมานก้อต้องมีอะไรเปี่ยนไปใช่เปล่านายก้อgetcolorตงที่เปี่ยนอะดูว่าเปี่ยนอะยังถ้ายังไม่เปี่ยนก้อสั่งกดอีกทีปรามานนี้



    $coord = PixelSearch(681, 206, 1097, 500, 0xD59158)
    If Not @error Then

    Do
    $xx = PixelGetColor($coord[0], $coord[1]) ;getสีออกมาก่อน
    MouseClick("right", $coord[0], $coord[1], 1, 0) ;สั่งกด
    Sleep(500)
    Until $xx <> 0xD59158 ;สีเปี่ยนอะหยังเปี่ยนก็เลิกทำ
    EndIf
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by aut 15/08/11, 03:14 pm

    เกมที่มานมีeffectเยอะกาดจอคนละรุนสีก้อไม่ตงอ่านะปิดำeffectทิ้งไปเลยนายถามเยอะวะตอบแค่นี้พอ555555ไม่เก็ตก้อถามใหม่นะนายเราจะได้แอบเนียนปั้ม5555
    avatar
    autoitnew
    สมาชิกทั่วไป
    สมาชิกทั่วไป


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 11
    ความนิยม : 0
    เข้าร่วมเมื่อ : 13/08/2011

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by autoitnew 15/08/11, 04:01 pm

    สคริปนี้อ่ะคับ
    $a = 10
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
    If $winlist[$i][0] <> "" Then
    If $winlist[$i][0] = "xxx" Then ;ชื่อไตเติลโปรแกรมเดิม
    WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
    $a -= 1
    EndIf
    EndIf
    Next

    ถ้าผมจะให้มันเปลี่ยนโดยจับกับtitleแค่บางส่วนต้องแก้ไขยังไงหรอครับ
    เช่นเกมส์ชื่อvitamilk plusแต่ถ้าผมใส่แค่
    If $winlist[$i][0] = "vita" Then ;ชื่อไตเติลโปรแกรมเดิม
    มันจะไม่เปลี่ยนให้น่ะครับ แต่ถ้าใส่วาvitamilk plus มันเปลี่ยนให้ครับ ขอบคุณครับ
    POS
    POS
    PSsix
    PSsix


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by POS 16/08/11, 07:02 am

    เปลี่ยนคำสั่งเป็น StringInStr แทนครับ ดังตัวอย่างสคริปต์ด้าล่างนี้

    Code:
    $a = 10
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
       If $winlist[$i][0] <> "" Then
          If StringInStr($winlist[$i][0], "xxx")  Then ;ชื่อไตเติลโปรแกรมเดิม
             WinSetTitle($winlist[$i][0], "", "program" & $a) ;ชื่อไตเติลที่ต้องการเปลี่ยนใหม่
             $a -= 1
          EndIf
       EndIf
    Next
    thannam001
    thannam001
    PSsix Member
    PSsix Member


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 21
    ความนิยม : 1
    เข้าร่วมเมื่อ : 30/05/2012
    อายุ : 31

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by thannam001 04/09/12, 06:22 pm

    ขอลองเอาไปศึกษาด้วยนะครับ
    Pochi
    Pochi
    PSsix Member Class III
    PSsix Member Class III


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 66
    ความนิยม : 1
    เข้าร่วมเมื่อ : 22/10/2010

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by Pochi 22/09/12, 10:40 pm

    em230
    avatar
    chaizaa2010
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 2
    ความนิยม : 0
    เข้าร่วมเมื่อ : 26/08/2013

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by chaizaa2010 26/08/13, 10:59 pm

    อยากรู้การเขียนควบคุ้มโดนกดTab แล้วกดตัวเลข 1 ถึง10 งะครับผมจะเอาไปลองกับเกม
    E
    D
    E
    N

    ครับ ใครช่วนแนะนำที
    pakhoiz
    pakhoiz
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty
    จำนวนข้อความ : 7
    ความนิยม : 0
    เข้าร่วมเมื่อ : 17/08/2014
    อายุ : 34

    รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง Empty Re: รบกวนสอบถาม การควบคุมเกมส์ชื่อเดียวกันเปิดหลายหน้าต่าง

    ตั้งหัวข้อ by pakhoiz 17/08/14, 12:56 pm

    อยากทำแบบนี้

      เวลาขณะนี้ 27/04/24, 05:21 am