www.thaiio.com หน้ากระดานข่าวหลัก

หน้าแรกเวปไซด์หน้าแรก Thaiio.com คำถามถามบ่อยของกระดานข่าวคำถามถามบ่อยของกระดานข่าว ค้นหาค้นหา รายนามสมาชิกรายนามสมาชิก กลุ่มผู้ใช้งานกลุ่มผู้ใช้งาน
ข้อมูลส่วนตัวข้อมูลส่วนตัว คุณไม่มีข่าวสารใหม่คุณไม่มีข่าวสารใหม่ ออกจากระบบ [ thaiio ]ออกจากระบบ [ thaiio ]

ห้องVBส่วนตัวของแมงเม่า

 

หน้าืั้ต่อไป

ดูกระทู้ก่อนนี้ :: ดูกระทู้ถัดไป  
ผู้ส่ง ข้อความ
voyager



เข้าร่วมเมื่อ: 18 สค. 2005
ตอบ: 68
ที่อยู่: เชียงใหม่

ตอบตอบ: พ. สค. 24, 2005 2:17 pm    ชื่อกระทู้: ห้องVBส่วนตัวของแมงเม่า ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

กระทู้เกี่ยวกับ visual basic 6.0 ทั้งที่เป็น hardware interface หรือ miscellaneous ถ้าไม่มีใคร post ก็จะมา post เอง 555555 มีเรื่องราวหลากหลายทิป เทคนิคที่เพื่อนๆสามารถนำไปประยุกต์ใช้ในการพัฒนาโปรแกรมได้ไม่ว่าจะเป็นด้าน vision,webcam, การเขียนโปรแกรมติดต่อ Hardware และ Network โดยใช้VB,VC+ รวมถึง โครงงาน คอมพิวเตอร์เชื่อมต่ออุปกรณ์ภายนอกการเขียนโปรแกรมด้วย วิชวลเบสิก(visual basic),วิชวลซี(visual C++assembly และ ไมโครคอนโทรลเลอร์ เพื่อ ควบคุม หรือ เชื่อมต่อสื่อสาร ฮาร์ดแวร์ รวมถึงการเขียนโปรแกรมผ่าน winsock,API

กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์ MSN
กลับไปข้างบน
พายุ
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 3:08 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

มันยังรับไม่ได้อ่ะคับ

คือ อุปกรณ์มันจะส่งจำนวนเรคคอด มาก่อน เพื่อเป็นตัวนำว่าควรจะหยุดที่ไหน

และ ค่อส่งดาต้าคืนกลับมา อ่ะคับ

คือพี่มี Email หรือเบอร์โทไหมคับ

ขอบคุณมากคับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 7:34 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

StrData = MSComm1.Input เป็นการรับค่าจาก MsComm แต่ถ้ามีการส่งเป็นชุดแบบนี้ต้องใช้การเลือก case แล้วเอาฝากใน database เช่น text ไฟล์ก็น่าจะได้
เช่น สมมุติส่ง A มาก่อน ก็ให้รู้ว่าให้เริ่มเตรียมรับข้อมูลจริงหลังจากที่รับ A แล้ว จากกนั้นก็เอาข้อมูลที่ส่งมาไปเก็บไว้ที่ database จนครบ ไม่รู้ว่าใช่หรือเปล่านะ สรุปคือภาพรับของน้องค่อนข้างซับซ้อนแหละ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 12:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ทำได้แล้วครับ
ใช้ winsock ส่ง image frame จาก client<====>server แบบ real time ผ่าน picture box
image frame จะปรากฎ(เกือบ)พร้อม ๆ กัน ระหว่าง client กับ server ถ้าใช้โปรแกรม screen capture หรือ web cam(post ไปแล้ว)รับภาพ picture boxจากเครื่องหนึ่งมันก็จะไปปรากฎที่อีกเครื่องได้ กระสุนนัดเดียวได้ 2 ต่อเรยย


ผมเอา code motion detection ผ่าน LAN มาแก้ให้ stream รูปแล้วดัน save ทับ Code เดิม...... Sad Sad Sad Sad Sad Sad Sad เศร้าเรยยยย

-------Server--------
Option Explicit
Private Sub Form_Load()
On Error Resume Next
WindowsXPC1.InitSubClassing
Picture1.Picture = LoadPicture(App.Path & "\img\a.jpg")
End Sub
Private Sub Command2_Click()
On Error Resume Next
Winsock1.Close
Winsock1.LocalPort = Text2.Text
Winsock1.Listen
Form1.Caption = "Listening on Port: " & Winsock1.LocalPort
End Sub
Private Sub Command3_Click()
On Error Resume Next
Dim Bjpg As String
If Winsock1.State = sckConnected Then
SavePicture Picture1.Picture, App.Path & "\temp.jpg"
DoEvents
Bjpg = GetFile(App.Path & "\temp.jpg")
DoEvents
Winsock1.SendData Bjpg
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Kill App.Path & "\temp.jpg"
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
On Error Resume Next
Winsock1.Close
Winsock1.Accept requestID
Form1.Caption = "Connection From: " & Winsock1.RemoteHostIP & " Accepted."
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim data As String
Winsock1.GetData data
If data = "CAMSTREAM" Then
Else
Winsock1.Close
End If
End Sub
Private Sub Winsock1_Close()
On Error Resume Next
Winsock1.Close
Winsock1.LocalPort = Text2.Text
Winsock1.Listen
Form1.Caption = "Connection Closed."
End Sub
--------------

-------Client--------------
Option Explicit
Dim iData As String

Private Sub Command1_Click()
On Error Resume Next
Winsock1.Close
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.Connect
End Sub

Private Sub Command2_Click()
On Error Resume Next
Winsock1.Close
Form1.Caption = "Connection Closed."
Picture1.Picture = Nothing
End Sub

Private Sub Form_Load()
WindowsXPC1.InitSubClassing

End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
If Dir(App.Path & "\temp.jpg", vbNormal) = "temp.srm" Then Kill App.Path & "\temp.jpg"
End Sub

Private Sub Winsock1_Close()
On Error Resume Next
Winsock1.Close
Form1.Caption = "Connection Closed."
End Sub

Private Sub Winsock1_Connect()
On Error Resume Next
Winsock1.SendData "CAMSTREAM"
Form1.Caption = "Connection Active."
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim data As String
Winsock1.GetData data
iData = iData + data
DoEvents
SetImg iData
End Sub

Sub SetImg(Imdata As String)
On Error Resume Next
SetFile App.Path & "\temp.jpg", Imdata
DoEvents
Picture1.Picture = LoadPicture(App.Path & "\temp.jpg")
iData = ""
End Sub
Function SetFile(ByVal StrFileName As String, ByVal FileData As String)
On Error Resume Next
Dim H1 As Long
H1 = FreeFile
Kill StrFileName
Open StrFileName For Binary Access Write As #H1
Put #H1, , FileData
Close #H1
End Function
-----------------
กลับไปข้างบน
พายุ
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 1:12 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Protocal ในการส่งข้อมูล
Header Command Reserve CheckSum
1E 01-02 00 1F
CheckSum = Header+Command+Resevre
Protocal ในการรับข้อมูล
Header Record Data Reserve ChecKSum
1E - - - -
1 Byte 2 Byte 6Byte 1Byte 1Byte = 11 Byte
CheckSum = Header + Record + Data + Reserve
อธิบายการรับส่งข้อมูล เครื่องบันทึกรหัสจะรอรับค่าจากPC แล้วเช็คว่าตรงตามที่กำหนดไว้และถ้าตรงก็ให้ทำงาน ส่งค่าHeader ออกไปแล้วตามด้วย Data จากนั้นเช็คความถูกต้องของข้อมูลจนครบจากที่มีอยู่ใน RecInและRecOut ถึงจะสิ้นสุดการส่งข้อมูล

Rolling Eyes
กลับไปข้างบน
พายุ
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 1:15 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อันนี้ที่ผมลองเขียนดูนะคับ

Private Sub cmdIn_Click()
mscSender.Output = Chr(&H1E)
mscSender.Output = Chr(&H1)
mscSender.Output = Chr(&H0)
mscSender.Output = Chr(&H1F)
End Sub

Private Sub cmdOut_Click()
mscSender.Output = Chr(&H1E)
mscSender.Output = Chr(&H2)
mscSender.Output = Chr(&H0)
mscSender.Output = Chr(&H1F)
End Sub

Private Sub Form_Load()
mscSender.CommPort = 1
mscSender.Settings = "9600,n,8,1"
mscSender.PortOpen = True

End Sub
----------------------------------------------


Private Sub mcs_OnComm()
Data = mcs.Input
Data = Hex$(Asc(Data))
Text1.Text = Data
End Sub

ยังงี้ถูกไหมคับ
กลับไปข้างบน
พายุ
บุคคลทั่วไป





ตอบตอบ: พ. ธค. 21, 2005 1:18 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อันนี้ตัวTest อุปกรณ์ เค้าเขียนเป็น เดลไฟล์......

unit Barcode1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, VaClasses, VaComm, Buttons, XPMan, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
VaComm1: TVaComm;
Label1: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
XPManifest1: TXPManifest;
Button1: TButton;
GroupBox1: TGroupBox;
Label6: TLabel;
Edit2: TEdit;
Button2: TButton;
Memo1: TMemo;
Button3: TButton;
Timer1: TTimer;
Timer2: TTimer;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure TimerTxTimer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure VaComm1RxChar(Sender: TObject; Count: Integer);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.ItemIndex := 0;
ComboBox2.ItemIndex := 2;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin

while VaComm1.Active Do
Begin
VaComm1.Close;
End;

Vacomm1.PortNum := ComboBox1.ItemIndex+1;
case ComboBox2.ItemIndex of
0 : VaComm1.Baudrate := br2400;
1 : VaComm1.Baudrate := br4800;
2 : VaComm1.Baudrate := br9600;
3 : VaComm1.Baudrate := br19200
end;


end;

procedure TForm1.TimerTxTimer(Sender: TObject);
Var St : String;
Hour, Min, Sec, MSec: Word;
Year,Month,Day : Word;
begin
St := chr($1E);
St := St + chr($01)+chr($00)+chr($1F);
VaComm1.WriteText(St);
end;

procedure TForm1.Button1Click(Sender: TObject);
Var St : String;

begin
Timer1.Enabled := True;
end;

procedure TForm1.VaComm1RxChar(Sender: TObject; Count: Integer);
var St : String;
begin
if Count >= 13 then
Begin
St := Vacomm1.Readtext;
if ord(St[1]) = $1E Then
Begin
Memo1.Lines.Add(Copy(St,6,6));
Edit2.Text := Copy(St,2,4);
if StrToInt(Edit2.Text)= 0 Then Timer1.Enabled := False;
End;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var St : String;
begin
Timer2.Enabled := True;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
memo1.Clear;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
Var St: String;
begin
St := chr($1E);
St := St + chr($01)+chr($00)+chr($1F);
VaComm1.WriteText(St);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
Var St : String;
begin
St := chr($1E);
St := St + chr($02)+chr($00)+chr($20);
VaComm1.WriteText(St);
end;

end.

รบกวนพี่ด้วยนะคับ ผมจะสอบแว้วอ่ะ ขอบคุณมากๆๆคับ Laughing
กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: พ. ธค. 28, 2005 1:53 pm    ชื่อกระทู้: ผมลองเอา code ของพี่มาใช้ดูแต่มันยังบันทึกไม่ได้เลยครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมลองเอา code ของพี่มาใช้ดูแต่มันยังบันทึกไม่ได้ มีปันหาตรงผมดอกจันไว้ จะแก้ยังไงดีครับ

Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" _
(ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long
Private Declare Function mciGetErrorString Lib "winmm.dll" _
Alias "mciGetErrorStringA" _
(ByVal dwError As Long, _
ByVal lpstrBuffer As String, _
ByVal uLength As Long) As Long
Dim RecdTime As Boolean
Private sBits As String
Private sBytes As String
Private sSample As String
Private lSeconds As Long
Private start As Long

-------------------------------
Private Sub Form_Load()
cmdStop.Enabled = False
sBits = "16"
sBytes = "172000"
sSample = "44100"
txtFileName.Text = App.Path & "\Recorded.wav"
End Sub

--------------------------------

Private Function RecordSound(FileName As String) As Boolean
'sound aliased by recsound
cmdRecord.Enabled = False
Dim Result&
Dim errormsg%
Dim ReturnString As String * 1024
Dim ErrorString As String * 1024
Dim mssg As String * 255
Dim i As Long

Result& = mciSendString("open new Type waveaudio Alias recsound", ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("set recsound time format ms bitspersample " & CInt(sBits) & " channels 2 bytespersec 22500 samplespersec " & sSample, ReturnString, 1024, 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("record recsound", ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
RecdTime = True
start = Timer
Do Until Not RecdTime
WaveStatus
DoEvents
Loop
Result& = mciSendString("save recsound " & FileName, ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("close recsound", ReturnString, 1024, 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If

End Function

-------------------------

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub cmdRecord_Click()
If txtFileName <> "" Then
If Dir(txtFileName) <> "" Then
Kill (txtFileName)
End If
cmdStop.Enabled = True
lSeconds = 1
Call RecordSound(txtFileName)
End If
End Sub

-------------------------------

Private Sub cmdStop_Click()
If cmdRecord.Enabled = False Then
RecdTime = False
End If
cmdRecord.Enabled = True
cmdStop.Enabled = False

End Sub

----------------------------

Private Sub Command1_Click()
*********cdg1.ShowSave
txtFileName.Text = cdg1.FileName
End Sub

----------------------------

Private Sub WaveStatus()

Dim mssg As String * 255
Dim i As Long
Dim elapsed As Long
Dim intSec As Integer
Dim sngMin As Single
Dim TotalTime As String

elapsed = Timer - start

If elapsed < 60 Then
TotalTime = "00:" & Format(elapsed, "00")
Else
intSec = elapsed Mod 60
sngMin = elapsed \ 60
TotalTime = Format(sngMin, "00") & ":" & Format(intSec, "00")
End If

lblTime.Caption = TotalTime

i = mciSendString("set recsound time format bytes", 0&, 0, 0)
If i <> 0 Then RecdTime = False

i = mciSendString("status recsound length", mssg, 255, 0)
If i <> 0 Then RecdTime = False

mssg = CStr(CLng(mssg) / 1024)
lblSize.Caption = Format(Str(mssg), "######.00") & " kb"

End Sub
กลับไปข้างบน
kenny
บุคคลทั่วไป





ตอบตอบ: พฤ. ธค. 29, 2005 2:43 pm    ชื่อกระทู้: ไฟล์ .dll เราจะทำไงให้เปิดดู source code ได้ครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมอยากจะศึกษาไฟล์ .dll ไม่รู้วิธีเปิดดู source code ไม่รู้มันต้องมีโปรแกรม convert ไฟล์มัย ใครรู้ช่วยให้ความกระจ่างทีนะครับ
กลับไปข้างบน
เอ็มเอ
บุคคลทั่วไป





ตอบตอบ: พ. มค. 04, 2006 3:36 pm    ชื่อกระทู้: ยังงง ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ใช้เสียงพูดควบคุมให้หุ่นยนต์เคลื่อนที่โดยที่คอมพิวเตอร์กับหุ่นยนต์
นั้นจะไม่ใช้สาย(ไร้สาย) Rolling Eyes เราจะดึงเอาซอฟแวร์ที่รับเสียงพูดมาใช้งานร่วมกับโปรแกรมควบคุมอย่างไรครับ Rolling Eyes Rolling Eyes
กลับไปข้างบน
linux



เข้าร่วมเมื่อ: 13 ธค. 2005
ตอบ: 3

ตอบตอบ: พฤ. มค. 05, 2006 1:08 pm    ชื่อกระทู้: อยากทราบ การเขียนCode vb.6 control pci 8255 ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อยากทราบ การเขียนCode vb.6 control pci 8255 ต้องทำเช่นไรบ้างครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
ฟ้า
บุคคลทั่วไป





ตอบตอบ: ส. มค. 07, 2006 12:10 am    ชื่อกระทู้: อยากทราบเกี่ยวกับการจัดการUSB ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

เมื่อเราเอา เอาแฮนดี้ไดร์เสียบเครื่องคอมเรา โปรแกรมเราจะดีเท็ค ว่าเป็นไดร์อะไร(D:,E:,F:,G:.....) และโปรแกรมเราสามารถ ตัดสัญญาณ USB ได้(แบบตอนที่จะเอาแฮนดีไดร์ออกจากเครื่อง)ค่ะ และสามารถต่อสัญญาณใหม่ได้ ค่ะ
จะเข้าใจไหมค่ะเนี่ย เพราะตอนนี้จนปัญญามากค่ะ Crying or Very sad

ช่วยอธิบายอย่างละเอียดจะดียิ่งค่ะ พี่แมงเม่า Crying or Very sad
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: อาทิตย์ มค. 08, 2006 9:09 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

แมงเม่า บันทึก:
ขอบคุณครับ webmaster
===============
Code of the day: โปรแกรมติดต่อ webcam โดยใช้ VB

ผมทึกทักเอามีหลายคนสงสัยว่า How can I detect webcam and command its?(โดยใช้ VB) ปกติแล้วหลาย ๆ คน คงคิดว่ามันต้องมี component อะไรซักอย่างเพื่อเป็นตัวเชื่อมต่อระหว่างโปรแกรมกับ Hardware(webcam) แน่ละหลาย ๆ คนเขียนโปรแกรมเป็นและมีกล้องแต่ไม่รู้จะไปหา component ตัวนั้นที่ไหนก็เลยติดแหง๊กตามหาคำตอบในเวปบอร์ดต่าง ๆ ........นี่ปัญหาของคุณใช่ไหม
ผมบอกได้ว่าคุณ ๆ คิดมากไปเพราะไมโครซอฟท์ได้คิดปัญหานี้ไว้ก่อนแล้วและก็แก้ให้แล้ว(จริง ๆ ใช้ประโยชน์ด้านอื่นๆมั้ง) และเขียนไว้ในหมวด Windows Multimedia หมู่ Multimedia Messages
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_wm_cap_set_scale.asp

ที่เรานำเอามาใช้ก็คือ
1. messagge ค้นหา driver
2. การจัดการเกี่ยวกับภาพ(preview,scale,WS..)

สรุปคือมันจะหา driver+device บนเครื่องคอมพิวเตอร์เราเอง เมื่อเจอแล้วก็เป็นหน้าที่ของเราที่จะเขียนโปรแกรมดึงภาพมาเก็บและแสดงผล

ทีนี่ก็มาเริ่มเขียนโปรแกรมกันเลย......รับรองได้ผล 100000000 % ผมลองมาแล้วและย้ำว่าไม่มีการเพิ่ม component ไดๆ ทั้งสิ้น(เผื่อมีคนจะถามอีก)




'ดูเหมือน code จะยาวเพราะ font มันสีเหมือนกัน แต่ถ้าคุณเอาไปวางบน VB จะเห็นชัดว่ามันสั้นนิดเดียวเอง......แปลกแต่จริงนะเออ????


Const WM_CAP As Integer = &H400
Const WM_CAP_DRIVER_CONNECT As Long = WM_CAP + 10 'ติดต่อ webcam(โดยหาจาก driver)
Const WM_CAP_DRIVER_DISCONNECT As Long = WM_CAP + 11 'Disconect webcam อันนี้สำคัญทีเดียว
Const WM_CAP_EDIT_COPY As Long = WM_CAP + 30 'Copy ภาพจาก frame buffer นำมาเก็บในรูปของ clipboard เอาไว้ใช้สำหรับ save ภาพนิ่ง(jpg,bmp..)

Const WM_CAP_SET_PREVIEW As Long = WM_CAP + 50 'นำภาพจาก hardware มาเก็บที่ system memory แล้วนำมาแสดงบน window ผ่าน GDI function
Const WM_CAP_SET_PREVIEWRATE As Long = WM_CAP + 52 'Set frame
Const WM_CAP_SET_SCALE As Long = WM_CAP + 53 'ให้ able(True) หรือ disable scale(False) ภาพ
Const WS_CHILD As Long = &H40000000 'Window style จ้า
Const WS_VISIBLE As Long = &H10000000 'Window style จ้า
Const SWP_NOMOVE As Long = &H2
Const SWP_NOSIZE As Integer = 1
Const SWP_NOZORDER As Integer = &H4
Const HWND_BOTTOM As Integer = 1

Dim iDevice As Long ' Device ID ที่รับได้
Dim hHwnd As Long ' Handle to preview window

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean
Private Declare Function capCreateCaptureWindowA Lib "avicap32.dll" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, ByVal hWndParent As Long, ByVal nID As Long) As Long
Private Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Long, ByVal lpszName As String, ByVal cbName As Long, ByVal lpszVer As String, ByVal cbVer As Long) As Boolean

Private Sub Form_Load()
LoadDeviceList 'ก่อนอื่นต้องหาว่ามีกล้อง(webcam)ติดตั้งอยู่หรือไม่

If lstDevices.ListCount > 0 Then
lstDevices.Selected(0) = True 'ถ้ามีก็ OKey เตรียมตัวคลิก start ได้เรยยย มัน enable แล้ว
Else
cmdStart.Enabled = False 'ถ้าไม่มีก็จบ(ห่)
lstDevices.AddItem ("No Device Available")
End If

cmdStop.Enabled = False
cmdSave.Enabled = False
End Sub

Private Sub LoadDeviceList() 'ส่วนนี้ใช้หาว่ามีการติดตั้ง webcam อยู่หรือไม่
Dim strName As String
Dim strVer As String
Dim iReturn As Boolean
Dim x As Long
x = 0
strName = Space(100)
strVer = Space(100)
Do
iReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100) ' โหลด Driver และ version
If iReturn Then lstDevices.AddItem Trim$(strName) ' โหลดชื่อ Device ที่ detect ได้ลงใน lstDevices
x = x + 1
Loop Until iReturn = False
End Sub

Private Sub cmdStart_Click()
iDevice = lstDevices.ListIndex 'โหลด Device(Driver)จาก list.....
OpenPreviewWindow 'ไปดูการทำงานที่โปรแกรมย่อย OpenPreviewWindow
End Sub

Private Sub OpenPreviewWindow() 'เมื่อทุกอย่างพร้อมแล้วก็ลุยเรยยยยย

hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, 480, picCapture.hwnd, 0) 'ให้รับภาพผ่านทาง picture box

If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then 'ติดต่อ webcam

SendMessage hHwnd, WM_CAP_SET_SCALE, True, 0 'ตั้งค่า scale ให้เป็น False เพราะขนาดภาพจริงจะถูก fix ไว้ ถ้าเป็น True ขนาดภาพจะขยายเท่ากับ window preview

SendMessage hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0 'ตั้งค่า preview rate

SendMessage hHwnd, WM_CAP_SET_PREVIEW, True, 0 'ให้เริ่มรับภาพ(True) จาก webcam

cmdSave.Enabled = True
cmdStop.Enabled = True
cmdStart.Enabled = False
Else

DestroyWindow hHwnd 'ถ้ามีข้อผิดพลาดก็ให้ออกจาก window(แบบถูกที่ถูกทาง)

cmdSave.Enabled = False
End If
End Sub

Private Sub ClosePreviewWindow()

SendMessage hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0 'ยกเลิกการติดต่อโดยใช้ message WM_CAP_DRIVER_DISCONNECT ถ้าไม่ออกวิธีนี้ error แน่นอน ลองดูสิ

DestroyWindow hHwnd 'ออกจาก window
End Sub

Private Sub cmdStop_Click()
ClosePreviewWindow
cmdStop.Enabled = False
cmdSave.Enabled = False
cmdStart.Enabled = True
End Sub

หวังว่าจะเอาไปใช้ประโยชน์นทางที่ถูกที่ควรนะครับ Embarassed Embarassed


คือจากตรงนี้ของพี่แมงเม่านะครับ
ผมได้สร้างปุ่ม cmdSave ขึ้นมาตามที่ในโค้ดมันมีมานะครับ
ผมเลยอยากทราบว่าต้องเขียนโค้ดยังไงเพื่อให้เซฟรูปครับ
โดยต้องการให้เซฟเลยโดยไม่ต้องมาถามว่าจะตั้งชื่อไฟล์ว่าอะไรและเก็บไว้ที่ไหน
อยากให้เป็นแบบอัตโนมัติเลยครับเซฟเป็น jpg ได้จะดีมาก
โดยรูปแบบของชื่อไฟล์อยากให้เป็น yyyymmdd-hhmmss.jpg
อย่างเช่น 20060108-090312.jpg คือเซฟด้วยชื่อปีเดือนวันที่ เวลาที่กดปุ่มเซฟครับ
ตรงเวลาถ้าระบุเป็นเสี้ยววินาทีได้จะดีมากเลยครับ
เพราะว่าผมจะนำไปประกอบกับระบบเปิดประตูที่ใช้ FingerPrint ครับ
โดยเมื่อมีการแสกนนิ้วมือแล้วเปิดประตู กล้องที่ติดไว้
จะเซฟภาพผู้ที่เดินเข้าประตูเก็บไว้ด้วยครับ

และอยากถามต่อคือโค้ดนี้สามารถนำเอาไปใช้กับกล้องวงจรปิดได้มั้ยครับ
ผมใช้กับ webcam แล้วสามารถทำงานได้ แต่ถ้าเอาไปใช้กับระบบ
fingerprint จริงๆ ผมคิดว่าจะใช้กล้องวงจรปิดแล้วต่อเข้าคอมผ่านทางการ์ด tv tuner เอา
ไม่ทราบว่าจะได้มั้ยครับ ยังไงรบกวนช่วยตอบข้อสงสัยของผมหน่อยนะครับ
ขอบคุณล่วงหน้าครับผม
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
หนอนไม้
บุคคลทั่วไป





ตอบตอบ: อ. มค. 10, 2006 1:37 pm    ชื่อกระทู้: อยากได้วิธีการเขียน vb6 ส่ง sms ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมทำโปรเจ็คส่ง sms ทางคอม อยากได้วิธีเขียนโปรแกรมจาก vb พี่แม่งเม่าช่วยสอนหน่อย ตอนนี้ผมได้การรับแล้ว อยากได้การส่ง sms ตอบหน่อยนะ ผมจะรอ
From หนอนไม้
กลับไปข้างบน
หนูน้อย
บุคคลทั่วไป





ตอบตอบ: พ. มค. 11, 2006 12:16 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าครับรบกวนถามเรื่อง Data base หน่อยนะครับ คือเราจะเก็บรูปภาพไว้ใน data base ได้ไหมครับ ถ้าได้ทำยังไงครับ data base เป็น Access น่ะครับ รบกวนด้วยครับ
กลับไปข้างบน
นิ้ม



เข้าร่วมเมื่อ: 07 ธค. 2005
ตอบ: 4

ตอบตอบ: พฤ. มค. 12, 2006 7:06 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าครับ
ช่วยบอกวิธีกำหนด timeout ไห้ winsock หน่อยสิครับ

แบบว่า ถ้ามันต่อไปแล้ว มันส่งไปแล้วค้างแบบนี้ ถ้านานเกิน เช่น 15 วิ ก็ไห้มันปิด ได้ไหมครับ

ขอบคุรครับ Laughing
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
บุคคลทั่วไป






ตอบตอบ: ศ. มค. 13, 2006 3:03 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมลองเอา code ชุดนี้ของพี่มาใช้ดู แต่มันก็ยังบันทึกเสียงไม่ได้ เวลากดปุ่ม stop ก็จะฟ้อง
error ว่า a parameter or value was specified twice. Only specified it once
และอีกที่นึงตรง Cdg1.ShowSave ครับ ผมไม่ค่อยรู้เรื่องนี้เท่าไร ช่วยแก้ให้หน่อยนะครับ
ขอบคุณครับ
Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" _
(ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long
Private Declare Function mciGetErrorString Lib "winmm.dll" _
Alias "mciGetErrorStringA" _
(ByVal dwError As Long, _
ByVal lpstrBuffer As String, _
ByVal uLength As Long) As Long
Dim RecdTime As Boolean
Private sBits As String
Private sBytes As String
Private sSample As String
Private lSeconds As Long
Private start As Long

-------------------------------
Private Sub Form_Load()
cmdStop.Enabled = False
sBits = "16"
sBytes = "172000"
sSample = "44100"
txtFileName.Text = App.Path & "\Recorded.wav"
End Sub

--------------------------------

Private Function RecordSound(FileName As String) As Boolean
'sound aliased by recsound
cmdRecord.Enabled = False
Dim Result&
Dim errormsg%
Dim ReturnString As String * 1024
Dim ErrorString As String * 1024
Dim mssg As String * 255
Dim i As Long

Result& = mciSendString("open new Type waveaudio Alias recsound", ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("set recsound time format ms bitspersample " & CInt(sBits) & " channels 2 bytespersec 22500 samplespersec " & sSample, ReturnString, 1024, 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("record recsound", ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
RecdTime = True
start = Timer
Do Until Not RecdTime
WaveStatus
DoEvents
Loop
Result& = mciSendString("save recsound " & FileName, ReturnString, Len(ReturnString), 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If
Result& = mciSendString("close recsound", ReturnString, 1024, 0)
If Not Result& = 0 Then
errormsg% = mciGetErrorString(Result&, ErrorString, 1024)
MsgBox ErrorString, 0, "Error"
End If

End Function

-------------------------

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub cmdRecord_Click()
If txtFileName <> "" Then
If Dir(txtFileName) <> "" Then
Kill (txtFileName)
End If
cmdStop.Enabled = True
lSeconds = 1
Call RecordSound(txtFileName)
End If
End Sub

-------------------------------

Private Sub cmdStop_Click()
If cmdRecord.Enabled = False Then
RecdTime = False
End If
cmdRecord.Enabled = True
cmdStop.Enabled = False

End Sub

----------------------------

Private Sub Command1_Click()
*********cdg1.ShowSave
txtFileName.Text = cdg1.FileName
End Sub

----------------------------

Private Sub WaveStatus()

Dim mssg As String * 255
Dim i As Long
Dim elapsed As Long
Dim intSec As Integer
Dim sngMin As Single
Dim TotalTime As String

elapsed = Timer - start

If elapsed < 60 Then
TotalTime = "00:" & Format(elapsed, "00")
Else
intSec = elapsed Mod 60
sngMin = elapsed \ 60
TotalTime = Format(sngMin, "00") & ":" & Format(intSec, "00")
End If

lblTime.Caption = TotalTime

i = mciSendString("set recsound time format bytes", 0&, 0, 0)
If i <> 0 Then RecdTime = False

i = mciSendString("status recsound length", mssg, 255, 0)
If i <> 0 Then RecdTime = False

mssg = CStr(CLng(mssg) / 1024)
lblSize.Caption = Format(Str(mssg), "######.00") & " kb"

End Sub
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ศ. มค. 13, 2006 5:01 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
HusPlus



ตัวอย่างที่ผมเคยใช้ ตั้งชื่อ

------Form------------
Dim counter as Integer
Private Sub Command2_Click()
dd = Day(Date)
mm = Month(Date)
yy = Year(Date)
Call convert_date(dd, mm, yy)
Text1.Text = Module.c_date & counter & "zip"
counter = counter + 1
End Sub

Sub convert_date(dd, mm, yy)
If Len(mm) < 2 Then
mm = "0" & mm
End If
Select Case mm
Case "01"
mm = "Jan"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "02"
mm = "Feb"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "03"
mm = "Mar"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "04"
mm = "Apr"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "05"
mm = "May"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "06"
mm = "Jun"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "07"
mm = "Jul"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "08"
mm = "Aug"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "09"
mm = "Sep"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "10"
mm = "Oct"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "11"
mm = "Nov"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
Case "12"
mm = "Dec"
Modulezip.c_date = dd & "-" & mm & "-" & Right(yy, 2)
End Select
End Sub

ถ้าต้องการแบบของคุณก็เปลี่ยน format ได้

---------Module--------

Public c_date As String
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ศ. มค. 13, 2006 5:10 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
พี่แมงเม่าครับ
ช่วยบอกวิธีกำหนด timeout ไห้ winsock หน่อยสิครับ

แบบว่า ถ้ามันต่อไปแล้ว มันส่งไปแล้วค้างแบบนี้ ถ้านานเกิน เช่น 15 วิ ก็ไห้มันปิด ได้ไหมครับ


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
Winsock1.GetData Data
If Data = "READY" Then
Call sub15sec
End If
End Sub

Sub sub15sec()
นับไป 15 วิ
Winsock1.Close
End Sub
กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: ศ. มค. 13, 2006 5:15 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
แบบว่า ถ้ามันต่อไปแล้ว มันส่งไปแล้วค้างแบบนี้ ถ้านานเกิน เช่น 15 วิ ก็ไห้มันปิด ได้ไหมครับ


โทษทีงานเยอะมึนเรยยยยย สลับกันซะนี่

1. Check data arrive โดยเรียกโปรแกรมย่อยนับ 15 วิ(อาจจะส่ง data หลอกมาก่อน)
2. ถ้า 15 วิแล้วยังไม่มีข้อมูลส่งมาให้ Winsock1.Close
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ศ. มค. 13, 2006 5:26 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ผมลองเอา code ชุดนี้ของพี่มาใช้ดู แต่มันก็ยังบันทึกเสียงไม่ได้ เวลากดปุ่ม stop ก็จะฟ้อง
error ว่า a parameter or value was specified twice. Only specified it once
และอีกที่นึงตรง Cdg1.ShowSave ครับ ผมไม่ค่อยรู้เรื่องนี้เท่าไร ช่วยแก้ให้หน่อยนะครับ
ขอบคุณครับ


ไม่ค่อยจะว่างเลย ทิ้งเมลไว้จะส่งไป code ให้
กลับไปข้างบน
นิคเทค
บุคคลทั่วไป





ตอบตอบ: ศ. มค. 13, 2006 6:08 pm    ชื่อกระทู้: การใช้vb ควบคุมหลอด LED จาก Printer Port ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าครับ ผมอยากทราบวิธีการเขียนโปรแกรมโดย การใช้vb ควบคุมหลอด LED จาก Printer Port เพื่อเป็นโปรเจคเรียนจบจึงอยากทราบโค๊ดและการทำงานดังนี้
1. การตั้งเวลาจากคอมฯให้สามารถควบคุมเวลาการเปิดปิดไฟได้ไม่ว่าจะเป็นช่วงเวลาใดสามารถตั้งเวลาได้เช่น อยากให้เปิด 14.00 น. โดยสั่งตอน 08.00 น.ได้ และให้เปิดให้กี่นาที และควบคุมแต่ละพอร์ตได้ครับ(หลอด LED) =เช่น หลอดที่ 1 กับ กับหลอดที่ 4 นอกนั้นไม่ทำงาน
2.การรับคำสั่งจากสวิตส์ ควบคุมหลอด LED ส่งให้คอมฯ แยกกันเป็นอิสระ
3.การควบคุมไฟจากตัวคอมพิวเตอร์ส่งให้กับ หลอดไฟ LED ทั้ง 8 หลอด โดยสามารถกำหนดว่าต้องการให้หลอดใดสว่างได้ เช่นหลอดที่ 1 กับหลอดที่ 5 สว่าง นอกนั้นดับ
โดยการเปิดปิดไฟที่หลอดแยกกันโดยอิสระ


ขอรบกวนด้วยนะครับ อีเมล์ครับ parapata@hotmail.com ถ้าได้ส่งให้หน่อยนะครับ Very Happy
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ส. มค. 14, 2006 8:26 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
1. การตั้งเวลาจากคอมฯให้สามารถควบคุมเวลาการเปิดปิดไฟได้ไม่ว่าจะเป็นช่วงเวลาใดสามารถตั้งเวลาได้เช่น อยากให้เปิด 14.00 น. โดยสั่งตอน 08.00 น.ได้ และให้เปิดให้กี่นาที และควบคุมแต่ละพอร์ตได้ครับ(หลอด LED) =เช่น หลอดที่ 1 กับ กับหลอดที่ 4 นอกนั้นไม่ทำงาน
2.การรับคำสั่งจากสวิตส์ ควบคุมหลอด LED ส่งให้คอมฯ แยกกันเป็นอิสระ
3.การควบคุมไฟจากตัวคอมพิวเตอร์ส่งให้กับ หลอดไฟ LED ทั้ง 8 หลอด โดยสามารถกำหนดว่าต้องการให้หลอดใดสว่างได้ เช่นหลอดที่ 1 กับหลอดที่ 5 สว่าง นอกนั้นดับ
โดยการเปิดปิดไฟที่หลอดแยกกันโดยอิสระ


1. ใช้การตั้งเวลานะครับ จะให้ดีให้ไป add คิวเวลาที่ Data base

Code นี้ใช้ตั้งเวลา

http://thaiio.com/forum/viewtopic.php?t=1315&postdays=0&postorder=asc&start=60

2. ใช้สวิตซ์รับค่าผ่านปริ้นเตอร์พอร์ต

http://thaiio.com/forum/viewtopic.php?t=1315&postdays=0&postorder=asc&start=75

3. ผ่านค่าสู่ปริ้นเตอร์พอร์ตแล้วใช้ตรรกะ AND check output ที่พอร์ต

หัวข้อที่ 3 post ไปแล้วลองหาดูทีละหน้านะ
กลับไปข้างบน
Nea!!



เข้าร่วมเมื่อ: 01 พย. 2005
ตอบ: 15

ตอบตอบ: ส. มค. 14, 2006 10:26 pm    ชื่อกระทู้: พี่แม่งเมา ดูไห้ที ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ในลิงค์นี้ เป็นการ ใช้SMS ติดต่อกับฐานข้อมูลอะครับ ผมอยากได้ ซอดโคดในการเขียนครับช่วย โพสไห้หน่อยนะครับ


http://www.thaiware.com/main/info.php?id=2205
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
saintjid



เข้าร่วมเมื่อ: 14 มค. 2006
ตอบ: 1

ตอบตอบ: ส. มค. 14, 2006 11:06 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คือผมจะลองทำโปรแกรมจับเกมส์ออนไลน์ อย่างโปรแกรม wpe ตอนนี้ผมสามารถหาโปรแกรมที่ run อยู่ แล้วหา ProcessID ได้แล้ว แต่ผมไม่เข้าใจหลักการ injection ไฟล์ dll มันหมายความว่าอย่างไรแล้วเราจะใช้ winsock ในการรับส่ง packet ให้กับตัวเกมส์อย่างไร

รบกวนผุ้รู้ช่วยแนะนำด้วยครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ มค. 15, 2006 7:24 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ในลิงค์นี้ เป็นการ ใช้SMS ติดต่อกับฐานข้อมูลอะครับ ผมอยากได้ ซอดโคดในการเขียนครับช่วย โพสไห้หน่อยนะครับ



การส่ง SMS ผ่าน ICQ

1. สร้าง text ชื่อ user.Text, pass.Text เพื่อรับค่าหมายเลข ICQ และ password
2. สร้าง text ชื่อ prefix.Text, number.Text เพื่อรับค่ารหัสประเทศ+หมายเลขเครือข่าย เช่นไทยคือ 66 และหมายเลขปลายทาง
เช่นป้อน 6601-5555555
3. Add Inet control
4. Code
Private Sub Command1_Click()

'4.1 เปิดรับค่า log in log in
Inet1.OpenURL "http://web.icq.com/karma/dologin/1,,,00.html?uService=1&uLogin=" + user.Text + "&uPassword=" + pass.Text
'4.2 ส่ง message ผ่านทางเบอร์ปลายทาง เช่น66(01)5555555 (66=country code, 01=เครือข่าย code, 5555555=เบอร์โทร)
Inet1.OpenURL "http://web.icq.com/sms/send_history/1,,,00.html?target=msghistory&prefix=+" + prefix.Text + "&carrier=aaa&tophone=" + number.Text + "&msg=" + msg.Text

End Sub

Note: ผมจำลองมาจากการส่ง SMS ผ่านโปรแกรม ICQ จริงๆ เพื่อความชัวว์ผมทดลองส่งผ่านโปรแกรม ICQ แต่ว่าส่งไม่ได้ ติด error



ผมไม่รู้ว่าเป็นเพราะเครื่องผมหรือเปล่า แต่ถ้าคุณส่งผ่านโปรแกรม ICQ ได้ Code นี้ส่งได้แน่นอนครับ

ผมทำไว้เมื่อปีก่อน แต่มันไม่ work

กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: อาทิตย์ มค. 15, 2006 12:43 pm    ชื่อกระทู้: คนที่ขอ code record sound ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ทิ้งเมลไว้จะส่งไป code ให้

eclipsegsx13@hotmail.com ขอบคุณมากครับพี่
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ มค. 15, 2006 2:34 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
eclipsegsx13@hotmail.com ขอบคุณมากครับพี่


ส่งไปให้แล้ว
กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: อ. มค. 17, 2006 2:08 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมได้โปรแกรมแล้ว ขอบคุณมากครับพี่แมงเม่า แต่เวลาอัดเสียงแล้วกดปุ่ม Stop มันยังฟ้องerror ว่า a parameter or value was specified twice. Only specified it once
เหมือนเดิมเลยครับ ไม่ทราบว่าตอนรันโปรแกรม พี่เป็นเหมือนผมหรือเปล่า ผมควรจะแก้อะไรตรงไหนรบกวนพี่ช่วยดูให้หน่อยนะครับ....ขอบคุณครับ

eclipsegsx13@hotmail.com
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. มค. 18, 2006 10:37 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ตอนเปิดโปรแกรมครั้งแรกมันจะ default ชื่อว่า record.wav ดังนั้นถ้ากด save อีกครั้งชื่อมันก็จะซ้ำกัน ก็จะฟ้องว่ามีไฟล์นี้แล้ว
กลับไปข้างบน
linux



เข้าร่วมเมื่อ: 13 ธค. 2005
ตอบ: 3

ตอบตอบ: พฤ. มค. 19, 2006 11:12 am    ชื่อกระทู้: ผมอยากทราบการดึงขอมูลมาออกเป็นกราฟน่ะคับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พอดีผมอยาให้Fromมันสามารถดึงข้อมูลจา database มาออกเป็นกราฟโดยเราสามารถเลือกช่วงเวลานั้นๆได้อ่ะคับ เอาแบบสามารถเลือกได้ว่าเป็นแบบ แท่ง /เส้น อะไรประมาณนี้คับ พอมีตัวอย่างหรือ ลิงค์ดีๆแนะนำไหมคับ ขอบคุณมากๆคับพี่.......
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
นิ้ม



เข้าร่วมเมื่อ: 07 ธค. 2005
ตอบ: 4

ตอบตอบ: พฤ. มค. 19, 2006 8:20 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าครับ
พี่พอมีโค้ดหรือเขียนโปรแกรม ดัก packets เป็นไหมครับผม
คือผมอยากรู้วิธีการเขียนโปรแรกมดัก packets ระหว่างฝั่งเว็บเซิพเวอร์กับคอมเราอ่าครับผม พอมีไหมครับ

ถ้ามีช่วยแนะนำด้วยน้ะครับ ขอบคุณมากๆครับ Very Happy
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
Trick
บุคคลทั่วไป





ตอบตอบ: ส. มค. 21, 2006 2:49 pm    ชื่อกระทู้: ช่วยด้วย ช่วยที ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คือผมกำลังทำโปรแกรมแจ้งเตือน Client User อยู่ครับ มันจะคล้าย ๆ กับโปรแกรม Chat แต่ User ไม่สามารถตอบกับได้ ผมทำให้มันติดต่อกับ User ได้แล้วแต่มันติดต่อได้เครื่องเดียวไม่รู้จะทำยังง้ยให้มันติดต่อได้พร้อมกันหลาย ๆ เครื่อง ใครช่วยผมได้ช่วยที่ครับ
Mail : jetbodin@yahoo.com
Tol : 066425598
ช่วยด้วยนะครับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ส. มค. 21, 2006 3:25 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
พอดีผมอยาให้Fromมันสามารถดึงข้อมูลจา database มาออกเป็นกราฟโดยเราสามารถเลือกช่วงเวลานั้นๆได้อ่ะคับ เอาแบบสามารถเลือกได้ว่าเป็นแบบ แท่ง /เส้น อะไรประมาณนี้คับ พอมีตัวอย่างหรือ ลิงค์ดีๆแนะนำไหมคับ ขอบคุณมากๆคับพี่.......


รอวันจันทร์...
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ส. มค. 21, 2006 3:37 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
คือผมกำลังทำโปรแกรมแจ้งเตือน Client User อยู่ครับ มันจะคล้าย ๆ กับโปรแกรม Chat แต่ User ไม่สามารถตอบกับได้ ผมทำให้มันติดต่อกับ User ได้แล้วแต่มันติดต่อได้เครื่องเดียวไม่รู้จะทำยังง้ยให้มันติดต่อได้พร้อมกันหลาย ๆ เครื่อง ใครช่วยผมได้ช่วยที่ครับ


1. ใช้ array winsock
2. กำหนดพอร์ตให้ต่างกัน
กลับไปข้างบน
Nea!!



เข้าร่วมเมื่อ: 01 พย. 2005
ตอบ: 15

ตอบตอบ: จ. มค. 23, 2006 4:16 pm    ชื่อกระทู้: ดูไห้หน่อยคับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Dim newrecord As Boolean

Private Sub Label6_Click() 'Add
newrecord = ture
Data1.Recordset.AddNew
End Sub

Private Sub Data1_Reposition()
Dim curentrecord As Long, numberofrecord As Long
Dim datacaption As String, status As Boolean
If newrecord = True Then
datacaption = "newrecord"
status = False
Else
currentrecord = Str(Data1.Recordset.AbsolutePosition + 1)
numberofrecord = Str(Data1.Recordset.RecordCount)
datacaption = "Record:" & currentrecord & "/" & numberofrecord
status = True
End If
With Data1
.Caption = datacaption
.Enabled = status
End With
End Sub

Private Sub Label8_Click() 'update
With Data1.Recordset
If Not newrecord Then .Edit
.Update
newrecord = False
.Bookmark = .LastModified
End With
End Sub

Private Sub Label9_Click() 'del
If MsgBox("Are you Sure you Want to Delete", vbYesNo) = vbYes Then
With Data1.Recordset
.Delete
.MoveNext
If .EOF = True Then .MoveLast
End With
End If
End Sub

------------------------------------------------------------------------------------------------------

ผมทำ VB ติดต่อกับ Access ไม่ได้อะคับเวลารันแล้วมันดีบัค คือมี ปุ้ม Add Update Delete แค่นั้นอะคับ ไม่ทราบว่า โคด ผิดตรงไหนรึปร่าวดูไห้หน่อยคับ พี่แม่งเมา ขอบคุณมากคับ..
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: จ. มค. 23, 2006 8:32 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

เมื่อวันอาทิตย์ที่ผ่านมาได้ไปจัดงานวันเด็กให้น้อง ๆ ที่โรงเรียนตำรวจตระเวนชายแดนที่แม่แจ่มก็เลยขอเอารูปมาลง

ออกจากหอพักบริษัท


พักเติมพลังที่ปตท.แม่แจ่ม



ถึงซะที



ทั้งโรเรียนก็มีอยู่แค่นี้แหละ



ได้เวลาหม่ำ



แม่งานที่แสนดี



แกล้งน้อง



ธิดาดอย



บ้องแบ๊ว



Cool Cool
กลับไปข้างบน
piggyครับ
บุคคลทั่วไป





ตอบตอบ: พฤ. มค. 26, 2006 7:12 pm    ชื่อกระทู้: ใช้VBติดต่อODBCยังไงครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมต้องการใช้Comboboxเพื่อเรียกดูข้อมูลทั้งหมดผ่านODBCที่เขียนโดยMySQLครับ
ผมใช้DbDataเป็นตัวเรียกข้อมูลแต่ในช่องconnectมันไม่มีSQLครับไม่ทราบว่าจะดึงข้อมูลยังไงครับ(Accessมันใช้ได้นะครับ)จะใช่objectตัวใหนครับ
กลับไปข้างบน
komate



เข้าร่วมเมื่อ: 01 พค. 2004
ตอบ: 4

ตอบตอบ: อาทิตย์ มค. 29, 2006 7:17 pm    ชื่อกระทู้: remote ควบคุมแทนคีย์บอร์ด ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คือรับทางrs232 ได้มาแล้วเป็นเลข2ตัว จะทำอย่างไรครับให้มันทำงานแทนคีย์บอร์ด
และรันตลอดเวลาแม้จะเปิดโปรแกรมอื่นอย่างงัยครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์ MSN
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ มค. 29, 2006 9:59 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

แนะนำเวปฟังเพลง online ขอผ่าน MSN

http://www.sawasdeejj.com/

ถ้าใครไม่เข้าไม่ต้องตอบคำถามให้(DJ เค้า requestมา)
กลับไปข้างบน
parapata



เข้าร่วมเมื่อ: 13 มค. 2006
ตอบ: 2

ตอบตอบ: จ. มค. 30, 2006 3:52 pm    ชื่อกระทู้: ขอโค๊ด vb ควบคุม portprinter คุมไฟ led ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่ครับครั้งที่แนะนำผมครั้งนั้น ผมนำโค๊ดที่แนะนำไป แก้ไขใช้ได้ครับ แต่ผมก็ยังติดที่หนึ่งครับเป็นส่วนของสวิตซ์ครับ คือว่า
เมื่อ กดสวิตซ์ไฟแล้ว ไฟที่หลอด LED มันติด แต่ถ้าหากปล่อยก็จะดับ และถ้าหากกดสวิตซ์พร้อมกันหลายตัว ไฟที่หลอด LED มันก็จะไม่ติด ไม่รู้จะทำยังไงครับเพื่อที่จะทำให้ เวลาที่กดสวิตซ์ลงไปแล้วไฟที่หลอด LED จะติด และเวลาปล่อยก็ยังติด แต่ถ้าหากเรากดที่สวิตซ์ตัวเดิมหลอดไฟก็จะดับ และที่สำคัญคับ จะทำยังไงให้หลอดแต่ละตัวแยกการทำงานกันเป็นอิสระ ไม่ว่าจะกดสวิตซ์ที่ 1 ติด ที่ 3 ติด และที่ 4 ติด และเวลากดปิด หลอดที่ 3 ดับ หลอดที่4 ดับ เป็นต้นคับ
ช่วยหาให้ผมที่นะครับ ขอบคุมครับพี่แมงเม่า
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: จ. มค. 30, 2006 10:01 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

รบกวนพี่แมงเม่าอีกรอบครับ
จากคำถามที่ผมถามไว้ในความเห็นที่ http://thaiio.com/forum/viewtopic.php?p=3313#3313
และที่พี่ช่วยเข้ามาตอบ http://thaiio.com/forum/viewtopic.php?p=3338#3338
ตอนนี้ผมพอจะเข้าใจเกี่ยวกับการตั้งชื่อเป็นวันที่แล้ว

ที่ยังไม่เข้าใจคือ
1. การเซฟรูปภาพครับ ต้องใช้คำสั่งอะไรถึงจะเซฟรูปภาพได้
เพราะจากที่ผมเอาโค้ดของพี่ไปลอง ปรากฏว่าไม่มีส่วนคำสั่งการเซฟรูป
แต่มีปุ่มสำหรับเซฟไว้ด้วย
2. การเซฟที่เอาเวลาที่เซฟมาเป็นชื่อไฟล์ใช้หลักการเดียวกับ
คำตอบที่พี่มาตอบไว้รึป่าวครับ ช่วยอธิบายที

รบกวนพี่ช่วยตอบคำถามผมอีกซักรอบนะครับ
ขอบคุณมากครับผม
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. มค. 31, 2006 1:35 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
กดสวิตซ์ลงไปแล้วไฟที่หลอด LED จะติด และเวลาปล่อยก็ยังติด แต่ถ้าหากเรากดที่สวิตซ์ตัวเดิมหลอดไฟก็จะดับ


1. กำหนดให้ caption ของปุ่มกดเป็น "ON" และ "OFF" ให้เปลี่ยนสลับกันทุกครั้งที่มีการกด เช่น

Static i As Integer
i = i + 1
i = i Mod 2
With Cmd1
If i <> 0 Then
.Caption = "ON"
Else
.Caption = "OFF"
End If

แล้ว select case ของ caption
เช่นถ้า "ON" ให้ out 01 และ "OFF" ให้ out 00

คำพูด:
และที่สำคัญคับ จะทำยังไงให้หลอดแต่ละตัวแยกการทำงานกันเป็นอิสระ ไม่ว่าจะกดสวิตซ์ที่ 1 ติด ที่ 3 ติด และที่ 4 ติด และเวลากดปิด หลอดที่ 3 ดับ หลอดที่4 ดับ เป็นต้นคับ


2. ใช้ตรรกะ AND เพื่อเปรียบเทียบ output

ให้เอา output มาเปรียบเทียบบิตต่อบิต

Bit1 = Inp(PortAddress) And &H1
Bit2 = Inp(PortAddress) And &H2
Bit3 = Inp(PortAddress) And &H4
Bit4 = Inp(PortAddress) And &H8

เมื่อมา And กันแล้วค่าที่ได้ก็จะไม่มีผลกับ output อื่น ๆ

If Bit1 = &H1 Then
led0.BackColor = vbRed
Else
led0.BackColor = vbWhite
End If
'++++++++++++++++++
If Bit2 = &H2 Then
led1.BackColor = vbRed
Else
led1.BackColor = vbWhite
End If
'++++++++++++++++++
If Bit3 = &H4 Then
led2.BackColor = vbRed
Else
led2.BackColor = vbWhite
End If
'++++++++++++++++++
If Bit4 = &H8 Then
led3.BackColor = vbRed
Else
led3.BackColor = vbWhite
End If
กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: อ. มค. 31, 2006 1:40 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
1. การเซฟรูปภาพครับ ต้องใช้คำสั่งอะไรถึงจะเซฟรูปภาพได้
เพราะจากที่ผมเอาโค้ดของพี่ไปลอง ปรากฏว่าไม่มีส่วนคำสั่งการเซฟรูป
แต่มีปุ่มสำหรับเซฟไว้ด้วย


SavePicture imgsrc.Picture, SystemDirectory & "\Pic_name.jpg"
คำพูด:


คำพูด:
2. การเซฟที่เอาเวลาที่เซฟมาเป็นชื่อไฟล์ใช้หลักการเดียวกับ
คำตอบที่พี่มาตอบไว้รึป่าวครับ ช่วยอธิบายที"


ใช่แล้ว
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. มค. 31, 2006 1:43 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Save ใน Location เดียวกับ Project

SavePicture imgsrc.Picture, App.path & "\Pic_name" & counter & ".jpg"
กลับไปข้างบน
birdcom13
บุคคลทั่วไป





ตอบตอบ: อ. มค. 31, 2006 7:51 pm    ชื่อกระทู้: ถามเรื่อง Data Report โชว์กระดาษ A4 ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

:wink: ผมทำเรื่องระบบ Barcode ห้องสมุด โปรเจ็คนะครับ
ให้ทำ barcode output หลายตัวๆนะครับ
ขอขอบคุณล่วงหน้านะครับ :oops:
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: ส. กพ. 04, 2006 6:57 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ต้องกลับมาอีกรอบครับ
คือผมตามที่พี่แนะนำนะครับ
โดยเขียนโค้ดแบบนี้

คำพูด:
Private Sub cmdSave_Click()
SavePicture imgsrc.Picture, App.path & "\Pic_name" & counter & ".jpg"
Counter = Counter + 1
End Sub


แรากฏว่าไม่ได้เลยลองแบบนี้ดู

คำพูด:
Private Sub cmdSave_Click()
Dim bm As Image
SendMessage hHwnd, WM_CAP_EDIT_COPY, 0, 0
ClosePreviewWindow
picCapture.Picture = Clipboard.GetData
CommonDialog1.CancelError = True
CommonDialog1.FileName = "Webcam1"
CommonDialog1.Filter = "Bitmap |*.bmp|JPEG |*.jpeg"
On Error GoTo NoSave
CommonDialog1.ShowSave
SavePicture picCapture.Image, CommonDialog1.FileName
NoSave:
cmdStop.Enabled = False
cmdSave.Enabled = False
cmdStart.Enabled = True
End Sub


ก็ไม่ได้อีกเช่นกัน
พี่ๆ ช่วยดูโค้ดให้ผมหน่อยนะครับ
ผมไม่ค่อยมีความรู้ด้านเขียนโปรแกรมซักเท่าไหร่
รบกวนพี่ๆ แนะนำให้ทีนะครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ส. กพ. 04, 2006 11:40 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

น้องติดต่อกล้องได้รึเปล่า ถ้าได้ ทั้ง 2 วิธีก็ใช้ได้
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: ส. กพ. 04, 2006 9:03 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมติดต่อกล้องได้ครับพี่
กดปุ่ม Start ภาพก้อมา
กด Stop ภาพก้อหาย
แต่กดปุ่มเซฟแล้ว debug ขึ้นทุกที
เด่วผมเอาโค้ดที่ผมทำให้ดูนะครับ

คำพูด:
Const WM_CAP As Integer = &H400
Const WM_CAP_DRIVER_CONNECT As Long = WM_CAP + 10
Const WM_CAP_DRIVER_DISCONNECT As Long = WM_CAP + 11
Const WM_CAP_EDIT_COPY As Long = WM_CAP + 30

Const WM_CAP_SET_PREVIEW As Long = WM_CAP + 50
Const WM_CAP_SET_PREVIEWRATE As Long = WM_CAP + 52
Const WM_CAP_SET_SCALE As Long = WM_CAP + 53
Const WS_CHILD As Long = &H40000000
Const WS_VISIBLE As Long = &H10000000
Const SWP_NOMOVE As Long = &H2
Const SWP_NOSIZE As Integer = 1
Const SWP_NOZORDER As Integer = &H4
Const HWND_BOTTOM As Integer = 1

Dim iDevice As Long ' Device ID
Dim hHwnd As Long ' Handle to preview window

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean
Private Declare Function capCreateCaptureWindowA Lib "avicap32.dll" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, ByVal hWndParent As Long, ByVal nID As Long) As Long
Private Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Long, ByVal lpszName As String, ByVal cbName As Long, ByVal lpszVer As String, ByVal cbVer As Long) As Boolean

Private Sub Form_Load()
LoadDeviceList

If lstDevices.ListCount > 0 Then
lstDevices.Selected(0) = True
Else
cmdStart.Enabled = False
lstDevices.AddItem ("No Device Available")
End If

cmdStop.Enabled = False
cmdSave.Enabled = False
End Sub

Private Sub LoadDeviceList()
Dim strName As String
Dim strVer As String
Dim iReturn As Boolean
Dim x As Long
x = 0
strName = Space(100)
strVer = Space(100)
Do
iReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100)
If iReturn Then lstDevices.AddItem Trim$(strName)
x = x + 1
Loop Until iReturn = False
End Sub

Private Sub cmdStart_Click()
iDevice = lstDevices.ListIndex
OpenPreviewWindow OpenPreviewWindow
End Sub

Private Sub OpenPreviewWindow()

hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 320, 240, picCapture.hwnd, 0)

If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then

SendMessage hHwnd, WM_CAP_SET_SCALE, True, 0
SendMessage hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0

SendMessage hHwnd, WM_CAP_SET_PREVIEW, True, 0

cmdSave.Enabled = True
cmdStop.Enabled = True
cmdStart.Enabled = False
Else

DestroyWindow hHwnd
cmdSave.Enabled = False
End If
End Sub

Private Sub ClosePreviewWindow()

SendMessage hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0
DestroyWindow hHwnd 'ÍÍ¡¨Ò¡ window
End Sub

Private Sub cmdStop_Click()
ClosePreviewWindow
cmdStop.Enabled = False
cmdSave.Enabled = False
cmdStart.Enabled = True
End Sub

Private Sub cmdSave_Click()
ส่วนนี้คือที่ทดลองใส่โค้ดแล้วมันไม่ได้ครับ
End Sub
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ กพ. 05, 2006 8:28 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

งั้นก็แบบนี้

1. ใช้ Timer ส่งภาพจาก picCapture.Picture มาที่ PicSave.Picture แล้วให้ save ทุก 100 mS

2. ใน sub timmer ให้ใช้ code นี้

PicSave.Picture = picCapture.Picture
DoEvents
SavePicture PicSave.Picture, App.path & "\Pic_name" & counter & ".jpg"
Counter = Counter + 1

แบบนี้น่าจะได้
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ กพ. 05, 2006 3:22 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

วันอาทิตย์สบายๆ ก็อยากงดเรื่องปวดหัว เอาเรื่องแปลก ๆมาให้อ่านเล่น

The Mike the Headless Chicken Days(17 พฤษภา, วัน MIke ไก่ไร้หัว)



นี่คือเรื่องจริง! ไก่ไม่มีหัวแต่ใช้ชีวิตได้นานถึง 18 เดือน!
ไก่ตัวนี้มีชื่อว่า ไมค์(Mike) ครับ.

เรื่องมันมีอยู่ว่าเจ้าของฟาร์มคิดจะทำไก่ย่างในวันขอบคุณพระเจ้า เลยเลือกเจ้าไมค์จะมาทำไก่ย่าง ซึ่งในตอนที่เอาขวานฟันลงไปที่คอของเจ้าไมค์(อึ๋ย)หัวของมันขาดลงมาสงบนิ่งอยู่ที่พื้น แต่ตัวมันน่ะซิครับมันกลับกระโดดลงมาจากเขียงแล้ววิ่งพล่านไปทั่ว เล้าจนหายไปไหนก็ไม่รู้ เลยต้องเอาไก่อีกตัวมาทำ ในวันรุ่งขึ้นเจ้าของกลับว่าเจ้าไมค์กลับมาอยู่เล้าทั้งๆที่ไม่มีหัว แล้วยังทำท่าคุ้ยเขี่ยหาอาหารเหมือนกับไก่ทั่วๆไปผิดแต่ว่ามันไม่มีหัวเท่านั้นเอง! เจ้าของเลยสงสัยว่ามันอยู่ไปได้อีกนานเท่าไหร่ก็เลยเลี้ยงไปเรื่อยๆ โดยให้อาหารด้วยที่หยอดตาผ่านทางหลอดอาหาร แน่ละครับเรื่องนี้ไปเข้าหูพวกสื่อมวลชนโดยนิตรสารTIME มาขอทำเรื่องนี้ทำให้เจ้าไมค์ดังเป็นพลุแตกเลย ยังผลทำให้มีคนเลียนแบบทั่วประเทศก็เลยทำให้ทุกบ้านมีไก่ย่างกินเป็นอาหารเย็นกันทุกวันแต่ก็ไม่มีใครทำได้สำเร็จ และในช่วงสุดท้ายของชีวิตของไมค์ตายโดยเมล็ดข้าวโพดเข้าไปติดหลอดลมตายซึ่งนับจากวันที่หัวขาดจนวันตายนับได้ประมาณ 18 เดือนพอดี

พอเจ้าไมค์ตายเจ้าของก็เสียใจมากเลยจัดตั้งวัน ”ไมค์ไก่ไร้หัว (Mike the headless Chicken Day)” ขึ้นมาทุกๆปี เดี๋ยวนี้ก็ยังมีอยู่จนถึงปัจจุบัน


ฟังดูมันจะเป็นไปได้อย่างไรแต่วิทยาศาสตร์เค้าก็อธิบายเอาไว้ด้วยครับว่า
"So how was Mike able to survive? Scientists examined him and determined that Mr. Olsen had not done a very good job at chopping Mike's head off. Most of the head was actually removed, but one ear remained intact. The slice actually missed the jugular vein and a clot prevented him from bleeding to death. Apparently, most of a chicken's reflex actions are located in the brain stem, which was also largely untouched. Mike was also examined by the officers of several humane societies and was declared to have been free from suffering."

แปลกจริง ๆ เรยยยย

Laughing Laughing
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: อาทิตย์ กพ. 05, 2006 5:05 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่คับผมทำให้เซฟได้แล้วครับ
ใช้โค้ดนี้ครับ

คำพูด:
Private Sub cmdSave_Click()
cmdStart.Enabled = False
Dim bm As Image
SendMessage hHwnd, WM_CAP_EDIT_COPY, 0, 0
picCapture.Picture = Clipboard.GetData
SavePicture picCapture.Image, App.Path & "\Pic_name" & Counter & ".jpg"
Counter = Counter + 1
End Sub


แต่ยังมีอยู่จุดนึงคือ
เวลาเซฟภาพมันเซฟภาพชื่อ Pic_name.jpg อย่างเดียวครับ
ไม่ยอมเซฟตาม Counter เราต้องแก้ไขยังไงครับพี่

ผมกะว่าเดี๋ยวพอมันเซฟแล้วเพิ่มเรื่อยๆ ได้แล้ว
จะทดลองเขียนให้มันเซฟด้วยชื่อวันที่และเวลาที่เซฟตามที่พี่สอน
ยังไงรบกวนพี่ช่วยเป็นที่ปรึกษาผมหน่อยนะค๊าบ ^ ^
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ กพ. 05, 2006 5:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ถามมาก ๆจะทำให้น้องเสียความมั่นใจนะ

Dim counter As Integer

Private Sub cmdSave_Click()

SendMessage hHwnd, WM_CAP_EDIT_COPY, 0, 0
picCapture.Picture = Clipboard.GetData
SavePicture picCapture.Image, App.Path & "\Pic_name" & counter & ".jpg"
counter = counter + 1

End Sub

ข้อระวัง
เนื่องจากกำหนดให้ตัวแปร counter เป็น integer ดังนั้นการโหลดโปรแกรมใหม่แต่ละครั้ง counter เริ่มแรกจะมีค่าเป็น 0 ซึ่งจะทำให้ชื่อใหม่ไปซ้ำกับชื่อเก่า ถ้าไม่ต้องการให้ซ้ำต้องใช้วันที่และ/หรือเวลามาตั้งชื่อร่วมด้วย ส่วนการตั้งชื่อไม่น่ายาก ลองผิดลองถูกเองน่าจะได้ครับ

Idea Idea
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: อาทิตย์ กพ. 05, 2006 6:20 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Very Happy ไม่เสียความมั่นใจหรอกครับ
ถ้าจะให้พูดตรงๆ ผมไม่มีความรู้ด้านการเขียนโปรแกรมเลย
ได้แต่ลองผิดลองถูกเอา เพื่อนสอนมั่ง มั่วเองมั่ง
แต่ตอนนี้ผมมั่วการเซ็ทชื่อที่เซฟเป็นวันที่ได้ละครับ

คำพูด:
cmdStart.Enabled = False
Dim bm As Image
SendMessage hHwnd, WM_CAP_EDIT_COPY, 0, 0
picCapture.Picture = Clipboard.GetData
Dim Fname As String
dd = Day(Date)
mm = Month(Date)
yy = Year(Date)
hh = Hour(Time)
mn = Minute(Time)
ss = Second(Time)
Fname = "Date" & yy & "-" & mm & "-" & dd & "Time" & hh & "." & mn & "." & ss
SavePicture picCapture.Image, App.Path & "\Image\" & Fname & ".jpg"


แต่ถ้าผมต้องการให้เวลาที่กดปุ่มเซฟแค่ครั้งเดียว
อยากให้เซฟภาพออกมา 3 ภาพเลย เราต้องทำยังไงมั่งครับพี่
รบกวนพี่อีกรอบนะครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: อาทิตย์ กพ. 05, 2006 6:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ลองใช้ Loop ครับแต่ไม่เป็นผล
เซฟได้แต่ออกมารูปเดียว

คำพูด:
Private Sub cmdSave_Click()
Dim i As Integer
For i = 1 To 3 Step 1

cmdStart.Enabled = False
Dim bm As Image
.
.
.
.
.
.
Fname = "Date" & yy & "-" & mm & "-" & dd & "Time" & hh & "." & mn & "." & ss
SavePicture picCapture.Image, App.Path & "\Image\" & Fname & ".jpg"
Next i
End Sub
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
Toomerlalu



เข้าร่วมเมื่อ: 05 กพ. 2006
ตอบ: 5

ตอบตอบ: อาทิตย์ กพ. 05, 2006 10:41 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

จะต่อสวิตช์(1-4ตัว)กับคอม เขียนโปรแกรมควบคุมด้วยVB
จำเป็นต้องใช้ร่วมกับไมโครฯ ด้วยรึป่าวครับ
รึว่าวสามารถต่อกับคอมได้โดยตรง
ช่วยตอบคำถามหน่อยนะครับ
ถ้ามีตัวอย่างให้ดูจะดีมากๆ เลยครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: จ. กพ. 06, 2006 10:28 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ไม่จำเป็นครับ

378 output ==> ส่ง
379 input ==> รับค่าจาสวิตซ์

ควรวงจร optical separate กันระหว่างคอมพิวเตอร์และ Hardware
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: จ. กพ. 06, 2006 11:28 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ภาคต่อ ezVidCap


ผมเคยดาวน์โหลด AxtiveX(ocx) มาเล่นดูเหมือนกัน เป็นฟรี control ที่สุดยอดมาก ๆ แต่ properties มันเยอะมากไปหน่อย ก็เลยไม่ค่อยมีใครเอาไปใช้ จะให้ดีต้องไปแก้ที่ไฟล์ .ctr เลยจะได้ถูกใจโจ๋

การกำหนดชื่อไฟล์,path,เวลาที่ capture สามารถกำหนดที่ properties ได้เลย

Private Sub Form_Load()
ezVidCap1.TimeLimitEnabled = True
ezVidCap1.TimeLimit = 5 'หน่วยเป็นวินาทีอยู่แล้ว
End Sub


Private Sub CmdSatart_Click()
ezVidCap1.CaptureFile = txtAVI.Text
End Sub

Private Sub CmdStop_Click()
ezVidCap1.CaptureEnd
End Sub

properties สำคัญอื่น ๆ เช่น Audio, frame rate ก็ลองเล่นดูละกัน
กลับไปข้างบน
DeusEx



เข้าร่วมเมื่อ: 06 กพ. 2006
ตอบ: 2

ตอบตอบ: จ. กพ. 06, 2006 7:34 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ตามมาจากอีกกระทู้คับ

คำพูด:
Private Sub CmdSatart_Click()
ezVidCap1.CaptureFile = txtAVI.Text
End Sub


งงตรง txtAVI.Text ตรงส่วนนี้มันคืออะไรอะพี่
ไม่เข้าใจเลย พี่ช่วยอธิบายเพิ่มหน่อยนะงับ
เป็นส่วนกำหนดชื่อไฟล์เหรอคับ รึว่าใช้ทำอะไร
พี่ยกตัวอย่างด้วยจะดีมากๆ เลยครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: จ. กพ. 06, 2006 10:39 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
งงตรง txtAVI.Text ตรงส่วนนี้มันคืออะไรอะพี่


textbox สำหรับใส่ชื่อ path + ชื่อไฟล์

โดยจะกำหนด default ไปเลยก็ได้ เช่น

Private Sub Form_Load()

txtAVI.Text = App.path & "\Test.avi"

End Sub

เวลา save ก็จะได้ไฟล์ชื่อ Test.avi อยู่ใน folder เดียวกับ project
กลับไปข้างบน
HusPlus



เข้าร่วมเมื่อ: 07 สค. 2005
ตอบ: 9

ตอบตอบ: อ. กพ. 07, 2006 8:33 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่ครับผมกลับมาถามต่อหน่อยนะ
จากที่ผมถามพี่ว่าผมอยากให้มันเซฟภาพ
3 รูปเลยในการกดครั้งเดียวเลย
โดยการใช้ Loop แต่ผลลัพธ์ที่ได้
ก็ยังได้ออกมารูปเดียวเหมือนเดิม

ตรงนี้ผมคิดว่าเกิดอยากความเร็วในการทำงานของโปรแกรม
ที่มันไม่เกิน 1 วินาที ในการทำงานทำให้
3 รูปที่ควรจะได้ออกมาเป็นรูปเดียว

ดังนั้นผมอยากเพิ่มชื่อไฟล์ให้เพิ่มส่วน มิลลิวินาที เข้าไปอีก
แต่ผมลองทำคล้ายๆ กับอันแรกคือเพิ่ม

ms = Millisecond(Time)

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





ตอบตอบ: อ. กพ. 07, 2006 9:56 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คือผมมี ActiveX Control อยู่ ตัวหนึ่ง ซึ่งจำเป็นต้องใช้มากๆ
คือ TigerChart ครับ ใช้สำหรับ Plot Graph แบบ Real-Time
แต่ว่าตัวที่ผมมีนี้ เป็นตัว Unregister ที่แถมมากับหนังสือ วม Controller
อ่ะครับ

เนื่องจากเป็นตัว unregister จึงทำให้ Plot ได้ไม่เกินตาราง แกน X และ Y 100
ครับ เลยอยากทราบว่ามีใครที่ใช้ TigerChart อยู่บ้างหรือเปล่า

ถ้าไม่เป็นการรบกวนเกินไปจะขอ Crack ได้มั๊ยๆๆ
เพราะว่า Search หาบนเนทแล้วหายังไงก็หาไม่เจอครับ

ส่งมาที่ tonlore@hotmail.com ครับ หรือจะนำมาโพสต์ในนี้ก็ได้ครับ
ขอบคุณล่วงหน้ามากๆครับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 07, 2006 9:57 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
พี่ครับผมกลับมาถามต่อหน่อยนะ
จากที่ผมถามพี่ว่าผมอยากให้มันเซฟภาพ
3 รูปเลยในการกดครั้งเดียวเลย
โดยการใช้ Loop แต่ผลลัพธ์ที่ได้
ก็ยังได้ออกมารูปเดียวเหมือนเดิม


กดทีเดียว save 3 รูป ทดสอบแล้ว

Private Sub Command1_Click()
Dim counter As Integer
For counter = 1 To 3 Step 1
DoEvents
Fname = "Date" & yy & "-" & mm & "-" & dd & "Time" & hh & "." & mn & "." & ss
SavePicture Picture1.Image, "D:\image\" & Fname & counter & ".jpg"
Next counter
End Sub
กลับไปข้างบน
โปรแกรมบัตรคิว
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 07, 2006 12:46 pm    ชื่อกระทู้: th.sakuragi ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อยากทราบว่าเมื่อคลิก switch ครั้งที่หนึ่งเป็น 1 คลิกครั้งที่สองเป็น 2 ทำอย่า่งไรครับ
กลับไปข้างบน
rung2005
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 07, 2006 3:17 pm    ชื่อกระทู้: ขอความช่วยเหลือด้วย ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อยากถามว่าใน VB ตรง MsgBox สามารถทำให้มีหลายบรรทัดได้หรือเปล่าถ้าทำได้รบกวนขอโค๊ดด้วยนะครับ
ขอบคุณครับ.........
กลับไปข้างบน
ช่วยแนะนำหน่อยครับ
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 07, 2006 11:56 pm    ชื่อกระทู้: ทำไมมันถึงไม่หลุดจากลูปครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อ้างอิงถึงเว็บนี้คับพี่

http://www.g2gnet.com/Inside/news_item.asp?NewsID=7

ผมทดลองทำตามที่อธิบายไว้ครับ
แต่ว่าโปรแกรมไม่ทำงานตามที่คิด
คือไม่ได้หน่วงเวลา 2 วินาทีเลย
ผมทดลองเช็คดู โปรแกรมมันไปวนลูปอยู่ที่

While Timer1.Interval > 0
DoEvents
Wend


ตลอดเลยครับไม่ยอมหลุดจากลูปซักที
ลองเปลี่ยนค่าตรง

Timer1.Interval = 1000 * Sec

เป็น

Timer1.Interval = 10 * Sec

แล้วทดลองรันแบบ Step Into
โปรแกรมก้อยังวนอยู่ในลูปนั้นอยู่
ผมเลยอยากให้ช่วยอธิบายหน่อยครับ
ไปค้นในหนังสือที่มีก้อไม่เจอคำสั่ง

While
.
.
Wend

อยู่เลย ยังไงช่วยแนะนำด้วยนะครับ
กลับไปข้างบน
เด็กใหม่
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 2:40 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมจะเขียน vb ให้รับค่าจากMCU PIC 16F628 โดยผ่านทาง พอร์ตอนุกรมรับค่าจากเซ็นเซอร์ ds1820 อีกทีนึงครับ แต่ผมเขียน vb ยังไงก็รับข้อมูลที่ pic ส่งมาไม่ได้ครับ ช่วยผมด้วย ต้องส่งแล้ว

หรือมีตัวอย่างในลักษณะนี้ขอให้บอกด้วยได้มั้ยครับ คือผมไม่ค่อยมีความรู้เรื่อง vb เท่าไหร่อ่ะครับ ศึกษาเอาเองได้ไม่คล่องเท่าไหร
ในตัวของ PIC 16F628 จะมีซอร์ตโค้ดดังนี้ครับ

#include <16F628A.h>
#device *=16
#use delay(clock=4000000)
#use rs232(baud=2400, xmit=PIN_B2,rcv=PIN_B1)
#fuses NOWDT,XT, PUT, NOPROTECT, NOBROWNOUT, MCLR, NOLVP, NOCPD
//#define DQ PIN_B0
#define DQ PIN_A1
#define LED PIN_B4

void Get_temp(void);
void WriteByte(char outbyte);
char ReadByte(void);
void Treset (void);
void Tconvert (void);
void ReadSerial(void);
void Print_temp(void);
void Send_temp(void);
void Send_Scrap(void);
void Manchester(char inbyte);
char Scrap[10];
char Manout[2];
//--------------------------------------------------------
// For reset ds18s20
//--------------------------------------------------------
void Treset (void) {
//set_tris_b(0xFE);
output_low(DQ); //drive Low 800 uS
delay_us(600);
output_float(DQ); //float to high.
delay_us(6);
while(input(DQ));
while(!(input(DQ))); //wait for Low present pulse.
delay_ms(2);
}



//--------------------------------------------------------
// For start to convert temperatur on ds18s20
//--------------------------------------------------------
void Tconvert (void) {
treset ();
writebyte (0xcc); // skip rom
writebyte (0x44); // start convert

}

//--------------------------------------------------------
// For get temp from ds18s20 then keep in Hbyte,Lbyte
//--------------------------------------------------------
void Get_temp(void){
int8 i;
Tconvert();
delay_ms(900);
Treset();
delay_ms(10);
WriteByte(0xcc); // skip rom
WriteByte(0xbe); // read scrapterpad
for(i=0;i<=9;i++){
//read all 9 byte in scrapterpad.
Scrap[i] = ReadByte();
}
//Lbyte = ReadByte(); // temp LSB byte.
//Hbyte = ReadByte(); // temp MSB byte.
Treset();

}

//--------------------------------------------------------
// print temp from Hbyte,Lbyte to serial port. format: +nnn.n C
//--------------------------------------------------------
void Print_temp(void){
char TH,TL;
char point=0;

TH=Scrap[0];
TL=Scrap[1];
// calculate temp.
if(TH==0xff){
//negative temperature
putc('-');
TL = (~TL) + 1; // 2 complement.
}else{
// positive temperature
putc('+');
}
if(bit_test(TL,0)){
point = '5';
}else{
point = '0';
}
TL >>= 1;
printf("%3d.%c C",TL,point);
}


//--------------------------------------------------------
// For send Preamble & temp data.
//--------------------------------------------------------
void Send_temp(void)
{
int8 i;
for(i=1;i<=10;i++)
{
putc(0xAA); // send preamble for Xmit's AGC stable.
}
putc('j');
putc('U');
Print_temp();
printf("\r\n"); //new line. */
}
//--------------------------------------------------------
// For send Preamble & scrapterpad data 9 byte in
// Manchester format.
// Format: Pre,manc(Code check),manc(Data 9 bytes)
//--------------------------------------------------------
void Send_Scrap(void)
{
int8 i;
for(i=1;i<=10;i++)
{
putc(0xAA); // send preamble for Xmit's AGC stable.
}
Manchester('j');
putc(Manout[0]);
putc(Manout[1]);
Manchester('U');
putc(Manout[0]);
putc(Manout[1]);
for(i=0;i<=8;i++)
{
Manchester(Scrap[i]);
putc(Manout[0]);
putc(Manout[1]);

}

//Print_temp();
printf("\r\n"); //new line. */
}

//--------------------------------------------------------
// For convert 1 byte into Manchester Format 2 byte return
// by : Manout[0],Manout[1]
//--------------------------------------------------------
void Manchester(char inbyte){
int8 i,j;
for(i=0;i<=3;i++){ // lsb 4 bit.
if(bit_test(inbyte,0)){ //1->10
bit_set(Manout[0],7);
bit_clear(Manout[0],6);
}else{ // 0-> 01
bit_clear(Manout[0],7);
bit_set(Manout[0],6);
}
inbyte >>= 1; //next bit.

if(i<3){
Manout[0] >>= 2;
}
}
for(i=0;i<=3;i++){ //msb 4 bit.
if(bit_test(inbyte,0)){ //1->10
bit_set(Manout[1],7);
bit_clear(Manout[1],6);
}else{ // 0-> 01
bit_clear(Manout[1],7);
bit_set(Manout[1],6);
}
inbyte >>= 1; //next bit.

if(i<3){
Manout[1] >>= 2;
}
}


}



//--------------------------------------------------------
// For Write 1 byte to ds18s20
//--------------------------------------------------------
void WriteByte(char outbyte){
int8 i;
for(i=0;i<8;i++){
output_low(DQ);
delay_us(5);
if(bit_test(outbyte,0)){
//write 1 time slot.
output_high(DQ);
}
delay_us(70);
output_float(DQ);
outbyte >>= 1;
delay_us(5);
}
}
//--------------------------------------------------------
// For Read 1 byte from ds18s20
//--------------------------------------------------------
char ReadByte(void){
char data=0;
int8 i=0;
do{
output_low(DQ);
delay_us(2);
output_float(DQ);
delay_us(5);
if(input(DQ)){
bit_set(data,7);
}
output_float(DQ);
delay_us(80);
i++;
if(i<Cool{
data >>= 1;
}
}while(i<Cool;
return(data);
}
//--------------------------------------------------------
// For Read serial number
//--------------------------------------------------------
void ReadSerial(void){
int8 i=0;
char Data=0xff;
Treset();
delay_us(100);
WriteByte(0x33); // Read rom serial
delay_us(10);
for(i=0;i<8;i++){
Data = ReadByte(); // serial
printf("%2x",Data);
}
Treset();
}

void main()
{
int i;


set_tris_a(0x0c); // A0,A1 are out.
setup_comparator(NC_NC_NC_NC);
set_tris_b(0xef); //RB2,RB1 are SET for TX,RX.,
//printf("\r\n Test %2d ",i);
//ReadSerial();
while(1){

Get_temp();


for(i=1;i<=1;i++){
output_high(LED);
output_high(PIN_A0);
//Send_temp();
Send_Scrap();
output_low(LED);
output_low(PIN_A0);
delay_ms(100);
}


//Print_temp();
//printf("\r\n");

}
}

โดยผมจะเขียน vb ให้ออกมาในลักษณะนี้ครีบ


แสดงค่า อุณหภูมิ

เลือกช่วง ดีเลย์

แค่นี้ครับ









[/img][/quote][/code]
กลับไปข้างบน
เด็กน้อย
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 11:37 am    ชื่อกระทู้: ผมมีปัญหาเรื่องการดึงกราฟเส้นให้ออกมาซ้อนกันช่วยหน่อยคับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

การทำงานของตัวโปรแกรมคือรับค่า Weighing Indicator ผ่านเข้ามาทาง PortRS232c ซึ่งผมสามารถดึงค่ามาเก็บในdatabase ได้แต่ผมไม่สามารถดึงการเก็บค่า ในครั้งแรก กับครั้งที่2 มาเปรียบเที่ยบในกราฟเดี่ยวกันโดยให้ขึ้นเป็นเส้น 2 เส้นคือเส้นแรกคือครั้งแรกอีกเส้นคือครั้งที่2 รบกวนพี่แมลงเม่าช่วยผมหน่อยคับ ขอบคุณคับ Laughing
กลับไปข้างบน
บุคคลทั่วไป
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 12:32 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

สวัสดีครับพี่ ๆ ทุกท่าน ผมอยากจะรบกวนถามเรื่องการดักจับข้อมูลหน่อยครับ คืออยากจะรู้ว่าเกมส์ออนไลน์ที่เราเล่นอยู่ เมื่อเรารู้ ip/port ที่ติดต่อกันแล้วเนี่ย เราจะเขียนโปรแกรมขึ้นมาดักจับข้อมูลที่ รับ-ส่ง กันได้ไหมครับ คืออยากจะรู้ว่ามันส่งข้อมูลอะไรกันมั่งน่ะครับ ไม่ทราบว่าพี่ ๆ พอจะมี source code ตัวอย่างไหมครับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 1:03 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
อยากทราบว่าเมื่อคลิก switch ครั้งที่หนึ่งเป็น 1 คลิกครั้งที่สองเป็น 2 ทำอย่า่งไรครับ


Private Sub CmdStatic_Click()
Static i As Integer
i = i + 1
i = i Mod 2
With CmdStatic
Select Case i
Case 0
.Caption = "1"
Case 1
.Caption = "2"
End Select
End With
End Sub
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 1:08 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
อยากถามว่าใน VB ตรง MsgBox สามารถทำให้มีหลายบรรทัดได้หรือเปล่าถ้าทำได้รบกวนขอโค๊ดด้วยนะครับ
ขอบคุณครับ.........



Private Sub Cmdmultiline_Click()
MsgBox "Hello" & vbCr & "MangMao", , "Test Multiline"
End Sub
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 08, 2006 6:18 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ผมทดลองทำตามที่อธิบายไว้ครับ
แต่ว่าโปรแกรมไม่ทำงานตามที่คิด
คือไม่ได้หน่วงเวลา 2 วินาทีเลย
ผมทดลองเช็คดู โปรแกรมมันไปวนลูปอยู่ที่

While Timer1.Interval > 0
DoEvents
Wend


ดูจากโปรแกมแล้ว ผมว่าไม่น่าจะทำงานได้นะ เพราะ statement While ===>Wend
มันไม่มีการเคลื่อนไหว
คำว่า While === Wend คล้าย ๆ กับ ถ้า === ก็

เช่น
hint = Int(InputBox("Guess number 1 to 9", "Random"))
While hint <> answer
' ถ้าไม่ตรงก็ให้ใส่ค่าอื่นต่อไป
hint = Int(InputBox("Incorrect,Try again ", ""))
cnt = cnt + 1
Wend

จากตัวอย่าง hint จะต้องเปลี่ยนเพื่อนให้เข้าเงื่อนไข แต่ Timer1.Interval = 2000 มันเป็นค่าคงที่ เมื่อไม่เข้าเงื่อนไขมันก็เลยไม่ออก loop ซักที

ผมว่าใช้ sleep น่าจะดีกว่า

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Me.Caption = Time$
Shape1.BackColor = vbGreen
Sleep 2000 ' ' กำหนดการหน่วงเวลาที่ 2 วินาที
Me.Caption = Time$
Shape1.BackColor = vbRed
End Sub[/b]
กลับไปข้างบน
t
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 15, 2006 5:55 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมมีปัญหาเกี่ยวกับ error ครับในการจัดเก็บเป็น .exe คือมันเกิดปัญหาตอนเอาไปใช้งานครับผมต้องทำอย่างไรมันจึงจะทำงานเกี่ยวกับไฟล์ได้ครับ

component 'MSCOMM32.ocx or one of its dependencies not correctly registered : a files is missing or invalid
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 15, 2006 7:27 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

[quotecomponent 'MSCOMM32.ocx or one of its dependencies not correctly registered : a files is missing or invalid[/quote]

ทำตัว setup ใหม่แล้วก็ add 'MSCOMM32.ocx' ด้วย

หรือไม่ก็ลองทำแบบนี้

1. ก็อปปี้ MSCOMM32.OCX ไปเก็บที่โฟลเดอร์ SYSTEM32.

2. Register โดยคลิกที่ start ==> run แล้วพิมพ์ regsvr32
"mscomm32.ocx" ถ้า register ได้ก็จะมี popup ว่า registered successfully
กลับไปข้างบน
aspilinn
บุคคลทั่วไป





ตอบตอบ: พฤ. กพ. 16, 2006 5:53 pm    ชื่อกระทู้: ขอความช่วยเหลือหน่อยครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

มันเป็นโปรแกรมเล่นไฟล์ .avi ครับ คือผมอยากจะฟิกตำแหน่งภาพที่มันขึ้นมาจะทำยังไงครับ ปกติมันขึ้นชิดขอบจอด้านซ้ายบนครับ

Option Explicit

Private Sub cmdOpen_Click()
MMControl1.Command = "close"
CommonDialog1.Filter = "All medias|*.avi;*.mid;*.wav|Video" & _
"(*.avi) |*.avi|Sond(wav,midi) |*.wav;*.mid"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then
MsgBox "Please select file name"
Exit Sub
End If
MMControl1.FileName = CommonDialog1.FileName
MMControl1.Command = "open"

End Sub

Private Sub Command1_Click() 'Play

MMControl1.Command = "Play"

End Sub

Private Sub Command2_Click() 'Pause

MMControl1.Command = "Pause"

End Sub

Private Sub Command3_Click() 'Stop

MMControl1.Command = "Stop"

End Sub

Private Sub Command4_Click() 'Play Loop

MMControl1.Command = "Play"

End Sub
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ศ. กพ. 17, 2006 2:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
มันเป็นโปรแกรมเล่นไฟล์ .avi ครับ คือผมอยากจะฟิกตำแหน่งภาพที่มันขึ้นมาจะทำยังไงครับ ปกติมันขึ้นชิดขอบจอด้านซ้ายบนครับ


มีอยู่หลายวิธี

1. กำหนดจาก StartupPosition
- Manual
- CenterOwner
- CenterScreen
- Windows defult

2. กำหนด Manual จาก Form Laout Window(เมนู View==>Form Laout Window)
3. กำหนดโดยวิธีคำนวน

เช่น Center Form

Private Sub Form_Load()
Me.Top = (Screen.Height - Me.Height) / 2
Me.Left = (Screen.Width - Me.Width) / 2
End Sub

ถ้าอยากได้ตำแหน่งต่าง ๆ ก็ใช้คณิตศาสตร์แบบพิกัดจุดคำนวนได้

4. แบบนี้ Advance ที่สุดโดยการเอาขนาดและตำแหน่งของForm ไปเก็บใน Registry โดยใช้ฟังก์ชัน Savesetting และ Getsetting

Private Const APP_NAME As String = "howto_persist_position"

Private Sub Form_Load()
Me.Move _
GetSetting(APP_NAME, "Settings", "Left", Me.Left), _
GetSetting(APP_NAME, "Settings", "Top", Me.Top), _
GetSetting(APP_NAME, "Settings", "Width", _
Me.Width), _
GetSetting(APP_NAME, "Settings", "Height", _
Me.Height)
End Sub

Private Sub Form_Unload(Cancel As Integer)
SaveSetting APP_NAME, "Settings", "Left", Me.Left
SaveSetting APP_NAME, "Settings", "Top", Me.Top
SaveSetting APP_NAME, "Settings", "Width", Me.Width
SaveSetting APP_NAME, "Settings", "Height", Me.Height
End Sub
กลับไปข้างบน
adirek



เข้าร่วมเมื่อ: 15 กพ. 2006
ตอบ: 4

ตอบตอบ: ส. กพ. 18, 2006 7:07 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่ครับ รบกวนช่วยทีครับ คือค่าอินพุตที่รับมทาง serail port ามันไม่ตรงกับที่ส่งมาครับ แต่ถ้ารับจาก hyper terminal ข้อมูลถูกต้อง แต่ทำไมรับในวีบีแล้วเพี้ยนหมดเลย เซทบอดเรทตรงแล้วนะครับ ค่าที่รับได้เหมือนถูกแปลงกลายเป็นภาษาไทยครับ (ค่าที่รับได้เป็นภาษาไทยมั่วๆ) ช่วยทีครับ ขอบคุณมากๆครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
rapter



เข้าร่วมเมื่อ: 20 กพ. 2006
ตอบ: 7

ตอบตอบ: จ. กพ. 20, 2006 11:31 am    ชื่อกระทู้: *-* ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Embarassed
Const WM_CAP As Integer = &H400 *&H400 คือไรครับ

Const WM_CAP_DRIVER_CONNECT As Long = WM_CAP + 10 *ตัวเลข+10 คือไรครับ เห็นมีทั้ง +11 +50 +52 อยากทราบว่าคือไรครับ

Const SWP_NOMOVE As Long = &H2 *&H2 คือไรครับ

hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 320, 240, picCapture.hwnd, 0) ตัวเลข ที่ส่งค่าไป มานคือไรบ้างครับ 0,0,320,240 และทำไรได้งับ

Private Const GET_FRAME As Long = 1084 ค่า 1084คือค่าไรครับเปลี่ยนค่าแล้วมานจะใช้ไม่ได้ เลยอยากรู้านคือไรงับ
Private Const COPY As Long = 1054 ค่า 1054 เหมือนค่า get_frame

แล้ว (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) มานคืออ้างจากใน system หรอครับ

อยากรู้ครับ ช่วยกรุณาอธิบาย พอให้เข้าใจทีนะครับพี่
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
rapter



เข้าร่วมเมื่อ: 20 กพ. 2006
ตอบ: 7

ตอบตอบ: จ. กพ. 20, 2006 12:49 pm    ชื่อกระทู้: T_T ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Confused
อยากให้เปิด flash บนหน้าจอของ vb ได้ไหมครับ เพราะให้แสดงบน ole แล้วมานไม่ขึ้นภาพ
ต้องดับเบิ้ลคลิกถึงจะเรียก flash
อยากให้มานแสดงภาพตรง vb เลยครับ มีวิธีไหมครับพี่
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 21, 2006 10:53 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
Embarassed
Const WM_CAP As Integer = &H400 *&H400 คือไรครับ


หาอ่านใน Multimedia Messages

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_wm_cap_driver_connect.asp
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. กพ. 21, 2006 10:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
อยากให้เปิด flash บนหน้าจอของ vb ได้ไหมครับ เพราะให้แสดงบน ole แล้วมานไม่ขึ้นภาพ
ต้องดับเบิ้ลคลิกถึงจะเรียก flash
อยากให้มานแสดงภาพตรง vb เลยครับ มีวิธีไหมครับพี่


ใช้ Flash control
กลับไปข้างบน
rapter



เข้าร่วมเมื่อ: 20 กพ. 2006
ตอบ: 7

ตอบตอบ: พ. กพ. 22, 2006 9:19 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอบคุณครับ Laughing
ถามอีกนะครับ อิๆ
ทำอย่างไร ถ้านำข้อมูลจากใน list box ที่มีข้อมูลทั้งหมด ไปแสดง ใน หน้า ฟอม ต่อไปครับ
เช่น เลือก ข้อมูลไว้ มานจะเก็บอยู่ใน list box พอกดปุ่มเปลี่ยนหน้่าฟอมต่อไป ข้อมูลที่อยู่ใน list box ที่ได้เลือกไว้ ก็จะไปแสดง หน้า ฟอม ใหม่ในที่ที่เรากำหนดไว้ด้วยครับ
มีวิธีไหมครับ พี่แมงเม่า
ขอบคุณ กับคำถามที่พี่ตอบให้นะครับ
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. กพ. 22, 2006 1:11 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
ถามอีกนะครับ อิๆ
ทำอย่างไร ถ้านำข้อมูลจากใน list box ที่มีข้อมูลทั้งหมด ไปแสดง ใน หน้า ฟอม ต่อไปครับ
เช่น เลือก ข้อมูลไว้ มานจะเก็บอยู่ใน list box พอกดปุ่มเปลี่ยนหน้่าฟอมต่อไป ข้อมูลที่อยู่ใน list box ที่ได้เลือกไว้ ก็จะไปแสดง หน้า ฟอม ใหม่ในที่ที่เรากำหนดไว้ด้วยครับ
มีวิธีไหมครับ พี่แมงเม่า
ขอบคุณ กับคำถามที่พี่ตอบให้นะครับ


1. เก็บไว้ใน data base

หรือ

2. เรียกผ่าน Module
กลับไปข้างบน
rapter



เข้าร่วมเมื่อ: 20 กพ. 2006
ตอบ: 7

ตอบตอบ: พ. กพ. 22, 2006 1:36 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ถ้าเรียกผ่าน module พอจะแสดงตัวอย่าง ให้ดูได้ไหมครับ ผมไม่ได้ใช้ เก็บใน database
แล้ว พี่ จบที่ไหนมาหรอครับ อิๆ
แสดงให้ดูหน่อยนะครับ Embarassed
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
เด็กตาดำๆ
บุคคลทั่วไป





ตอบตอบ: พฤ. กพ. 23, 2006 12:01 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่ารบกวนเรื่อง Motion detect อีกทีครับ คือผมจะกำหนดขนาดรูปภาพยังไงครับ
จากโค้ด

Private Sub Timer2_Timer()
Label1.Caption = vbCrLf & " &agrave;&raquo;&Iacute;&Atilde;&igrave;&agrave;&laquo;&sup1;&micro;&igrave;&iexcl;&Ograve;&Atilde;&agrave;&curren;&Aring;&times;&egrave;&Iacute;&sup1;&auml;&Euml;&Ccedil;(PCDR): " & Int(Wo / (Ri + Wo) * 100) & " % "
If Int(Wo / (Ri + Wo) * 100) > 3 And Check1.Value = Checked Then
SavePicture Picture1.Image, App.Path & "\img\img" & Counter & ".gif" <<--ผมแก้ตรงนี้ใช่ป่าว ต้องเขียนยังไงครับเพื่อกำหนดขนาด เอาเล็กๆ เท่าขนาดหน้าจอมือถือ
Counter = Counter + 1
end if
end sub
กลับไปข้างบน
เด็กน้อย
บุคคลทั่วไป





ตอบตอบ: ศ. กพ. 24, 2006 10:37 am    ชื่อกระทู้: รบกวนหน่อยครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมต้องการให้โปรแกรมดึงข้อมูลตัวเลขที่อยู่ในฐานข้อมูล ที่มีค่ามากที่สุดเพียง1ค่า มาทำการแสดงใน Textbox ต้องเขียนแบบไหนคับ รบกวนหน่อยคับ
กลับไปข้างบน
YaGuZaa



เข้าร่วมเมื่อ: 24 กพ. 2006
ตอบ: 2

ตอบตอบ: ศ. กพ. 24, 2006 12:08 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอโค๊ดการแปลงค่าจากตัวเลขเป็นเงินหน่อยคัม

--------------------------------------------------------------------------------

เช่น ป้อนค่า 100 แล้วให้โชว์เป็นค่าเงิน หนึ่งร้อยบาท
123.50 เป็น หนึ่งร้อยยี่สิบสามบาทห้าสิบสตางค์
ประมาณนี้นะคัม ใครขอจะมีโค๊ดบ้างคัม ขอหน่อยคัม ขอบคุณล่วงหน้าคัม
Razz
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
umasa
บุคคลทั่วไป





ตอบตอบ: ส. กพ. 25, 2006 2:18 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ช่วยหน่อยครับ ผมทำโปรแจค GPS อยู่ครับ ติดที่แผนที่ ทำไมได้ครับ โปรแจคของผมก็ เวลาเดินไปทางไหนก็จะมีจุดกระพิบตามแผนที่ (แผนที่ในมหาลัย) โดยที่ผมคิดๆอยู่ตอนนี้คือ นำแผนที่น่ะครับ แล้วจำลองเป็นตารางขึ้นมาครับแล้ว จุด X= ค่าละติจูด ส่วน Y= ลองติจูด มาคำนวนในแต่ละจุดว่ามีค่า xและ y เท่ากับเท่าไหร่ แล้วนำค่ามาเปรียบเทียบกับค่า ละติจูด ลองติจูด ที่รับมาปัจจุบันแล้วแสดงตำแหน่ง ช่วยหน่อยนะครับ ขอบคุณครับ
surawee_ib@hotmail.com

กลับไปข้างบน
เบด
บุคคลทั่วไป





ตอบตอบ: จ. กพ. 27, 2006 4:54 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อยากใช้ winsock ส่งข้อมูลข้ามเครือข่ายอะครับ จาทามยังไงดี ปกติใช้ TCP,UDP มานก้อได้แค่ในเครือข่ายเดวกาน ลองข้ามเครือข่ายมันไม่ได้อะครับ
กลับไปข้างบน
kirua
บุคคลทั่วไป





ตอบตอบ: พฤ. มีค. 02, 2006 3:00 pm    ชื่อกระทู้: การนำเสียงมาสร้างกราฟ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าครับ พี่พอจะมีตัวอย่าง code การนำเสียงมาสร้างกราฟบ้างหรือเปล่าครับ รบกวนพี่แนะนำหน่อยนะครับ ขอบคุณครับ
กลับไปข้างบน
nea
บุคคลทั่วไป





ตอบตอบ: ศ. มีค. 10, 2006 10:52 pm    ชื่อกระทู้: ช่วยผมด้วยครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ถ้าเราจะถึงข้อมูลจากฐานข้อมูล table A ไปอัพเดท ที่ table B และ C แล้วดึงข้อมูลที่อัฟเดทนั้นมันแสดงใน Dbgrid จะทำยังไงครับ คือว่าจะไห้ A เป็นราคาจริง แต่ B เป็นรายละเอียด ของ A และฐานข้อมูลอื่นอะครับ
กลับไปข้างบน
บุคคลทั่วไป






ตอบตอบ: พ. มีค. 15, 2006 6:58 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ทำไมส่ง ascii code ผ่าน serial port ถึงส่งได้แค่ทีละตัวอักษรล่ะครับแล้วต้องทำยังไงถึงจะส่งได้ทีล่ะหลายๆตัวอักษรอ่ะคับ คุณ แมงเม่า แล้วก็คนอื่นด้วยก้อได้ครับ ขอบคุณล่วงหน้าครับ

Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.InputLen = 1
MSComm1.PortOpen = True
MSComm1.RThreshold = 1

End Sub

Private Sub MSComm1_OnComm()
Dim StrData As Variant
StrData = MSComm1.Input
RXText.Text = StrData
End Sub

Private Sub SendKey_Click()
MSComm1.Output = TextSEND.Text
TextSEND.Text = ""
End Sub
กลับไปข้างบน
microsssss
บุคคลทั่วไป





ตอบตอบ: ศ. มีค. 17, 2006 4:51 pm    ชื่อกระทู้: อยากทราบวิธีการที่การเขียนโปรแกรม VB ติดต่อกับ MicroControlr ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

อยากทราบวิธีการที่การเขียนโปรแกรม VB ติดต่อกับ Micro Controlr MCS51 ผ่านทาง Lan เหมือนกับที่ตามศูนย์อาหารตามห้างเขาทำกันอะครับ ว่า HW/SW ต้องทำยัง อยากรู้ หาความรู้ใส่ตัว ครับ ขอบคุณครับ
กลับไปข้างบน
gotgi



เข้าร่วมเมื่อ: 01 ธค. 2005
ตอบ: 6

ตอบตอบ: จ. มีค. 20, 2006 11:41 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:

แสดงภาพ

SendMessage CamHwnd, 1084, 0, 0
SendMessage CamHwnd, 1054, 0, 0
Picture1.Picture = Clipboard.GetData

เปิดพอร์ต

Winsock1.Close
Winsock1.LocalPort = 4444
Winsock1.Listen

Stream ภาพ

Dim Streaming As String
If Winsock1.State = sckConnected Then
SavePicture Picture1.Picture, App.Path & "\temp.bmp"
Streaming = GetFile(App.Path & "\temp.bmp")
DoEvents
Winsock1.SendData Streaming
End If

ผมไปค้นเจอใน บอร์ดที่พี่ไปตอบไว้ เรื่อง เขียนVB ดึงภาพจาก webcam ผ่าน LAN
คือผมไม่เก่ง vb จึงไม่รู้ว่า code ที่พี่ให้มาใช้อย่างไร ต้องสร้าง form อะไรบ้าง และต้องมีปุ่มอะไร หน้าตายังไง อะไรทำนองนี้ครับ ผมทำ project เรื่อง ควบคุมกล้อง ผ่าน internet แต่ตอนนี้ยัง ดึง webcam ผ่านlanยังไม่ได้เลยครับ จึงอยากรบกวนหน่อยครับ เพราะผมไม่เป็นจริงๆ ขอบคุณล่วงหน้าครับพี่ Laughing
_________________
+-------GOTGI-------+
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์ MSN
บุคคลทั่วไป






ตอบตอบ: พ. มีค. 22, 2006 9:55 pm    ชื่อกระทู้: ตอน Setup แล้ว Error ทำไงดีครับ ช่วยทีครับ... ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Setup
Setup cannot continue because some system files are out of date on your system. Click OK if you would like

setup to update these files for you now. You will need to restart Windows before you can run setup again.

Click cancel to exit setup without updating system files.

*******************************************

มันจะขึ้นแบบนี้นะ


และอีกแบบหนึ่งคือเมื่อเราเอา File .exe ไปรันที่เครื่องอื่นแล้วรันได้แต่มีปัญหาแบบนี้

Class not registered.
Looking for object with CLSID:{00000010-0000-0010-8000-00AA006D2EA4}


ช่วยตอบด้วยนะครับ

ต้องการด่วน

ขอบคุณล่วงหน้าครับ....
กลับไปข้างบน
aonteen_csc



เข้าร่วมเมื่อ: 22 มีค. 2006
ตอบ: 1

ตอบตอบ: พ. มีค. 22, 2006 9:57 pm    ชื่อกระทู้: ตอน Setup แล้ว Error ทำไงดีครับ ช่วยทีครับ... ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Setup
Setup cannot continue because some system files are out of date on your system. Click OK if you would like

setup to update these files for you now. You will need to restart Windows before you can run setup again.

Click cancel to exit setup without updating system files.

*******************************************

มันจะขึ้นแบบนี้นะ


และอีกแบบหนึ่งคือเมื่อเราเอา File .exe ไปรันที่เครื่องอื่นแล้วรันได้แต่มีปัญหาแบบนี้

Class not registered.
Looking for object with CLSID:{00000010-0000-0010-8000-00AA006D2EA4}


ช่วยตอบด้วยนะครับ

ต้องการด่วน

ขอบคุณล่วงหน้าครับ....
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
MM
บุคคลทั่วไป





ตอบตอบ: พฤ. มีค. 23, 2006 11:19 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Most cause is the setup file was created from the previous OS. Eg, The sourced was complied on win98 but you have installed on XP. It absolutely gone.
กลับไปข้างบน
มือใหม่หัดเล่นvb
บุคคลทั่วไป





ตอบตอบ: ส. มีค. 25, 2006 6:03 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พอดีผมเพิ่งรู้จักvb6จากเว็บนี้ขอให้พี่ทุกคนช่วยสอนพื้นฐานของโปรแกรมนี้หน่อยครับ
1เราจะหาโปรแกรมvbจากที่ไหนครับช่วยบอกข้อมูลหน่อย
2เราจะรู้ว่าภาษาโคตในvbเป็นอย่างไรช่วยบอกด้วยครับ
อีเมลkanatip.jit@hotmail.com
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ส. มีค. 25, 2006 8:17 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

1. อ่านจากหนังสือหรือบทความในและต่างประเทศ
2. หัดทำตัวอย่าง

โค้ดตัวอย่าง

VB เบื้องต้น
http://www.infopress2000.com/download/vb6.zip

VB&Database
http://www.infopress2000.com/download/dbvb6_v2.zip

VB ประยุกต์(miscellaneous)
http://www.infopress2000.com/download/fun_VB.zip

VB อินเตอร์เฟสฮาร์ดแวร์
http://www.infopress2000.com/download/ch02.zip
http://www.infopress2000.com/download/ch07.zip
http://www.infopress2000.com/download/ch08.zip
http://www.infopress2000.com/download/ch09.zip
http://www.infopress2000.com/download/ch10.zip
http://www.infopress2000.com/download/ch12.zip
กลับไปข้างบน
gt
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ มีค. 26, 2006 6:54 pm    ชื่อกระทู้: รบกวนเรื่อง winsock หน่อยครับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมจะควบคุม stepping mortor ผ่าน lan หน่ะครับ รบกวนพี่อีกครั้งนะครับ Laughing
กลับไปข้างบน
มือใหม่หัดเล่นvb
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ มีค. 26, 2006 9:11 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

1ครับมานคืออะไรผมไม่รู้จักมีแต่โค้ดแล้วผมโหลดVB เบื้องต้นจากพี่แมงเม่าเห็นมีแต่ให้ใส่ชื่อ
เล้วพอมาดูอันอื่นมีแต่โค้ดผมไม่รู้ว่าโค้ดนี้คืออะไรเอาไว้ทำอะไรช่วยบอกทีครับ
2พี่ครับโปรแกรมvb6หาได้จากที่ไหนครับพอดีผมอยากลองเขียนดูแต่ไม่มีโปรแกรมช่วยหน่อยเถิดครับพี่พอดีผมพิมโค้ดครับนี้Option Explicit
Dim Conn As New ADODB.Connection 'ตัวแปรออบเจ็กต์ Connection
Dim rsBook AS New ADODB.Recordset 'ตัวแปรออบเจ็กต์ Recordset
Dim rsBookType As New ADODB.Recordset 'ตัวแปรออบเจ็กต์ Recordset
Dim rsSearchBookType As New ADODB.Recordset 'ตัวแปรออบเจ็กต์ Recordset
Dim rsMemberType As New ADODB.Recordset 'ตัวแปรออบเจ็กต์ Recordset
Dim rsBookList As New ADODB.Recordset 'ตัวแปรออบเจ็กต์ Recordset


Dim CurrentRecord As Integer 'ตัวแปรเก็บตำแหน่งเร็คคอร์ดปัจจุบัน
Dim AllRecord As Integer 'ตัวแปรเก็บจำนวนเร็คคอร์ดทั้งหมด


Dim tmpISBN As String 'ตัวแปรเก็บรหัสหนังสือ
Dim rsBookByCat As New ADODB.Recordset 'ตัวแปรออบเจกต์ Recordset


Dim tmpFileName As String 'ตัวแปรเก็บพาธไฟล์รูปภาพ
Dim ActionFlag As String 'ตัวแปรเก็บการกระทำของผู้ใช้งาน


'เหตุการณ์ฟอร์มโหลด
Private Sub Form_Load()
Me.WindowState=2


With cboSearch
.AddItem "รหัส ISBN"
.AddItem "ชื่อหนังสือ"
.AddItem "รายละเอียด"
.ListIndex=0
End With




[/code]
กลับไปข้างบน
MM
บุคคลทั่วไป





ตอบตอบ: จ. มีค. 27, 2006 11:55 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Code ที่ link เป็นของสำนักพิมพ์ infopress

1. สำหรับคนที่ซื้อหนังสือ โค๊ดนี้ก็จะอยู่ในหนังสือเช่นกันซึ่งจะอธิบายอย่างละเอียดแทบทีละบรรทัด เหมาะกับคนที่เริ่มต้นจริง ๆ
2. สำหรับคนที่รู้จักโปรแกรมบ้างแล้วก็จะดาวน์โหลดมาใช้อ้างอิงหรือเป็นตัวอย่างเอาไปประยุกต์

ดังนั้นถ้ายังไม่รู้อะไรเลยแนะนำว่าหาหนังสือมาอ่านก่อนจะดีกว่า
กลับไปข้างบน
Betta
บุคคลทั่วไป





ตอบตอบ: ศ. มีค. 31, 2006 10:23 am    ชื่อกระทู้: โค้ต Delay ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่ๆ คับ ผมอยากรบกวนถามการหน่วงเวลา ใน VB6 โดยที่ไม่ต้องยุ่งเกี่ยวกับ Timer ของ VB อ่ะคับ เพราะว่าใช้ timer เมื่อต้องการหน่วงเวลาเป็น milisec แล้วมันมีปัญหาอ่ะคับ งานของผมคือผมต้องการสร้าง Square Pluse ออกทาง port Printer คับ ความถี่ 800 Hz คับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: จ. เมย. 03, 2006 3:09 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ลองดูนะ
1. สร้างฟอร์มแล้วใส่ component และตั้งชื่อให้ตรงโค๊ด
Option Explicit
Private Const SRCCOPY = &HCC0020
Private Declare Function BitBlt Lib "gdi32" (ByVal hdcDest As Long, ByVal XDest As Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hDCSrc As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private WithEvents mobjSlumber As clsSlumber
Private mdTotalTime As Double
Private mdCurrentTime As Double
Private mdCurrentHours As Long
Private mdCurrentMins As Long
Private mdCurrentSecs As Double
Private mbInterrupted As Boolean

Private Sub cmdStart_Click()
On Error GoTo ErrHandler
Dim sMsg As String

If cmdStart.Caption = "Stop" Then
mbInterrupted = True
mobjSlumber.WakeUp
Exit Sub
End If

'Ensure Data is Numeric
txtHours.Text = Val(txtHours.Text)
txtMins.Text = Val(txtMins.Text)
txtSecs.Text = Val(txtSecs.Text)

'Ensure Values are whole numbers
txtHours.Text = Int(txtHours.Text)
txtMins.Text = Int(txtMins.Text)
txtSecs.Text = Int(txtSecs.Text)

'Validate Input Data
Select Case Val(txtHours.Text)
Case Is < 0
sMsg = "Hours cannot be a negative number!"
GoTo DisplayMsg
End Select

Select Case Val(txtMins.Text)
Case Is < 0
sMsg = "Minutes cannot be a negative number!"
GoTo DisplayMsg
Case Is >= 60
sMsg = "Minutes cannot be greater than or equal to 60!"
GoTo DisplayMsg
End Select

Select Case Val(txtSecs.Text)
Case Is < 0
sMsg = "Seconds cannot be a negative number!"
GoTo DisplayMsg
Case Is >= 60
sMsg = "Seconds cannot be greater than or equal to 60!"
GoTo DisplayMsg
End Select

If Val(txtHours.Text) = 0 And Val(txtMins.Text) = 0 And Val(txtSecs.Text) = 0 Then
sMsg = "Please input countdown time!"
GoTo DisplayMsg
End If

DisplayMsg:
If Len(sMsg) > 0 Then
MsgBox sMsg, vbInformation + vbOKOnly, App.Title
Exit Sub
End If

'Lock Input Boxes
txtHours.Locked = True
txtMins.Locked = True
txtSecs.Locked = True
mbInterrupted = False
cmdStart.Caption = "Stop"

'Set to Slumber every 10 milliseconds
'(This means that clsSlumber will put the thread to sleep for
' 10 milliseconds at a time until the total time has elapsed)
mobjSlumber.SlumberInterval = 10

'Calculate total number of milliseconds
mdTotalTime = (((Val(txtHours.Text) * 60) + Val(txtMins.Text)) * 60) + Val(txtSecs.Text)

'Start Slumbering
mobjSlumber.Slumber CLng(mdTotalTime * 1000)

'Reset form state
cmdStart.Caption = "Start"
If Not mbInterrupted Then
Call Display("000.00.00.0000")
End If

'UnLock Input Boxes
txtHours.Locked = False
txtMins.Locked = False
txtSecs.Locked = False
Exit Sub

ErrHandler:
MsgBox Err.Description, vbCritical + vbOKOnly, App.Title
End Sub

Private Sub Form_Load()
On Error GoTo ErrHandler
pbTextBuffer.BackColor = vbBlack
pbTextBuffer.Cls
pbTextBuffer.FontBold = True
pbTextBuffer.FontSize = 24
pbTextBuffer.ForeColor = vbGreen
pbTextBuffer.ScaleMode = vbPixels
pbTextBuffer.AutoRedraw = True
pbTextBuffer.Visible = False

Set mobjSlumber = New clsSlumber
Me.ScaleMode = vbPixels
Me.Show
DoEvents
Call ConvertTime
Exit Sub
ErrHandler:
MsgBox Err.Description, vbCritical + vbOKOnly, App.Title
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set mobjSlumber = Nothing
Set mobjProgBar = Nothing
Set mobjPieBar = Nothing
End
End Sub

Private Sub mobjSlumber_Slumber()
On Error GoTo ErrHandler

If mobjSlumber.ElapsedMilliseconds > 0 Then
mdCurrentTime = mdTotalTime - CDbl(mobjSlumber.ElapsedMilliseconds / 1000)
Else
mdCurrentTime = mdTotalTime
End If
mdCurrentHours = Int(CStr(mdCurrentTime)) \ 3600
mdCurrentSecs = mdCurrentTime - (mdCurrentHours * 3600)
mdCurrentMins = Int(CStr(mdCurrentSecs)) \ 60
mdCurrentSecs = mdCurrentSecs - (mdCurrentMins * 60)

Call Display(Format$(mdCurrentHours, "000") & "." & Format$(mdCurrentMins, "00") & "." & Format$(mdCurrentSecs, "00.0000"))
Exit Sub

ErrHandler:
Err.Raise Err.Number, Err.Source, "[frmCountdown.mobjSlumber_Slumber]" & Err.Description
End Sub

Private Sub Display(Text As String)
With pbTextBuffer
.Cls
.CurrentX = 0
.CurrentY = 10
pbTextBuffer.Print Text
BitBlt Me.hDC, .Left, .Top, .ScaleWidth, .ScaleHeight, .hDC, 0, 0, SRCCOPY
End With
End Sub

Private Sub ConvertTime()
Call Display(Format$(Val(txtHours.Text), "000") & "." & Format$(Val(txtMins.Text), "00") & "." & Format$(Val(txtSecs.Text), "00") & ".0000")
End Sub

Private Sub txtHours_KeyUp(KeyCode As Integer, Shift As Integer)
Call ConvertTime
End Sub

Private Sub txtMins_Change()
Call ConvertTime
End Sub

Private Sub txtSecs_Change()
Call ConvertTime
End Sub

2.สร้าง Class Module
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Large) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Large) As Long
Private Type Large
Low As Long
High As Long
End Type
Private Const CONST_2_31 = 2147483648# '2^31
Private Const CONST_2_32 = 4294967296# '2^32
Private miInterval As Long
Private mbWakeUp As Boolean
Private mdFrequency As Double
Private mdElapsedSeconds As Double

Public Event Slumber()

Private Sub Class_Initialize()
Dim mlPerfFrequency As Large

QueryPerformanceFrequency mlPerfFrequency
mdFrequency = CDouble(mlPerfFrequency)

If mdFrequency = 0 Then Err.Raise vbObjectError, "[clsSlumber.Class_Initialize]", "[clsSlumber.Class_Initialize]Error while initializing clsSlumber!"

miInterval = 500 '0.5 Seconds
End Sub

Public Property Get SlumberInterval() As Long
On Error GoTo GetSlumberInterval_Err
SlumberInterval = miInterval
Exit Property

GetSlumberInterval_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.Get.SlumberInterval]" & Err.Description
End Property

Public Property Let SlumberInterval(MilliSeconds As Long)
On Error GoTo LetSlumberInterval_Err
If MilliSeconds <= 0 Then Err.Raise vbObjectError, "clsSlumber.Let.SlumberInterval", "SlumberInterval must be greater than 0!"
miInterval = MilliSeconds
Exit Property

LetSlumberInterval_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.Let.SlumberInterval]" & Err.Description
End Property

Public Property Get ElapsedMilliseconds() As Double
On Error GoTo ElapsedMilliseconds_Err
'Timing is accurate to 0.1 Milliseconds
ElapsedMilliseconds = Int(CStr(mdElapsedSeconds * 10000)) / 10
Exit Property

ElapsedMilliseconds_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.Get.ElapsedMilliseconds]" & Err.Description
End Property

Private Function CDouble(LargeNum As Large) As Double
On Error GoTo ErrHandler
With LargeNum
If .Low > 0& Then
CDouble = .Low + (.High * CONST_2_32)
Else
CDouble = CONST_2_31 + CDbl(.Low And &H7FFFFFFF) + (.High * CONST_2_32)
End If
End With
Exit Function

ErrHandler:
Err.Raise Err.Number, Err.Source, "[clsSlumber.CDouble]" & Err.Description
End Function

Private Function DiffDbl(Big As Large, Small As Large) As Double
On Error GoTo ErrHandler
With Small
If .Low > 0& Then
If Big.Low > 0& Then
DiffDbl = Big.Low - .Low + (Big.High - .High) * CONST_2_32
Else
DiffDbl = CONST_2_31 + CDbl(Big.Low And &H7FFFFFFF) - .Low + (Big.High - .High) * CONST_2_32
End If
Else
If Big.Low > 0& Then
DiffDbl = Big.Low - CONST_2_31 - CDbl(.Low And &H7FFFFFFF) + (Big.High - .High) * CONST_2_32
Else
DiffDbl = CDbl(Big.Low And &H7FFFFFFF) - CDbl(.Low And &H7FFFFFFF) + (Big.High - .High) * CONST_2_32
End If
End If
End With
Exit Function

ErrHandler:
Err.Raise Err.Number, Err.Source, "[clsSlumber.DiffDbl]" & Err.Description
End Function

Public Sub Slumber(MilliSeconds As Long)
On Error GoTo Slumber_Err
Dim dSecs As Double
Dim lCounterStart As Large
Dim lCounterEnd As Large

If MilliSeconds <= 0 Then Err.Raise vbObjectError, "[clsSlumber.Slumber]", "Parameter MilliSeconds must be greater than 0!"

dSecs = MilliSeconds / 1000

mbWakeUp = False
mdElapsedSeconds = 0
QueryPerformanceCounter lCounterStart
Do
Sleep miInterval

On Error GoTo SlumberEvent_Err
RaiseEvent Slumber
DoEvents

On Error GoTo Slumber_Err
QueryPerformanceCounter lCounterEnd

mdElapsedSeconds = DiffDbl(lCounterEnd, lCounterStart) / mdFrequency

If mdElapsedSeconds >= dSecs Or mbWakeUp Then Exit Do
Loop
mdElapsedSeconds = dSecs
Exit Sub

Slumber_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.Slumber]" & Err.Description

SlumberEvent_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.Slumber][Slumber.Event]" & Err.Description
End Sub

