Home Webboard ArticlesKnowledges  
ข่าวประกาศ:

:: กติกา มารยาท ในการใช้งานเว็บบอร์ด ::
กรุณากรอกอีเมล์จริงในการสมัคร และรับอีเมล์ยืนยันเพื่อใช้งานในบอร์ด

ผู้เขียน หัวข้อ: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]  (อ่าน 36838 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
มีหลายท่านหันมาสนใจที่จะใช้ autoit ในการเขียนโปรแกรมต่างๆ จึงได้ค้นคว้ารวมรวมตัวอย่างคำสั่งต่างๆมาไว้ที่นี่ สำหรับคนที่สนใจได้ศึกษาเพิ่มเติม
autoitเป็นโปรแกรมภาษาที่มีความยืดหยุ่น สามารถนำไปเขียนเป็นVBScriptได้ และนำVBScriptมาเขียนเป็นAutoitได้เช่นกัน แค่นั้นยังไม่พอ
ยังมี AutoItX อีก ซึ่งเป็นการนำคำสั่งautoitส่วนหนึ่งมาเขียนเป็นVBScript ถ้าท่านติดตามบทความครงนี้ดีดี จะได้รับความรู้รวดเดียว2ภาษา
--------------------------------------------------------------------------------------------------------------------------
« แก้ไขครั้งสุดท้าย: 13, มกราคม 2011, 07:13:44 PM โดย sak2005 »


คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #1 เมื่อ: 13, มกราคม 2011, 07:05:22 PM »
ตัวอย่างคำสั้ง reset explorer คำสั่งนี้มีประโยชน์ เพราะในบางกรณีย์ที่ลงโปรแกรมหรือทำTweak
จะต้องมีการ restart เครื่องร่วมด้วย ถึงจะมีผลที่สมบูรณ์ ถ้ารันคำสั่งนี้ อาจไม่จำเป็นต้อง restart เครื่อง

โค๊ด: [Select]
'WMI_Terminate Process_ Exp.vbs

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Process WHERE Name = 'explorer.exe'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
--------------------------------------------------------------------------------------------------------------------------
โค๊ด: [Select]
;WMI_Terminate Process_ Exp.au3

$strComputer = "."
$objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$colProcessList = $objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Process WHERE Name = 'explorer.exe'")
For $objProcess in $colProcessList
    $objProcess.Terminate()
Next
« แก้ไขครั้งสุดท้าย: 13, มกราคม 2011, 07:14:17 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #2 เมื่อ: 13, มกราคม 2011, 07:23:38 PM »
อันนีเป็นคำสั่ง Sound Stereo Level Meter.au3



โค๊ด: [Select]
Local $ui = GUICreate('MCI Sound ST Meter', 270, 120, -1, -1, Default, 0x00000008)
Local $ctp = GUICtrlCreateInput('', 185, 5, 4, 20)
Global $pbl = GUICtrlCreateInput('', 35, 9, 200, 16, 0x00, 0x00000020)
GUICtrlSetFont($pbl, 6, 600, Default, 'arial narrow')
GUICtrlSetBkColor($pbl, 0x000000)
GUICtrlSetColor($pbl, 0x00FFFF)
Global $pbr = GUICtrlCreateInput('', 35, 25, 200, 16, 0x00, 0x00000020)
GUICtrlSetFont($pbr, 6, 600, Default, 'arial narrow')
GUICtrlSetBkColor($pbr, 0x000000)
GUICtrlSetColor($pbr, 0x00FFFF)
GUICtrlCreateLabel('Calibrate', 10, 60, 45, 15)
GUICtrlCreateLabel('L', 20, 10, 45, 15)
GUICtrlCreateLabel('R', 20, 28, 45, 15)
Local $cal = GUICtrlCreateSlider(60, 60, 150, 15)
Local $calN = GUICtrlCreateLabel('30', 220, 60, 28, 15)
GUICtrlSetLimit($cal, 100, 0)
GUICtrlSetData($cal, 50)
GUICtrlCreateLabel('Decay', 10, 90, 45, 15)
Local $dec = GUICtrlCreateSlider(60, 90, 150, 15)
Local $decN = GUICtrlCreateLabel('1', 220, 90, 28, 15)
GUICtrlSetLimit($dec, 11, 1)
GUICtrlSetData($dec, 6)
GUISetState([แอท]SW_SHOW, $ui)
ControlFocus('', '', $ctp)
Global $mciLevel, $LeftChannel, $RightChannel, $rs, $temp, $sDiv, $tDiv, $tDec, $decay
Global $mciDll = DllOpen([แอท]SystemDir & '\winmm.dll')
If [แอท]error Then Exit
mciInit()
AdLibRegister('mci_Status_Level', 3)
Do
    $rs = GUICtrlRead($cal)
    If $rs <> $tDiv Then
        $tDiv = $rs
        $sDiv = (100 / $tDiv)
        GUICtrlSetData($calN, $tDiv)
        ControlFocus('', '', $ctp)
    EndIf
    $rs = GUICtrlRead($dec)
    If $rs <> $tDec Then
        $tDec = $rs
        $decay = $rs / 4
        GUICtrlSetData($decN, $decay)
        ControlFocus('', '', $ctp)
    EndIf
Until GUIGetMsg() = -3
; Cleanup before exit
AdLibUnRegister('mci_Status_Level')
GUIDelete($ui)
mciSendString('stop myStatus')
mciSendString('close myStatus')
DllClose($mciDll)
Exit

Func _HiWord($value); From WinAPI.au3
    Return BitShift($value, 16)
EndFunc

Func _LoWord($value); From WinAPI.au3
    Return BitAND($value, 0xFFFF)
EndFunc

Func n2sRepeat($sNum = '', $string = '|', $sRtn = ''); Element repeater
    For $n = 1 To $sNum
        $sRtn &= $string
    Next
    Return $sRtn
EndFunc

Func mciInit(); Open a live stream and set 2 channel parameters
    mciSendString('open new type waveaudio alias myStatus buffer 2')
    If [แอท]error Then Exit
    mciSendString('set myStatus bitspersample 8 channels 2 samplespersec 11025')
    If [แอท]error Then Exit
EndFunc

Func mci_Status_Level(); Get levels and apply decay rate
    $mciLevel = mciSendString('status myStatus level')
    If [แอท]error Then Exit
    $temp = Round((_LoWord($mciLevel) / 128) * 100 / $sDiv) - 1
    If $temp > $LeftChannel Then $LeftChannel = $temp; <-- snitched from bassenc udf - thanks BrettF
    $temp = Round((_HiWord($mciLevel) / 128) * 100 / $sDiv) - 1
    If $temp > $RightChannel Then $RightChannel = $temp; <--
    GUICtrlSetData($pbl, n2sRepeat($LeftChannel))
    GUICtrlSetData($pbr, n2sRepeat($RightChannel))
    $LeftChannel -= $decay; <--
    $RightChannel -= $decay; <--
EndFunc

Func mciSendString($string = '', $mciMsg = ''); Custom MCI Command and Error Function (Nov-19-2010)
    $mciMsg = DllCall($mciDll, 'long', 'mciSendStringA', 'str', $string, 'str', '', 'int', 250, 'ptr', 0)
    If [แอท]error Then Return SetError([แอท]error)
    If $mciMsg[0] <> 0 Then
        Local $eMsg = DllCall($mciDll, 'long', 'mciGetErrorStringA', 'int', $mciMsg[0], 'str', '', 'int', 250)
        If [แอท]error Then Return SetError([แอท]error)
        MsgBox(8208, 'MCI Stereo Level Meter', 'MCI Error: ' & $mciMsg[0] & [แอท]CRLF & $eMsg[2])
        Return SetError(-1)
    EndIf
    SetError(0)
    Return $mciMsg[2]
EndFunc
« แก้ไขครั้งสุดท้าย: 13, มกราคม 2011, 07:28:27 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #3 เมื่อ: 14, มกราคม 2011, 09:01:27 PM »
อันนี้เป็นคำสั่ง ExDrive Switches เป็นคำสั่งที่ผมค้นคิดขึ้นมาเอง เป็นคำสั่งที่หลายคนอยากรู้
ใช้สำหรับตรวจสอบและแยกไดร์ต่างๆที่อยู่ภายนอกว่าเป็นไดร์ไหน? เช่น D:\ , E:\ , F:\ หรือ G:\
ให้ท่านทดลองรันคำสั่งนี้ แล้วจากนั้น เสียบไดร์อะไรก็ได้เข้าที่ช่อง USB
จะมี Message ผุดขึ้นมาแจ้งให้ทราบว่า USB Port ที่ท่านกำลังใช้อยู่ในขณะนั้นเป็นไดร์อะไร?
ท่านสามารถนำไอเดียนี้ไปเขียนต่อยอดกับโปรแกรมอื่นที่ต้องการใช้งานได้

Autoit.au3 Detect Flash drive
โค๊ด: [Select]
$readreg1 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum", "1")
$readreg2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum", "2")
If StringInStr($readreg1, 'USB') or StringInStr($readreg2, 'USB') Then
    MsgBox(0, "", "ท่านยังไม่ได้ถอดแฟลชไดร์ออกจากเครื่อง.")
Else
    ToolTip("กรุณาเสียบแฟลชไดร์ที่ช่องUSBและรอสักครู่..", 400, 200, "Drive Info", 1)
Sleep(5000)
    ToolTip("")
_main()
EndIf

Func _main()
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
$colEvents = $objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 10 Where " _
        & "TargetInstance isa 'Win32_LogicalDisk'")
