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


ค่า Sleep กำหนดเป็นแบบนาที

Share

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


จำนวนข้อความ : 11
ความนิยม : 0
เข้าร่วมเมื่อ : 26/07/2013

ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by sumup on 14/08/13, 11:34 pm

สืบเนื่องจาก [You must be registered and logged in to see this link.]

จากที่ผมได้ฝึกทดลองเขียนโปรแกรมที่เอาไว้ใช้เข้าหน้าเว็บบริษัท และรีเฟชหน้าเว็บเองตามเวลาที่กำหนดได้สำเร็จในจุดหนึ่ง แต่ก็ยังมีติดปัญหาเพิ่มเติมตรงจำนวนนาทีที่จะตั้งให้มันรีเฟชเองครับ ซึ่งปกติค่า Sleep(1000) = 1 วินาที / ถ้า 1 นาที = Sleep(60000) และ 1 ชั่วโมง = Sleep(3600000)

โดยในช่องที่ไว้สำหรับกรอกจำนวนนาทีที่จะให้รีเฟช  ถ้าผมต้องการให้รีเฟชทุกชั่วโมงก็ต้องใส่จำนวนค่า Sleep ลงในช่องนั่น 3600000 พอจะมีวิธีทำเป็นตัวแปรให้ดึงข้อมูลไปใช้งานได้ไหมครับ(ผมอธิบายถูกไหมหน่ะ)

เพื่อความสะดวกในใช้งานสำหรับบุคคลอื่นด้วย ในช่องที่ไว้ใส่จำนวนนาทีถ้าผมใส่ไป 30 (นาที) อยากให้มันไปดึงค่า Sleep(1800000) ไปทำงานเลยครับแต่ผมเริ่มต้นเขียนสคริปไม่ถูกครับผม

รบกวนแนะนำด้วยครับ

====================================================================

อันนี้เป็นสคริปที่เขียนไว้ครับ
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 351, 351, 250, 191)
$Input1 = GUICtrlCreateInput("ชื่อเว็บไซต์", 8, 8, 185, 21)
$Input2 = GUICtrlCreateInput("จำนวนนาที", 200, 8, 65, 21)
$OK = GUICtrlCreateButton("OK", 272, 8, 75, 25)
$oIE = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($oIE, 8, 40, 337, 305)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{ESC}", "Close")
HotKeySet("{ENTER}", "OK")

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
 Case $GUI_EVENT_CLOSE
 Exit
 Case $OK
 Start()
 EndSwitch
WEnd

Func Start()
 While 1
 $oIE.navigate(GUICtrlRead($Input1))
 Sleep(GUICtrlRead($Input2) & "000")
 _IEAction($oIE,"refresh")
 WEnd
 EndFunc

Func OK()
 Start()
EndFunc

Func Close()
 Exit
EndFunc

foolsopts
PSsix Member
PSsix Member


จำนวนข้อความ : 29
ความนิยม : 17
เข้าร่วมเมื่อ : 24/08/2010

Re: ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by foolsopts on 15/08/13, 06:35 pm

ถ้าหมายถึง อยากให้ผู้ใช้ กรอก เป็นจำนวนนาที minute แทนที่จะกรอกเป็น million sec ก็เพียงให้คุณ นำค่า นาที ที่ได้จาก inputbox มาคูณ 1000 แล้วนำค่าที่คูณ ไปใส่ ใน sleep() ก็เสร็จแล้วครับ


$input2 = GUICtrlCreateInput("จำนวนนาที", 200, 8, 65, 21)

$process = $input2 *1000

sleep($process)

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


จำนวนข้อความ : 11
ความนิยม : 0
เข้าร่วมเมื่อ : 26/07/2013

Re: ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by sumup on 16/08/13, 09:37 am

อ้อออ จริงด้วยเนอะครับ ขอบคุณมากเลยครับคุณ foolsopts


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


จำนวนข้อความ : 11
ความนิยม : 0
เข้าร่วมเมื่อ : 26/07/2013

Re: ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by sumup on 16/08/13, 11:12 am

foolsopts พิมพ์ว่า:ถ้าหมายถึง อยากให้ผู้ใช้ กรอก เป็นจำนวนนาที minute แทนที่จะกรอกเป็น million sec ก็เพียงให้คุณ นำค่า นาที ที่ได้จาก inputbox มาคูณ 1000 แล้วนำค่าที่คูณ ไปใส่ ใน sleep() ก็เสร็จแล้วครับ


$input2 = GUICtrlCreateInput("จำนวนนาที", 200, 8, 65, 21)

$process = $input2 *1000