Public Sub WakeUp()
On Error GoTo WakeUp_Err
mbWakeUp = True
Exit Sub

WakeUp_Err:
Err.Raise Err.Number, Err.Source, "[clsSlumber.WakeUp]" & Err.Description
End Sub

แล้วส่ง output ทาง printer port ดูว่ามันได้รึเปล่านะผมก็ไม่แน่ใจหรอก ถ้าจะเอา code ก็เมล์มานะครับ จะอัพโหลดทีก็ยุ่งยาก
กลับไปข้างบน
betta
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 04, 2006 9:54 am    ชื่อกระทู้: ขอบคุณคับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอบคุณพี่แมงเม่ามากๆ เลย จะลองดูคับ แต่ยังไงผมรบกวนขอ Code ด้วยคับ (ผมกลัวว่าจะใส่ component พลาด อ่ะคับ)
Suthichai7@yahoo.com
ขอบคุณล่วงหน้าคับ
กลับไปข้างบน
betta
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 04, 2006 10:57 am    ชื่อกระทู้: หนังสือ VB ควบคุม Hardware ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่ๆ คับ ผมพึ่งเริ่มหัดเขียน VB ติดต่อ hardware อ่ะคับ เลยอยากจะถามว่า เราสามารถหาหนังสือหรือบทความที่เกี่ยวกับพื้นฐานจนถึงระดับกลางทางด้านนี้ได้จากไหนครับ
เพราะบางทีมาอ่านในกระทู้แล้ว Code บางตัวไม่เข้าใจ เช่นพวก API อ่ะคับ พี่ๆ พอช่วยแนะนำได้ไหมคับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 04, 2006 5:36 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
พี่ๆ คับ ผมพึ่งเริ่มหัดเขียน VB ติดต่อ hardware อ่ะคับ เลยอยากจะถามว่า เราสามารถหาหนังสือหรือบทความที่เกี่ยวกับพื้นฐานจนถึงระดับกลางทางด้านนี้ได้จากไหนครับ
เพราะบางทีมาอ่านในกระทู้แล้ว Code บางตัวไม่เข้าใจ เช่นพวก API อ่ะคับ พี่ๆ พอช่วยแนะนำได้ไหมคับ