While 1
$objEvent = $colEvents.NextEvent
If $objEvent.TargetInstance.DriveType = 2 Then
Switch $objEvent.Path_.Class
Case "__InstanceCreationEvent"
$TotalmemSize = MemGetStats()
               $btn = MsgBox(36, "Drive info",  "Drive " & $objEvent.TargetInstance.DeviceId&[แอท]CRLF& _
"Total size:"&Round($TotalmemSize[1]/1024)&".MB"&[แอท]CRLF& _
"Free size:"&Round($TotalmemSize[2]/1024)&".MB"&[แอท]CRLF& _
"Use size:"&$TotalmemSize[0]&"%"&[แอท]CRLF&[แอท]CRLF&"Dou you wanted open drive?")
If $btn = 6 Then ShellExecute($objEvent.TargetInstance.DeviceId)
   Case "__InstanceDeletionEvent"
   MsgBox(64, "",  "Drive"&$objEvent.TargetInstance.DeviceId &"is remove your computer."&[แอท]CRLF&"กรุณาถอดแฟลชไดร์ออกจากคอมพิวเตอร์.")
EndSwitch
EndIf
WEnd
EndFunc
-----------------------------------------------------------------------------------------------------------
อันนี้เป็นคำสั่ง WMI Detect Flash drive.vbs

โค๊ด: [Select]
Dim fso
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colEvents = objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 10 Where " _
        & "TargetInstance isa 'Win32_LogicalDisk'")