sleep($process)
ผมได้ทดสอบตามนี้ดูแล้วครับ เหมือนสคริปมันไม่มีการ *1000 ให้เลยครับ ต้องใส่เครื่องหมายอะไรก่อนคูณอีกไหมครับ

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 351, 351, 250, 191)
$Input1 = GUICtrlCreateInput("ชื่อเว็บไซต์", 8, 8, 185, 21)
$Input2 = GUICtrlCreateInput("จำนวนนาที", 200, 8, 65, 21)
$OK = GUICtrlCreateButton("OK", 272, 8, 75, 25)
$oIE = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($oIE, 8, 40, 337, 305)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{ESC}", "Close")
HotKeySet("{ENTER}", "OK")

$Min = $Input2 *1000

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $OK
         Start()
   EndSwitch
WEnd

Func Start()
   While 1
      $oIE.navigate(GUICtrlRead($Input1))
      Sleep($Min)
      _IEAction($oIE,"refresh")
      WEnd
   EndFunc

Func OK()
   Start()
EndFunc

Func Close()
   Exit
EndFunc

foolsopts
PSsix Member
PSsix Member


จำนวนข้อความ : 29
ความนิยม : 17
เข้าร่วมเมื่อ : 24/08/2010

Re: ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by foolsopts on 16/08/13, 02:38 pm

ผมว่าคุณลืมใช้คำสั่ง GuiCtrlRead($Input2) ก่อนนำมาคูณนะครับ ดึงข้อมูลจาก Gui ต้องใช้ GuiCtrlRead() ทุกครั้งครับ

จากCodeจะได้ว่า
$Min = GuiCtrlRead($Input2)*1000
และต้องเอาไปใส่ในส่วนบนสุดของ func start() นอกคำสั่ง while ด้วยครับ ไม่งั้น ค่า$Input2 จะเป็นค่าว่างตลอด เพราะมันถูกคำนวนเสร็จตั้งแต่สร้าง form แล้วครับ

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


จำนวนข้อความ : 11
ความนิยม : 0
เข้าร่วมเมื่อ : 26/07/2013

Re: ค่า Sleep กำหนดเป็นแบบนาที

ตั้งหัวข้อ by sumup on 16/08/13, 04:41 pm

foolsopts พิมพ์ว่า:ผมว่าคุณลืมใช้คำสั่ง GuiCtrlRead($Input2) ก่อนนำมาคูณนะครับ ดึงข้อมูลจาก Gui ต้องใช้ GuiCtrlRead() ทุกครั้งครับ

จากCodeจะได้ว่า
$Min = GuiCtrlRead($Input2)*1000
และต้องเอาไปใส่ในส่วนบนสุดของ func start() นอกคำสั่ง while ด้วยครับ ไม่งั้น ค่า$Input2 จะเป็นค่าว่างตลอด เพราะมันถูกคำนวนเสร็จตั้งแต่สร้าง form แล้วครับ
หือออออ เข้าใจเลยครับ เพราะผมเองบอกตามตรงยังไม่ค่อยเข้าใจและไม่รู้ว่าต้องใช้คำสั่งตัวไหนทำอะไรได้บ้างครับ แค่ดูใน F1 แล้วเอามาลองใช้งานเลย แต่ก็ใช้งานได้แล้วครับเสร็จเป็นทีเรียบร้อยเลยครับ

แต่ผมเห็น admin เขาทำหนังสือออกมาด้วยเดี๋ยวลองไปหาซื้อมาศึกษาดูอีกทีครับ เพราะเดี๋ยวต้องมีทำให้บริษัทอีกแน่นอน ตัวนี้ทำให้หัวหน้าดูคราวๆ ครับ

ขอบคุณ คุณ foolsopts อีกครั้งนะครับ

ส่วนอันนี้โค้ดที่ทำเสร็จครับ เผื่อเป็นประโยชน์กับคนอื่น
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 351, 351, 250, 191)
$Input1 = GUICtrlCreateInput("http://www.sumuppremium.com/", 8, 8, 185, 21)
$Input2 = GUICtrlCreateInput("5", 200, 8, 65, 21)
$OK = GUICtrlCreateButton("OK", 272, 8, 75, 25)
$oIE = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($oIE, 8, 40, 337, 305)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{ESC}", "Close")
HotKeySet("{ENTER}", "OK")

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $OK
         Start()
   EndSwitch
WEnd

Func Start()
   $Min = GuiCtrlRead($Input2)*1000
   While 1
      $oIE.navigate(GUICtrlRead($Input1))
      Sleep($Min)
      _IEAction($oIE,"refresh")
      WEnd
   EndFunc

Func OK()
   Start()
EndFunc

Func Close()
   Exit
EndFunc

    เวลาขณะนี้ 28/04/17, 05:09 pm