ผมเห็นที่ดวงกมลและนายอินทร์ที่เชียงใหม่นะ


เนื้อหาจะเป็นการติดต่อ Hardware ผ่าน printer port,serial port และ joystick ด้วย visual basic เนื้อหาอื่น ๆ ก็มีเช่นสอนการบัดกรี และรู้จักตัวต้านทาน ไดโอดเปล่งแสง เป็นหนังสือพื้นฐานที่ดีทีเดียว แต่การเขียนโปรแกรมค่อนข้างกำปั้นทุบดินไปแต่ก็ใช้งานได้ดี[/url]
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: พ. เมย. 05, 2006 10:48 am    ชื่อกระทู้: function sleep ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่คับ ผมมีปัญหาในการใช้ Function sleep คับ คือเมื่ออ่านใน MSDN มันบอกว่า สามารถทำงานเป็นหน่วย milisecได้ แต่เมื่อทดลองแล้ว เมื่อลดเวลาต่ำกว่า 100 milisec แล้ว โปรแกรมจะรวนคือทำงานช้าลง ผมเขียนโปรแกรมดังนี้ พี่ๆ ช่วยดูหน่อยคับว่ามันเกิดอะไรขึ้น ผมทำพลาดตรงไหนคับ
____________________________________________________

VERSION 5.00
Begin VB.Form Form1
Caption = "Sleep"
ClientHeight = 1845
ClientLeft = 60
ClientTop = 450
ClientWidth = 4470
LinkTopic = "Form1"
ScaleHeight = 1845
ScaleWidth = 4470
StartUpPosition = 3 'Windows Default
Begin VB.TextBox Text2
Height = 375
Left = 1560
TabIndex = 2
Text = "0"
Top = 960
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Start"
Height = 495
Left = 2880
TabIndex = 1
Top = 960
Width = 1335
End
Begin VB.TextBox Text1
Height = 375
Left = 1560
TabIndex = 0
Text = "0"
Top = 480
Width = 1215
End
Begin VB.Label Label3
Caption = "ใส่เวลา(วินาที)="
Height = 375
Left = 360
TabIndex = 5
Top = 960
Width = 1095
End
Begin VB.Label Label2
Caption = "ใส่จำนวนนับ="
Height = 375
Left = 480
TabIndex = 4
Top = 600
Width = 1095
End
Begin VB.Label Label1
Height = 375
Left = 2880
TabIndex = 3
Top = 480
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Dim count As Integer 'ตัวนับ
Dim TSleep As Integer 'ค่าหน่วงเวลาของ Sleep
Dim Number As Integer 'ผลลัพธ์ ที่แสดงออกมาที่ Label1
If Text1.Text = 0 Or Text2.Text = 0 Then
MsgBox ("กรุณาใส่จันวนนับและเวลาให้ถูกต้อง")
Else
Number = 0
count = Text1.Text
TSleep = Val(Text2.Text * 1000) / Val(Text1.Text)
Do While (count)
count = count - 1
Sleep (TSleep)
Number = Number + 1
Label1.Caption = Number
Loop
End If
End Sub