Set fso = CreateObject("scripting.filesystemobject")

Do While True
    Set objEvent = colEvents.NextEvent
    If objEvent.TargetInstance.DriveType = 2 Then
        Select Case objEvent.Path_.Class
            Case "__InstanceCreationEvent"
                Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
                    " has been added." 
            Case "__InstanceDeletionEvent"
                Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
                    " has been removed."
        End Select
    End If
Loop
« แก้ไขครั้งสุดท้าย: 15, มกราคม 2011, 04:28:53 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #4 เมื่อ: 15, มกราคม 2011, 04:45:34 PM »
มีหลายท่ายถามมาว่า..เราจะ AntiVirus Flash drive ได้ยังไง? เมื่อเราสั่งเปิดแฟลชไดร์ ..อันนี้ไม่ยาก
เราก็เขียนคำสั่งตรวจสอบไฟล์สกุลต่างๆที่อยู่ในแฟลชไดร์ที่สงสัยว่าเป็นไวรัส
และใส่โปรแกรม AntiVirus Flash drive ลงไปในแฟลชไดร์ ..เวลาตรวจสอบเจอ ไวรัสก็จะถูกกำจัด

โค๊ด: [Select]
$getattr = FileGetAttrib($objEvent.TargetInstance.DeviceId&"\autorun.inf")
      If $getattr = '' Then
       ShellExecute($objEvent.TargetInstance.DeviceId)
Else
FileSetAttrib($objEvent.TargetInstance.DeviceId&"\autorun.inf", "-RASHNOT", 1)
Run($objEvent.TargetInstance.DeviceId&"\cpe17antiautorun1590.exe")
EndIf
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ปกติแล้วเรามักจะไม่สามารถมองเห็นไฟล์ไวรัสที่ถูกติดตั้งแบบลับๆไว้ในแพลชไดร์ เพราะถูก Hiden ไว้ เราต้องใช้คำสั่งเปิดโชว์ไฟล์และกำจัดไวรัสด้วย Anti
« แก้ไขครั้งสุดท้าย: 15, มกราคม 2011, 06:39:08 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #5 เมื่อ: 15, มกราคม 2011, 11:21:35 PM »
AutoItX3
หลายท่านไม่ค่อยได้ใช้หรือไม่คุ้นเคยกับการเขียนคำสั่ง AutoItX3 ในโปรแกรมภาษา AutoIt v3 ซักเท่าไหร่
มีบางคำสั่งของ vbs ที่เราอยากใช้งาน แต่ไม่มีให้ใช้งาน ถึงจะมี แต่ก็ต้องใช้โปรแกรม vb6 หรือ vb.net ถึงจะเขียนได้
เราจะทำอย่างไร? ผมมีคำตอบ..AutoItX3 ช่วยท่านได้ และง่ายกว่าการลงและเขียนคำสั่งด้วย vb6 หรือ vb.net เยอะเลย
ลองมาดูตัวอย่างการเขียนคำสั่ง AutoItX3 สักคำสั่งนึงที่ใน vbs ไม่มี

ฺBlockInput Script AutoItX3.vbs
โค๊ด: [Select]
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.BlockInput 1
oAutoIt.Run "notepad.exe"
oAutoIt.WinWaitActive "Untitled - Notepad"
oAutoIt.Send "{F5}"
oAutoIt.BlockInput 0

รายละเอียด: เมือรันคำสั่งนี้ ..โปรแกรม Notepad จะเปิดขึ้นมา
                พร้อมกับการล๊อคคีย์บอร์ดไว้ไม่ให้ใช้งาน (ยกเว้นการกด3ปุ่มเพื่อTask) จนกว่าจะปิดโปรแกรม Notepad
--------------------------------------------------------------------------------------------------------------------------------------------
คำสั่ง: Process ..อันนี้ก็เหมือนกัน หาใช้งานไม่ได้ใน vbs ต้องเขียนคำสั่ง AutoItX แทน

โค๊ด: [Select]
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.Run "Calc.exe"
oAutoIt.Sleep 250
If oAutoIt.ProcessExists("Calc.exe") Then
    WScript.Echo "Calculator is running.."
    btn = MsgBox("Do you wanted Exit Calc?", 36, "")
    If btn = vbYes Then
       oAutoIt.ProcessClose("Calc.exe")
       oAutoIt.Sleep 250
       If Not oAutoIt.ProcessExists("Calc.exe") Then
          WScript.Echo "Calculator is not running.."
       End If
    Else
       Set oAutoIt = Nothing
    End If
End If
 
----------------------------------------------------------------------------
มีอีกคำสั่งนึง ใช้วิธี Focus ไปที่ ข้อความบนหน้าต่างโปรแกรม เพื่อเจาะจงกระทำอะไร?บางอย่างกับโปรแกรมนั้นๆโดยเฉพาะ

โค๊ด: [Select]
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.Run "Calc.exe"
oAutoIt.Sleep 250
If oAutoIt.WinExists("Calculator Plus") Then
    WScript.Echo "Calculator is running.."
    btn = MsgBox("Do you wanted Exit Calc?", 36, "")
    If btn = vbYes Then
       oAutoIt.WinClose "Calculator Plus"
       oAutoIt.Sleep 250
       If Not oAutoIt.WinExists("Calculator Plus")  Then
          WScript.Echo "Calculator is not running.."
       End If
    Else
       Set oAutoIt = Nothing
    End If
End If
------------------------------------------------------------------------------------------------
ตบท้ายคำสั่งลูกผสม ระหว่าง vbs + autoitx3

