 |
|
รบกวนพี่ๆช่วยแนะนำโค๊ดเกี่ยวกับการสั่งให้โปรแกรมทำงานอัติโนมัต |
|
 |
|
|
 |
 |
|
เป็นฟังก์ชั่นเกี่ยวกับการบันทึกหน้าจอค่ะ
คือตอนนี้ถ้าจะบันทึกหน้าจอได้ก็ต้องกดที่บันทึกหน้าจอ
แต่อยากให้โปรแกรมทำการบันทึกหน้าจอเองอัติโนมัติ เมื่อมีการเปิดเครื่องคอมพิวเตอร์ขึ้นมา
โดยสามารถเลือกระยะเวลาในการบันทึกหน้าจอในส่วนของ combobox อะค่ะ เช่น บันทึกหน้าจอทุก 3 นาที ประมาณนี้อะค่ะ ลองใช้ Timer กับ Tread แล้วแต่ก็ยังมึนๆอะค่ะ
รบกวนพี่ๆช่วยแก้โค๊ด หรือแนะนำหน่อยนะค่ะ

Code (VB.NET)
Imports System.DateTime
Imports System
Imports System.IO
Imports System.IO.DirectoryInfo
Public Class Form2
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Function SaveScreen(ByVal theFile As String) As Boolean
Dim data As IDataObject
data = Clipboard.GetDataObject()
Dim bmap As Bitmap
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap)
Me.PictureBox1.Image = bmap
Me.PictureBox1.Image.Save(theFile, Imaging.ImageFormat.Jpeg)
End If
End Function
Private Sub Command2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command2.Click
Hide() 'เมื่อคลิกปุ่มจะทำการซ่อนหน้าจอนี้
Dim fname2 As String
fname2 = System.DateTime.Now.ToLongDateString
Dim fname1 As String
fname1 = System.DateTime.Now.ToString("HH_mm_ss") 'System.DateTime.Now.ToLongTimeString
Dim di As DirectoryInfo = New DirectoryInfo("c:\" + fname2)
Threading.Thread.Sleep(200) 'ทำการ sreen หน้าจอหลังจากกดปุ่ม 2 วินาที
Call keybd_event(System.Windows.Forms.Keys.Snapshot, 0, 0, 0)
System.Threading.Thread.Sleep(100) 'เมื่อ Screen แล้วให้มันแสดงหน้าจอใหม่ภายใน 1 วินาที
SaveScreen("C:\" + fname2 + fname1 + ".jpeg")
di.Create()
Me.Show() 'เมื่อ screen หน้าจอเสร็จให้ทำการโชว์หน้าจอนี้อีกครั้ง
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("บันทึกหน้าจอทุก 3 นาที")
ComboBox1.Items.Add("บันทึกหน้าจอทุก 5 นาที")
ComboBox1.Items.Add("บันทึกหน้าจอทุก 10 นาที")
ComboBox1.Items.Add("หยุดการบันทึกหน้าจอ ")
End Sub
End Class
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
2010-03-01 15:23:53 |
By :
yuning |
View :
1384 |
Reply :
2 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Imports System.DateTime
Imports System
Imports System.IO
Imports System.IO.DirectoryInfo
Public Class Form2
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Function SaveScreen(ByVal theFile As String) As Boolean
Dim data As IDataObject
data = Clipboard.GetDataObject()
Dim bmap As Bitmap
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap)
Me.PictureBox1.Image = bmap
Me.PictureBox1.Image.Save(theFile, Imaging.ImageFormat.Jpeg)
End If
End Function
Private Sub Command2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command2.Click
Hide() 'เมื่อคลิกปุ่มจะทำการซ่อนหน้าจอนี้
Dim fname2 As String
fname2 = System.DateTime.Now.ToLongDateString
Dim fname1 As String
fname1 = System.DateTime.Now.ToString("HH_mm_ss") 'System.DateTime.Now.ToLongTimeString
Dim di As DirectoryInfo = New DirectoryInfo("c:\" + fname2)
Threading.Thread.Sleep(200) 'ทำการ sreen หน้าจอหลังจากกดปุ่ม 2 วินาที <<< อันนี้ 200 = .2 วินาทีครับ
Call keybd_event(System.Windows.Forms.Keys.Snapshot, 0, 0, 0)
System.Threading.Thread.Sleep(100) 'เมื่อ Screen แล้วให้มันแสดงหน้าจอใหม่ภายใน 1 วินาที <<< อันนี้ 100 = .1 วินาทีครับ
SaveScreen("C:\" + fname2 + fname1 + ".jpeg")
di.Create()
Me.Show() 'เมื่อ screen หน้าจอเสร็จให้ทำการโชว์หน้าจอนี้อีกครั้ง
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("บันทึกหน้าจอทุก 3 นาที")
ComboBox1.Items.Add("บันทึกหน้าจอทุก 5 นาที")
ComboBox1.Items.Add("บันทึกหน้าจอทุก 10 นาที")
ComboBox1.Items.Add("หยุดการบันทึกหน้าจอ ")
End Sub
End Class
ใช้ timer ครับ ไม่ต้องใช้ thread ให้วุ่นวาย
|
 |
 |
 |
 |
Date :
2010-03-02 09:00:44 |
By :
numenoy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากค่ะที่ให้คำแนะนำ แต่พี่ๆพอจะแปลงโค๊ดให้หน่อยได้มั้ยค่ะ
|
 |
 |
 |
 |
Date :
2010-03-02 11:43:45 |
By :
yuning |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|