______________________________________________________

copy วางใน notepage แล้ว save เป็น *.frm

ขอความช่วยเหลือหน่อยนะคับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: พ. เมย. 05, 2006 2:53 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

คำพูด:
พี่คับ ผมมีปัญหาในการใช้ Function sleep คับ คือเมื่ออ่านใน MSDN มันบอกว่า สามารถทำงานเป็นหน่วย milisecได้ แต่เมื่อทดลองแล้ว เมื่อลดเวลาต่ำกว่า 100 milisec แล้ว โปรแกรมจะรวนคือทำงานช้าลง ผมเขียนโปรแกรมดังนี้ พี่ๆ ช่วยดูหน่อยคับว่ามันเกิดอะไรขึ้น ผมทำพลาดตรงไหนคับ


Sleep น่ะ OK แล้วครับแต่มันมีปัญหาเรื่อง loop ของโปรแกรม ลองแบบนี้ก็จะแก้ปัญหาได้

Do While (count)
DoEvents 'ให้ interupt cpu ได้
count = count - 1
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: พฤ. เมย. 06, 2006 12:35 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอบคุณพี่แมงเม่ามากๆเลยคับ @^-^@
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: พฤ. เมย. 06, 2006 10:59 pm    ชื่อกระทู้: พี่คับผมโดนผีหลอก ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่แมงเม่าคับ เมื่อคืนผมลองเพิ่ม code DoEvents เข้าไปตามที่พี่บอก มันใช้งานได้ดีมากเลยคับ ทำงานถูกต้อง Very Happy แต่พอปิดเครื่องแล้วมาเปิดเครื่องตอนสายๆ เปิดโปรแกรมขึ้นมา(ยังไม่มีการแก้ code เลยอ่ะคับ) Shocked มันกลับรวนเหมือนเดิมอีกคือนับได้ประมาณ 100 หน่วย ต่อ วินาที ที่ Sleep(1) แต่ถ้า Sleep(0) แล้วจะนับเร็วมาก มากกว่า 1000 หน่วยต่อวินาทีเลยคับ ผมสงสัยว่ามันเกิดอะไรขึ้นคับ แล้วพอจะมีทางแก้ได้อย่างไรคับ Crying or Very sad
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: พฤ. เมย. 06, 2006 11:05 pm    ชื่อกระทู้: Code ที่ใส่เพิ่มคับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมใส่ถูกหรือเปล่าคับ