โค๊ด: [Select]
'---------------------start code : vbs+autoitx3------------------------
Dim pid
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
Set objShell = WScript.CreateObject("WScript.Shell")
pid = oAutoIt.Run ("Calc.exe")
WScript.Sleep 250
MsgBox "Calculator is running.. If Exit Calc Running Notepad.", 0, ""
If oAutoIt.ProcessWaitClose(pid) Then
   objShell.Run ("Notepad")
End If
If oAutoIt.WinWaitClose("Untitled - Notepad") Then
   oAutoIt.Sleep 250
   WScript.Echo "Finish test Code..Exit Notepad."
   oAutoIt.WinClose("Untitled - Notepad")
End If
Set oAutoIt = Nothing
Set objShell = Nothing
'----------------------------end code---------------------------------
« แก้ไขครั้งสุดท้าย: 16, มกราคม 2011, 03:04:19 AM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #6 เมื่อ: 16, มกราคม 2011, 12:02:38 PM »
Application Programming Interface (API) คือชุดโค๊ดคำสั่งสำเร็จรูปต่างๆ หรือเรียกง่ายๆว่าเป็นโปรแกรมขนาดเล็กที่ถูกสร้างขึ้นมารอรับบการใช้งาน
เวลาจะใช้งาน ต้องเขียนคำสั่งติดต่อ เพื่อเรียกใช้ ..API มี2แบบ คือ แบบที่เป็นคำสั่งภายใน และแบบที่เป็นคำสั่งภายนอก (APIEx)
เรามาลองศึกษาการใช้งาน API ในแบบต่างๆกัน ดูซิว่า API ..ใช้ทำอะไรได้บ้าง  
ต่อไปเป็นตัวอย่างคำสั่ง APIEx ที่ใช้ในโปรแกรมภาษา AutoIt v3 ..ก่อนอื่นให่ทานดาวน์โหลดมาติดตั้งไว้ในโปรแกรม AutoIt v3
ซึ่งผมก็อำนวยความสดวกให้ โดยการทำเป็นตัว Setup ให้เลย ท่านจะได้ไม่ต้องยุ่งยากที่จะนำ APIEx เข้าไปเก็บไว้ด้วยตนเอง
พร้อมทั้งมี API Code Sample ปรากฏอยู่ที่หน้าจอให้ท่านได้ศึกษา
Download: APIEx Code Sample คลิ๊กที่นี่
« แก้ไขครั้งสุดท้าย: 16, มกราคม 2011, 12:15:16 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

อะไรนิ

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #7 เมื่อ: 16, มกราคม 2011, 02:03:57 PM »
หยุดก่อนเถอะ ท่านจะมั่วไปใหญ่แล้ว WinAPI ไม่มีภายในหรือภายนอกนะ ลองอ่านดู en.wikipedia.org/wiki/Windows_API คนอื่นอ่านจะเข้าใจผิดกันไปหมด ยิ่งในเนตยิ่งแพร่เร็ว

API มี2แบบ คือ แบบที่เป็นคำสั่งภายใน และแบบที่เป็นคำสั่งภายนอก (APIEx)

หรือว่าเราจะตกยุค ลองใช้อากู๋ หาดูก็ไปเจอหน้าเวบคนทำในautoit เขาก็บอกโต้งๆ ว่าทำเพิ่มเติม winapi ที่มีอยู่เดิม เพราะของเดิมทำไม่ครบ ก็แค่นั้น ตกลงไม่ใช่คำสั่งภายใน กับคำสั่งภายนอกอย่างที่ท่านเข้าใจ อาจสับสนกับคำสั่งดอสที่มีภายในกับภายนอกนะ ประมาณ del กับ deltree อะไรประมาณนี้ เอาชัวร์ก็ถามคนทำก็ได้เห็นยังออนอยู่ว่านี่คือคำสั่งภายนอกหรือเปล่า

นี่อะไฟล์ที่เขาเรียกใช้ แตกต่างจากของเดิมตรงไหน winapi ก็เรียกไฟล์พวกนี้ไม่ใช่เหรอท่าน    :adore:

                    advapi32.dll
                    comctl32.dll
                    connect.dll
                    dwmapi.dll
                    gdi32.dll
                    kernel32.dll
                    ntdll.dll
                    ole32.dll
                    psapi.dll
                    sensapi.dll
                    shell32.dll
                    shlwapi.dll
                    user32.dll
                    uxtheme.dll
                    version.dll
                    winmm.dll
                    winspool.drv




Application Programming Interface (API) คือชุดโค๊ดคำสั่งสำเร็จรูปต่างๆ หรือเรียกง่ายๆว่าเป็นโปรแกรมขนาดเล็กที่ถูกสร้างขึ้นมารอรับบการใช้งาน
เวลาจะใช้งาน ต้องเขียนคำสั่งติดต่อ เพื่อเรียกใช้ ..API มี2แบบ คือ แบบที่เป็นคำสั่งภายใน และแบบที่เป็นคำสั่งภายนอก (APIEx)
เรามาลองศึกษาการใช้งาน API ในแบบต่างๆกัน ดูซิว่า API ..ใช้ทำอะไรได้บ้าง  
ต่อไปเป็นตัวอย่างคำสั่ง APIEx ที่ใช้ในโปรแกรมภาษา AutoIt v3 ..ก่อนอื่นให่ทานดาวน์โหลดมาติดตั้งไว้ในโปรแกรม AutoIt v3
ซึ่งผมก็อำนวยความสดวกให้ โดยการทำเป็นตัว Setup ให้เลย ท่านจะได้ไม่ต้องยุ่งยากที่จะนำ APIEx เข้าไปเก็บไว้ด้วยตนเอง
พร้อมทั้งมี API Code Sample ปรากฏอยู่ที่หน้าจอให้ท่านได้ศึกษา
Download: APIEx Code Sample คลิ๊กที่นี่