VERSION 5.00
Begin VB.Form Form1
Caption = "Sleep"
ClientHeight = 1845
ClientLeft = 60
ClientTop = 450
ClientWidth = 4470
LinkTopic = "Form1"
ScaleHeight = 1845
ScaleWidth = 4470
StartUpPosition = 3 'Windows Default
Begin VB.TextBox Text2
Height = 375
Left = 1560
TabIndex = 2
Text = "0"
Top = 960
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Start"
Height = 495
Left = 2880
TabIndex = 1
Top = 960
Width = 1335
End
Begin VB.TextBox Text1
Height = 375
Left = 1560
TabIndex = 0
Text = "0"
Top = 480
Width = 1215
End
Begin VB.Label Label3
Caption = "ใส่เวลา(วินาที)="
Height = 375
Left = 360
TabIndex = 5
Top = 960
Width = 1095
End
Begin VB.Label Label2
Caption = "ใส่จำนวนนับ="
Height = 375
Left = 480
TabIndex = 4
Top = 600
Width = 1095
End
Begin VB.Label Label1
Height = 375
Left = 2880
TabIndex = 3
Top = 480
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Dim count As Long
Dim TSleep As Integer
Dim Number As Integer
If Text1.Text = 0 Or Text2.Text = 0 Then
MsgBox ("กรุณาใส่จำนวนนับและเวลาให้ถูกต้อง")
Else
Number = 0
count = Text1.Text
TSleep = Val(Text2.Text * 1000) / Val(Text1.Text)
Do While (count)

DoEvents '<----------ใส่เพิ่มเข้ามาถูกหรือเปล่าคับ****************

count = count - 1
Sleep (TSleep)
Number = Number + 1
Label1.Caption = Number
Loop
End If
End Sub
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: ศ. เมย. 07, 2006 12:11 am    ชื่อกระทู้: อาถรรพณ์ Thaiio ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

พี่คับ อย่าว่าอะไรผมเลยนะคับผมไม่ทราบว่าเหตุการณ์นี้เกิดขึ้นได้อย่างไร ตอนนี้ผมสามารถทำให้โปรแกรมทำงานได้ถูกต้องแล้วแต่ว่ามันต้องเปิด VB ควบคู่ไปกับ Web Thaiio หรือไม่ก็ Pantip คับ ผมกับเพื่อนทดลองหลายครั้งแล้วโดยทำดังนี้

1. เปิด VB อย่างเดียว -> โปรแกรมรวน(นับช้า)
2. เปิด VB + ต่อเนทโดยไม่เปิด Web -> โปรแกรมรวน
3. เปิด VB + ต่อเนท เปิด IE หน้าเปล่า -> โปรแกรมรวน
4. เปิด VB + ต่อเนท เปิด Web Google -> โปรแกรมรวน
5. เปิด VB + ต่อเนท เปิด Web Thaiio หรือ Pantip -> โปรแกรมใช้งานได้ตามปรกติ
6. เปิด VB + ต่อเนท เปิด Web อื่นๆ -> โปรแกรมรวน
7. copy หน้าแรก web thaiio แล้ว off line จากนั้นรัน VB และหน้าแรก thaiio ที่ copy ไว้-> โปรแกรมใช้งานได้ตามปรกติ
8.รัน VB แล้วปิดหน้าแรก thaiio ที่ copy ไว้-> โปรแกรมรวน
9.copy โปรแกรม VB ไปเปิดเครื่องที่ไม่ได้ต่อเนท(ไม่มีโมเดม) -> โปรแกรมรวน
10. copy โปรแกรม VB + copy หน้าแรก web thaiio ไปเปิดพร้อมกันในเครื่องที่ไม่ได้ต่อเนท -> โปรแกรมใช้งานได้ตามปรกติ