ยิ่งขี้น้อยใจอยู่

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #8 เมื่อ: 16, มกราคม 2011, 02:26:22 PM »
^
^

ท่านไปว่าเค้าแบบนี้ เดี๋ยวแป๊บนึงเค้าก็จะลบๆ reply บนๆ ออกหมด คอยดู

(ท่าน sak2005 เค้าเป็นคนที่ไม่ยอมรับคำติ ยินดีรับแต่คำชม!)
 :smiley:

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #9 เมื่อ: 17, มกราคม 2011, 02:37:32 PM »
^
^

ท่านไปว่าเค้าแบบนี้ เดี๋ยวแป๊บนึงเค้าก็จะลบๆ reply บนๆ ออกหมด คอยดู

(ท่าน sak2005 เค้าเป็นคนที่ไม่ยอมรับคำติ ยินดีรับแต่คำชม!)
 :smiley:

ไม่ลบหรอกท่าน แต่จะหยุดเขียนบทความแทน เพราะเกรงใจเว็บจัสท์ และเปิดโอกาสให้คนที่รู้มากกว่าผม เขียนต่อยอดแทน
แต่ไม่รู้ว่าเขาจะเขียนต่อยอดให้หรือเปล่า? ..ไปต่อว่ากันเอาเองนะ ที่อดได้ความรู้เพิ่มจากบทความนี้.. กู๊ดบาย :yaahoo:
แต่ผมคิดว่าเขาคงไม่เขียนให้หรอก เขาอาจจะใช้วิธี ลอกบทความคนอื่นเขามา แล้วมาปรับแต่งข้อความนิดหน่อย
แล้วนำมาโพสท์ไว้ที่นี่ วิธีนี้ทำได้นะ ไม่ว่ากัน ..ดีกว่าไม่ได้ทำอะไร :yaahoo:
--------------------------------------------------------------------------------------------
มีอยู่คำสั่งหนึ่งคือคำสั่ง DllCall ที่ผมเตรียมจะนำออกมาให้ความรู้กัน แต่ตอนนี้เปลี่ยนใจแล้ว ไม่เอาดีกว่า :yaahoo:
« แก้ไขครั้งสุดท้าย: 17, มกราคม 2011, 02:53:24 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

อะไรนิ

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #10 เมื่อ: 17, มกราคม 2011, 03:35:01 PM »
 ก็แค่สงสัยเพราะมันขัดแย้งกับข้อมูลที่เคยอ่านมา แล้วก็ถามเท่านั้น เผื่อจะได้ความรู้ใหม่

ตกลงผมผิดตรงไหน

ผิดที่ถามความหาจริง

ผิดที่บังอาจถาม

ผิดที่ไม่ยกย่องสรรเสริญ

ไม่คิดเลยว่าท่านจะเป็นคนใจคอคับแคบขนาดนี้  

ที่เขาบอกว่าไม่ยอมรับคำติ ยินดีรับแต่คำชม คงจะจริง  :adore:

API มี2แบบ คือ แบบที่เป็นคำสั่งภายใน และแบบที่เป็นคำสั่งภายนอก (APIEx)

อย่าเพิ่งไปประเด็นอื่นสิ ตกลงยังไงแน่ ตอบตรงนี้ให้ชัดเจน คนอ่านก็เยอะอยู่

ความจริงจะปกป้องท่านเอง

ท่านอ้างว่าเก่งหนัก เก่งหนา ช่วยทำให้ผมตาสว่าง ทำโปรแกรมสุดยอดออกมาให้ชมเป็นบุญตาหน่อยเถอะท่าน

ไม่ใช่ลองคำสั่งเขามาแปะ แล้วเปลี่ยนชื่อตัวเอง แบบอันนี้ จากเวบ zone-it.com/176584
 ทำไมมันเหมือนอันนี้ autoitscript.com/forum/topic/101066-network-ip-management-tool/ เพียงแค่เปลี่ยนชื่อเท่านั้น ต้องขอบคุณอากู๋อีกครั้งเสียแล้วนิ

แต่ผมคิดว่าเขาคงไม่เขียนให้หรอก เขาอาจจะใช้วิธี ลอกบทความคนอื่นเขามา แล้วมาปรับแต่งข้อความนิดหน่อย
ข้อความบนนี้พูดให้กับตัวเองฟังเหรอครับท่าน    ผมไม่เก่งหรอกครับ แต่ผมไม่หน้าด้านไปลอกเขามาแล้วเปลี่ยนชื่อเป็นของตัวเองหรอก คาราวะเลย :adore:


 
อ้างถึง
Config IP ด้วยคำสั่ง AutoIt v3 สกุล .au3


โค๊ด:
#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>

$netname = "Local Area Connection" ;<--ตรงนี้ให้เปลี่ยนเป็นชื่อตาม Lan card ที่ใช้ใน Network Connections--<<
$newIp = "192.168.0.1"
$newSubnet = "255.255.255.0"
$newDG = "192.168.0.1"
$newDNSP = ""
$newDNSS = ""