เลยได้ข้อสรุปว่า หน้าแรก Thaiio มีผลต่อการทำงานของ Function Sleep ของ VB !!!!! Shocked เป็นไปได้อย่างไรคับ ผมขอรบกวนพี่ช่วยผมด้วยคับ งงว่ามันเกิดขึ้นได้อย่างไร ตอนนี้ผมใช้ Windows xp Home SP2 และ Windows xp Pro SP2 อยู่คับ ผมลองทั้ง Notebook และ PC แล้วได้ผลเหมือนกันคับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: ศ. เมย. 07, 2006 9:40 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

แปลกครับ ส่งโปรแกรมมาให้ดูหน่อยได้ไหม
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: ศ. เมย. 07, 2006 1:48 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

โปรแกรมตามข้างบนเลยครับ copy แล้ว Paste ลงใน Note page แล้ว Save เป็น *.frm แล้วลองตามที่ผมทดลองได้เลยคับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อาทิตย์ เมย. 09, 2006 4:45 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมทดลองกับ VB6 ก็เหมือนกัน ปัญหาเกิดจากมีการแย่ง memory ของ application เพราะว่า sleep function จะเรียกผ่าน system file ชื่อ kernel32.dll ซึ่งมีหน้าที่หลักคือการบริหาจัดการ memory ของระบบ window ทั้งหมด