If Not FileExists([แอท]ScriptDir & "\ip_Settings.ini") Then
_FileCreate([แอท]ScriptDir & "\ip_Settings.ini")
IniWriteSection([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "")
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "netname", $netname)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newIp", $newIp)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newSubnet", $newSubnet)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDG", $newDG)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSP", $newDNSP)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSS", $newDNSS)
 SplashTextOn( "FYI", "IP Settings file Generated", 300, 65, -1, -1,17 )
 Sleep(2000)
 SplashOff()
Else
 SplashTextOn( "", "Network IP Management Tool" & [แอท]CRLF & "Pay Attention Before Submiting" & [แอท]CRLF & "IP Setting", 300, 85, -1, -1,17 )
 Sleep(2000)
 SplashOff()
EndIf

$varNetName = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "netname", "NotFound")
$varNewIP = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newIp", "NotFound")
$varNewSubnet = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newSubnet", "NotFound")
$varNewDG = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDG", "NotFound")
$varNewDNSP = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSP", "NotFound")
$varNewDNSS = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSS", "NotFound")

$Form1 = GUICreate("Network IP Manager - By sak2005", 337, 330, 350, 180)
GUISetBkColor(0xC0DCC0)
$Group1 = GUICtrlCreateGroup("IP Config", 8, 8, 225, 217)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$IPtoChange = GUICtrlCreateInput($varNewIP, 16, 45, 201, 25)
$SubmasktoChange = GUICtrlCreateInput($varNewSubnet, 16, 102, 201, 25)
$DefaultGatewaytoChange = GUICtrlCreateInput($varNewDG, 16, 160, 201, 25)
$Label1 = GUICtrlCreateLabel("IP Address:", 16, 28, 129, 17)
$Label2 = GUICtrlCreateLabel("Submask:", 16, 85, 51, 17)
$Label3 = GUICtrlCreateLabel("Default Gateway:", 16, 142, 86, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("DNS Config", 8, 200, 225, 129)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$PrimaryDNStoChange = GUICtrlCreateInput($varNewDNSP, 16, 238, 201, 25)
$SecondaryDNStoChange = GUICtrlCreateInput($varNewDNSS, 16, 295, 201, 25)
$Label4 = GUICtrlCreateLabel("Primary DNS:", 16, 220, 67, 15)
$Label5 = GUICtrlCreateLabel("Secondary DNS:", 16, 278, 84, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$SetStaticIP = GUICtrlCreateButton("Set Static IP", 240, 57, 73, 100, 0)
GUICtrlSetCursor(-1, 0)
$SetDHCP = GUICtrlCreateButton("DHCP", 240, 195, 73, 100, 0)
GUICtrlSetCursor(-1, 0)
$Close = GUICtrlCreateLabel("Exit", 317, 315, 25, 20)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetCursor(-1, 0)

GUISetState([แอท]SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $SetStaticIP
   GUICtrlSetState($SetStaticIP, $GUI_DISABLE)
   SplashTextOn("           Static IP Process", "Please wait!", 200, 50, 430, 380, 0, "Tahoba", 12, 400)
If Not $IPtoChange = 0 Then
         $d = GUICtrlRead($IPtoChange)
         GUICtrlSetData($IPtoChange, ($d))
         $e = GUICtrlRead($SubmasktoChange)
         GUICtrlSetData($SubmasktoChange, ($e))
         $f = GUICtrlRead($DefaultGatewaytoChange)
         GUICtrlSetData($DefaultGatewaytoChange, ($f))
         $g = GUICtrlRead($PrimaryDNStoChange)
         GUICtrlSetData($PrimaryDNStoChange, ($g))
         $h = GUICtrlRead($SecondaryDNStoChange)
         GUICtrlSetData($SecondaryDNStoChange, ($h))

RunWait ('netsh interface ip set address name=' & '"' & $netname & '" static ' & $d & ' '& $e & ' ' & $f & ' 1',"",[แอท]SW_Hide)
Runwait ('netsh interface ip set dns name=' & '"' & $netname & '" static ' & $g & ' primary',"",[แอท]SW_Hide)
Runwait ('netsh interface ip add dns name=' & '"' & $netname & '" addr=' & $g & ' index=2',[แอท]SW_Hide)
SplashOff()
MsgBox(64,"Static IP Setup as follows:", _
"Your Static IP has been set and Configured to:" _
&[แอท]CRLF & [แอท]CRLF & "Static IP: " & $d & [แอท]CRLF & "Submask: " _
&  $e & [แอท]CRLF & "Defauly Gateway: " & $f & [แอท]CRLF &[แอท]CRLF & "Primary DNS: " _
& $g & [แอท]CRLF & "Secondary DNS: " & $h & [แอท]CRLF&[แอท]CRLF & "      Statication complete.")
GUICtrlSetState($SetStaticIP, $GUI_ENABLE)
Else
MsgBox(64,"DHCP Set!",$e & "Please enter your IP you need changed?", 3)
EndIf
Case $SetDHCP
If WinActivate("dalmn240amcilinkcom - Citrix Presentation Server Client", "") Then
MouseMove(165, 140, 0)
MouseClick("right")
Else
$netname = "Local Area Connection"
Runwait ('netsh interface ip set address name=' & '"' & $netname & '" dhcp', "", [แอท]SW_HIDE)
Dim $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(64, "DHCP Set!", "Your PC has been set back to DHCP.. ", 3)
Select
   Case $iMsgBoxAnswer = -1
   Case Else
EndSelect
EndIf
Case $Close
   Exit
EndSwitch
WEnd




ยิ่งขี้น้อยใจอยู่

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #11 เมื่อ: 17, มกราคม 2011, 04:00:03 PM »
^
ท่านก็ว่าเกินไป

โน๊ตมันมีแค่ 8 ตัวเอง ยังไงๆมันก็ต้องซ้ำกันบ้าง (นักร้องนักแต่งเพลงเค้าใช้คำนี้กันมานาน)

autoitscript มันก็มีคำสั่งจำกัด เวลาเอามาเขียน มันก็ต้องมีซ้ำๆ กันบ้างซิ (ชิมิ?)

แต่ว่า ตั้งแต่แรก ถ้าลอกเค้ามา ก็บอกว่าลอก (หรือเอาของฝรั่งซักคน แต่ใจดีแปลมาให้)

บอกกันตามตรง ก็ไม่น่ามีปัญหาพวกนี้แล้วล่ะ (ชิมิ?)
 :tongue:

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #12 เมื่อ: 17, มกราคม 2011, 04:09:54 PM »
คนที่หน้าด้านที่สุดก็คือท่าน ที่ตามรังคราญไม่เลิก มันเรื่องของผมที่จะลอกแบบใครมาให้ความรู้กันเป็นแบบอย่างบ้างเป็นครั้งคราว
แต่ส่วนมากโปรแกรมผมจะเขียนแจกเอง ขยันเขียนบทความให้ความรู้ ต่างกับคนบางคนที่ ที่คอยอวดรู้และขยันติเตียนผู้อื่น
ถ้าท่านอยู่เฉยๆ มันก็ไม่มีเรื่องโต้เถียง นี่ท่านเล่นแจมเข้ามาทำให้ผมเสียหน้า แล้วใครจะเขียนบทความต่อได้
เปรียบเสมือน ถ้าท่านโดนเพื่อนติเตียนต่อหน้าคนรอบข้าง แล้วท่านจะคิดยังไง? ถ้าหน้าท่านไม่แตก แล้วจะเป็นหน้าอะไร?
PM ก็มี ทำไมท่านไม่ใช้
« แก้ไขครั้งสุดท้าย: 17, มกราคม 2011, 04:13:14 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ยิ่งขี้น้อยใจอยู่

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #13 เมื่อ: 17, มกราคม 2011, 04:18:47 PM »
คนที่หน้าด้านที่สุดก็คือท่าน ที่ตามรังคราญไม่เลิก มันเรื่องของผมที่จะลอกแบบใครมาให้ความรู้กันเป็นแบบอย่างบ้างเป็นครั้งคราว
แต่ส่วนมากโปรแกรมผมจะเขียนแจกเอง ขยันเขียนบทความให้ความรู้ ต่างกับคนบางคนที่ ที่คอยอวดรู้และขยันติเตียนผู้อื่น
ถ้าท่านอยู่เฉยๆ มันก็ไม่มีเรื่องโต้เถียง นี่ท่านเล่นแจมเข้ามาทำให้ผมเสียหน้า แล้วใครจะเขียนบทความต่อได้
เปรียบเสมือน ถ้าท่านโดนเพื่อนติเตียนต่อหน้าคนรอบข้าง แล้วท่านจะคิดยังไง? ถ้าหน้าท่านไม่แตก แล้วจะเป็นหน้าอะไร?
PM ก็มี ทำไมท่านไม่ใช้

เอาผลงานคนอื่นมาใส่ชื่อตัวเอง แถมยังอวดอ้างต่างๆ นาๆ พอมีคนจับได้ คนจับได้ดันเป็นคนหน้าด้านซะงั้น

 :razz:

อะไรนิ

  • บุคคลทั่วไป
Re: รวมคำสั่ง AutoIt v3(*.au3)+VBScript(*.vbs) [สุดยอดความรู้ภาค4]
« ตอบกลับ #14 เมื่อ: 17, มกราคม 2011, 04:23:55 PM »
นี่อะผลงานต้นฉบับ ทำโดย Jim Dillon เผื่อใครอยากจะดูว่า เปลี่ยนอะไรตรงไหนบ้าง

เฮียฮ้อRS เคยทวิตบอกว่า
 
อ้างถึง
ความจริงเป็นสิ่งไม่ตาย ..คนที่วิ่งหนีความจริง..หนีเงาตัวเอง เหนื่อย&เสียเวลาเปล่า


อ้างถึง

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>

;Set initial settings here, these will be written to the initial ini file for later use
$netname = "Local Area Connection"
$newIp = "Put Your New Static IP Here"
$newSubnet = "255.255.252.0"
$newDG = "165.122.31.254"
$newDNSP = "166.33.193.132"
$newDNSS = "166.35.82.120"

;####################################################################################

;#cs~~~~~~~~~~~~~~~~~~Start INI Creation Section~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If Not FileExists([แอท]ScriptDir & "\ip_Settings.ini") Then
_FileCreate([แอท]ScriptDir & "\ip_Settings.ini")
IniWriteSection([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "")
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "netname", $netname)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newIp", $newIp)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newSubnet", $newSubnet)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDG", $newDG)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSP", $newDNSP)
IniWrite([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSS", $newDNSS)
 SplashTextOn( "FYI", "IP Settings file Generated", 300, 65, -1, -1,17 )
 Sleep(2000)
 SplashOff()
Else
 SplashTextOn( "", "Network IP Management Tool" & [แอท]CRLF & "Pay Attention Before Submiting" & [แอท]CRLF & "IP Setting", 300, 85, -1, -1,17 )
 Sleep(2000)
 SplashOff()
EndIf

;#ce~~~~~~~~~~~~~~~~~~~~~~End Of INI Creation Section~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;####################################################################################

;#cs~~~~~~~~~~~~~~~~~~Start INI Reading Section~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$varNetName = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "netname", "NotFound")
$varNewIP = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newIp", "NotFound")
$varNewSubnet = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newSubnet", "NotFound")
$varNewDG = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDG", "NotFound")
$varNewDNSP = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSP", "NotFound")
$varNewDNSS = IniRead([แอท]ScriptDir & "\ip_Settings.ini", "IP_Settings", "newDNSS", "NotFound")

;MsgBox(4096, "Result", $varNetName & [แอท]CRLF & $varNewIP & [แอท]CRLF & $varNewSubnet & [แอท]CRLF & $varNewDG & [แอท]CRLF & $varNewDNSP & [แอท]CRLF & $varNewDNSS); This will show what is being pulled from the ini

;#ce~~~~~~~~~~~~~~~~~~~~~~End INI Reading Section~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#Region ### START Koda GUI section ### Form=C:\Users\Jim\Desktop\My Dropbox\Autoit\Autoit Tools\koda_2008-10-03\Forms\Static IP.kxf
$Form1 = GUICreate("Network IP Manager - By Jim Dillon", 351, 384, 492, 355)
$Group1 = GUICtrlCreateGroup("IP Config", 8, 8, 225, 217)
$IPtoChange = GUICtrlCreateInput($varNewIP, 16, 48, 201, 25)
;$d = GUICtrlRead($IPtoChange)
$SubmasktoChange = GUICtrlCreateInput($varNewSubnet, 16, 104, 201, 25)
$DefaultGatewaytoChange = GUICtrlCreateInput($varNewDG, 16, 160, 201, 25)
$Label1 = GUICtrlCreateLabel("Static IP  Address To Add:", 16, 28, 129, 17)
$Label2 = GUICtrlCreateLabel("Submask:", 16, 84, 51, 17)
$Label3 = GUICtrlCreateLabel("Default Gateway:", 16, 142, 86, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("DNS", 8, 240, 225, 129)
$PrimaryDNStoChange = GUICtrlCreateInput($varNewDNSP, 16, 272, 209, 25)
$SecondaryDNStoChange = GUICtrlCreateInput($varNewDNSS, 16, 328, 209, 25)
$Label4 = GUICtrlCreateLabel("Primary DNS:", 16, 256, 67, 15)
$Label5 = GUICtrlCreateLabel("Secondary DNS:", 16, 310, 84, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$SetStaticIP = GUICtrlCreateButton("Set Static IP", 240, 16, 73, 97, 0)
$SetDHCP = GUICtrlCreateButton("DHCP", 240, 128, 75, 97, 0)
$Close = GUICtrlCreateButton("Exit", 240, 246, 75, 121, 0)
GUISetState([แอท]SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~Set Network To Static IP~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Case $SetStaticIP
If Not $IPtoChange = 0 Then
         $d = GUICtrlRead($IPtoChange)
         GUICtrlSetData($IPtoChange, ($d))
         $e = GUICtrlRead($SubmasktoChange)
         GUICtrlSetData($SubmasktoChange, ($e))
         $f = GUICtrlRead($DefaultGatewaytoChange)
         GUICtrlSetData($DefaultGatewaytoChange, ($f))
         $g = GUICtrlRead($PrimaryDNStoChange)
         GUICtrlSetData($PrimaryDNStoChange, ($g))
         $h = GUICtrlRead($SecondaryDNStoChange)
         GUICtrlSetData($SecondaryDNStoChange, ($h))

runwait ('netsh interface ip set address name=' & '"' & $netname & '" static ' & $d & ' '& $e & ' ' & $f & ' 1',"",[แอท]SW_Hide)

runwait ('netsh interface ip set dns name=' & '"' & $netname & '" static ' & $g & ' primary',"",[แอท]SW_Hide)

runwait ('netsh interface ip add dns name=' & '"' & $netname & '" addr=' & $g & ' index=2')

MsgBox(64,"Static IP Setup as follows:", "Your Static IP has been set and Configured to:" &[แอท]CRLF & [แอท]CRLF & "Static IP: " & $d & [แอท]CRLF & "Submask: " &  $e & [แอท]CRLF & "Defauly Gateway: " & $f & [แอท]CRLF &[แอท]CRLF & "Primary DNS: " & $g & [แอท]CRLF & "Secondary DNS: " & $h & [แอท]CRLF &[แอท]CRLF & "Thanks! " & [แอท]CRLF & "Jim",3)
         Else
MsgBox(64,"DHCP Set!",$e & "Please enter your IP you need changed?" & [แอท]CRLF & "Thanks! " & [แอท]CRLF & "Jim",3)

         EndIf
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~Set Network To DHCP~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Case $SetDHCP
         If WinActivate("dalmn240amcilinkcom - Citrix Presentation Server Client", "") Then
         MouseMove(165, 140, 0)
         MouseClick("right")
;~~~~~~~~~~~~~~~~~~~~

      Else
$netname = "Local Area Connection"
runwait ('netsh interface ip set address name=' & '"' & $netname & '" dhcp', "", [แอท]SW_HIDE)

Dim $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(64,"DHCP Set!","Your PC has been set back to DHCP.. " & [แอท]CRLF & "Thanks! " & [แอท]CRLF & "Jim",3)
Select
   Case $iMsgBoxAnswer = -1 ;Timeout

   Case Else                ;OK

EndSelect
         EndIf
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Case $Close
   Exit
EndSwitch
WEnd

 

Sitemap 1 2 3 4 5 6 7 8 9 10 
Back to top