Microsoft เค้าก็แนะนำว่าไม่ควรใช้ sleep fuction เพราะมันมีข้อเสียเมื่อรันหลายโปรแกรมพร้อมกันจะทำให้โปรแกรมทำงานไม่(ค่อย)ถูกต้อง

"Many programmers use the Sleep API function to pause the execution of their programs. One of the disadvantages of using Sleep is that it pauses the thread that the application is running in, and that any window that the application has open will not repaint properly. This may present an unattractive user interface to the user. An alternative to Sleep is to use SetWaitableTimer, which will allow the screen to repaint, receive DDE messages, and so forth"

จึงแนะนำว่าให้ใช้ SetWaitableTimer ก็ลองทำตาม link นี้ครับ
http://support.microsoft.com/kb/q231298/[/b]
กลับไปข้างบน
non
บุคคลทั่วไป





ตอบตอบ: จ. เมย. 10, 2006 9:49 pm    ชื่อกระทู้: to you kathi ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ธินายลองเอาโค้ดข้างล่างนี้ไปประยุกต์ดูน่ะ

Private Sub Command1_Click()
hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
CloseHandle hThread
End Sub

Private Sub Form_Unload(Cancel As Integer)
'If the thread is still running, close it
If hThread <> 0 Then TerminateThread hThread, 0
End Sub

'In a module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long

Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long

Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public hThread As Long, hThreadID As Long

Public Sub AsyncThread()
'Let this thread sleep for 10 seconds
Sleep 10000
hThread = 0
End Sub
Smile
กลับไปข้างบน
wintrak
บุคคลทั่วไป





ตอบตอบ: จ. เมย. 10, 2006 10:36 pm    ชื่อกระทู้: แหล่งรวม วงจร โปรเจค อิเล็ก ไมโคร ฟรี ฟรี ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอแนะนำ เว็บที่รวม วงจร โปรเจค อิเล็ก ไมโคร น่าสนใจมาก
มีแลป ไมโคร ให้ทดลอง 16F628

http://www.elec-micro.com/

มีทั้งวงจร อิเล็กทรอนิกส์ โปรเจคอิเล็กทรอนิกส์ การทดลองไมโคร 16F628 โครงงานไมโคร ที่สำคัญ ข้อมูลฟรี อ้อ ภาษาอังกฤษ ครับ
กลับไปข้างบน
jai
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 11, 2006 7:43 am    ชื่อกระทู้: ขอ code เกียว วันเดือน ปี ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมกำลังศึกษาเกี่ยวกับการคำนวณเรื่องของวันเดือนปี
เช่น
1. วันนี้วันที่ 11/04/2549 นับไปอีก 2 ปี 2 เดือน 2 วัน จะไปครบวันที่อะไร เดือนอะไร พ.ศ.อะไร จะต้องเขียนcode อย่างไร
2. วันนี้วันที่ 11/04/2549 นับถึงวันที่ 15/05/2550 จะได้จำนวนกีปีกี่เดือนกี่วัน ต้องเขียนcode อย่างไร
ขอคุณที่ช่วยแนะนำล่วงหน้าครับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 11, 2006 7:57 am    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ใช้ datediff function

iSecond = DateDiff("s", Now, "13 April")
'iMinute = DateDiff("n", Now, "13 April")
'iHour = DateDiff("h", Now, "13 April")
'iDay = DateDiff("d", Now, "13 April")
'iMonth = DateDiff("m", Now, "13 April")
'iYear = DateDiff("y", Now, "13 April")

ลอง search ใน google "DateDiff" มี code ตัวอย่างเยอะ
กลับไปข้างบน
kathi
บุคคลทั่วไป





ตอบตอบ: พ. เมย. 12, 2006 1:38 pm    ชื่อกระทู้: ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอบคุณพี่แมงเม่าและNon มากๆ เลยคับ ได้ผลยังไงแล้วจะมาบอกคับ Very Happy
กลับไปข้างบน
โอม
บุคคลทั่วไป





ตอบตอบ: ส. เมย. 15, 2006 3:21 pm    ชื่อกระทู้: ผมขอโค้ด motion detect คับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ผมขอโค้ด motion detect คับ ผมจะนำไปจับบาร์โค้ดด้วย webcam คับ
กลับไปข้างบน
แมงเม่า
บุคคลทั่วไป





ตอบตอบ: อ. เมย. 18, 2006 11:37 am    ชื่อกระทู้: Code of the day ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

Code of the day: Database ส่วนตัวกับ widow registry

เอาไว้เก็บ setting ได ๆ โดยไม่ต้องสร้างไฟล์ database ให้ยุ่งยาก

Option Explicit
Dim i As Integer
Private Sub Command2_Click()
Randomize
i = Int(15 * Rnd) + 1
Me.BackColor = QBColor(i)
End Sub
Private Sub Form_Load()
Call loadsetting
End Sub
Private Sub Command1_Click()
Call save
End Sub
Sub loadsetting()
Form1.Top = GetSetting("VB", "FormSettings", "FormTop", Form1.Top)
Form1.Left = GetSetting("VB", "FormSettings", "FormLeft", Form1.Left)
Form1.BackColor = GetSetting("VB", "FormSettings", "Backcolor", Form1.BackColor)
Option1.Value = GetSetting("VB", "FormSettings", "Value1", Option1.Value)
Option2.Value = GetSetting("VB", "FormSettings", "Value2", Option2.Value)
Option3.Value = GetSetting("VB", "FormSettings", "Value3", Option3.Value)
Text1.Text = GetSetting("VB", "FormSettings", "Text", Text1.Text)
End Sub
Sub save()
savesetting "VB", "FormSettings", "FormTop", Form1.Top
savesetting "VB", "FormSettings", "FormLeft", Form1.Left
savesetting "VB", "FormSettings", "Backcolor", Form1.BackColor
savesetting "VB", "FormSettings", "Value1", Option1.Value
savesetting "VB", "FormSettings", "Value2", Option2.Value
savesetting "VB", "FormSettings", "Value3", Option3.Value
savesetting "VB", "FormSettings", "Text", Text1.Text
Unload Me
End Sub

Cool
กลับไปข้างบน
โอม
บุคคลทั่วไป





ตอบตอบ: พ. เมย. 19, 2006 8:10 am    ชื่อกระทู้: ขอโค้ด motion detection คับ ตอบกระทู้ด้วยเครื่องหมายคำพูด(quote) แก้ไข/ลบคำตอบนี้ ลบคำตอบนี้ แสดง IP

ขอลิสโค้ด motion detection คับ ผมจะลองใช้จับภาพบาร์โค้ด แล้วใข้ qsbarcode39
แปลงภาพเป็นรหัส ผม download thaiwara ไม่ได้ ผมอยากขอโค้ดพี่แมงเม่าด้วยคับ

http://www.9down.com/
15 most read stories

· 1: Microsoft Windows Genuine Advantage Cracked! - (515508 reads)
· 2: Hiren's BootCD v7.2 With keyboard Patch + Boot Fix - (335830 reads)
· 3: NERO 7 Premium + KeyGen - (333846 reads)
· 4: Hiren's BootCD 6.0 + Keyboard Patch - (269029 reads)
· 5: Adobe Photoshop CS2 9.0 Final + keygen & acitvater - (253473 reads)
· 6: Symantec System 2005 Download - (246376 reads)
· 7: Style XP 2.0 final + Keygen - (175591 reads)
· 8: Nero Burning Rom v7.0.1.2 Final + ORiON's KEYGEN - (132752 reads)
· 9: Alcohol120% v1.9.2.1705 Retail iNCL *wORKiNG Key* - (130797 reads)
· 10: Internet Explorer 7.0 Beta 1 for Windows XP - (126699 reads)
· 11: K-Lite v2.6 PR1 - (126200 reads)
· 12: WinRAR 3.51 + Working Key!!! - (125562 reads)
· 13: Google Earth Free/Pro/Plus v3.0.0395.0 - (116568 reads)
· 14: WinDVD Platinum 6 v6.0.6.42 + KeyGen - (115253 reads)
· 15: Ahead Nero v7.0 Ultra Edition Incl Keymaker (RiPED) - (113126 reads)

15 most voted
กลับไปข้างบน
แสดงข้อมูลส่วนตัวของสมาชิก ส่งข่าวสารส่วนตัว ส่งอีเมล์
แสดงการตอบก่อนนี้:   

หน้าืั้ต่อไป

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

ไปที่ส่วนของการควบคุมระบบ


Us Web Relation :  Logic Ladder  |   Controller Motion  |   Cylinder Hydraulic  |   Fisher Valve  |   RFID Implementation  |   Smart Card Link  |   Electric Rise  |   Fabrication PCB  |   Motor Stepper  |   Sensor Motion  |   Robot Project  |   Acquisition Data  | 
Powered by phpBB 2.0.6 © 2001, 2002 phpBB Group