 |
|
| ดูกระทู้ก่อนนี้
:: ดูกระทู้ถัดไป
|
| ผู้ส่ง |
ข้อความ |
voyager
เข้าร่วมเมื่อ: 18 สค. 2005 ตอบ:
68 ที่อยู่: เชียงใหม่
|
ตอบ: พ. สค. 24, 2005 2:17
pm ชื่อกระทู้:
ห้องVBส่วนตัวของแมงเม่า |
 |
|
| ใครอยาก post
กระทู้เกี่ยวกับ visual basic 6.0 ทั้งที่เป็น hardware
interface หรือ miscellaneous ถ้าไม่มีใคร post ก็จะมา post เอง
555555 | |
| กลับไปข้างบน |
|
 |
Voice บุคคลทั่วไป
|
ตอบ: ศ. ตค. 28, 2005
11:29 pm ชื่อกระทู้:
|
 |
|
อยากให้ใครก็ได้ที่มีความรู้ช่วยดูโปรแกรมนี้หน่อย
ว่าทำไมผมไม่สามารถส่งเสียงไปยังปลายทางได้
จะเขียนโปรแกรมตอบรับโทรศัพท์อัตโนมัติ
แต่ตอนนี้ไม่สามารถส่งเสียงได้ ไม่ทราบว่าเขียนโปรแกรมผิดรึเปล่า
ช่วยแนะนำหน่อยครับ ต้องการใช้ด่วนครับ
--------------------------------------------------------------
Option Explicit Private Declare Function mciExecute
Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Public Speak As Variant Public Ring As Boolean Dim
buff As Variant Dim temp As Variant
--------------------------------------------------------------
Private Sub Command1_Click() Command1.Caption = "RING"
MSComm1.Output = "ATH0" + Chr(13) End Sub
--------------------------------------------------------------
Private Sub Form_Load() Ring = False
MSComm1.Settings = "9600,N,8,1" MSComm1.CommPort = 1
MSComm1.InputLen = 0 MSComm1.PortOpen = True
MSComm1.RThreshold = 1 MSComm1.Output = "AT+FCLASS=8"
+ Chr(13) End Sub
--------------------------------------------------------------
Private Sub MSComm1_OnComm() Select Case
MSComm1.CommEvent Case comEvReceive buff =
MSComm1.Input Text2.Text = Text2.Text + buff + vbCrLf
If InStr(1, buff, "RING") Then Ring = True
Command1.Caption = "HANK UP" End If If Ring = True
Then MSComm1.Output = "ATA" + Chr(13) MSComm1.Output =
"AT+VIT=6" + Chr(13) MSComm1.Output = "AT+VSL=1" + Chr(13)
Speak = mciExecute("play C:\VMGreet.wav") Ring = False
Else If InStr(1, buff, "~") Then DTMF (temp)
Else temp = buff End If End If End Select
End Sub
--------------------------------------------------------------
Private Sub DTMF(numdtmf As Variant) Text1.Text =
Text1.Text + "<<" If InStr(numdtmf, "1") Then
Text1.Text = Text1.Text + "1" ElseIf InStr(1, numdtmf,
"2") Then Text1.Text = Text1.Text + "2" ElseIf
InStr(1, numdtmf, "3") Then Text1.Text = Text1.Text + "3"
ElseIf InStr(1, numdtmf, "4") Then Text1.Text =
Text1.Text + "4" ElseIf InStr(1, numdtmf, "5") Then
Text1.Text = Text1.Text + "5" ElseIf InStr(1, numdtmf,
"6") Then Text1.Text = Text1.Text + "6" ElseIf
InStr(1, numdtmf, "7") Then Text1.Text = Text1.Text + "7"
ElseIf InStr(1, numdtmf, "8") Then Text1.Text =
Text1.Text + "8" ElseIf InStr(1, numdtmf, "9") Then
Text1.Text = Text1.Text + "9" ElseIf InStr(1, numdtmf,
"*") Then Text1.Text = Text1.Text + "*" ElseIf
InStr(1, numdtmf, "0") Then Text1.Text = Text1.Text + "0"
ElseIf InStr(1, numdtmf, "#") Then Text1.Text =
Text1.Text + "#" End If Text1.Text = Text1.Text +
">>" + vbCrLf End Sub
-------------------------------------------------------------- | |
| กลับไปข้างบน |
|
 |
McCA1414 บุคคลทั่วไป
|
ตอบ: ส. ตค. 29, 2005
12:30 pm ชื่อกระทู้:
รบกวนด้วยนะครับ |
 |
|
| รบกวนพี่แมงเม่า
ช่วยทิ้งเบอร์ ไว้ให้หน่อยได้มั้ยครับ เพราะผม
อยากจะรบกวนปรึกษาเรื่องโปเจ็ค เกี่ยวกับการเขียน file stream
หรือถ้าพี่ไม่สะดวก ยิงมาก้อได้ครับ ผมโทรกลับเองนะครับ อ้อ
090393258,079770117,058063370 น้องเอ กับน้องปอด์นนะครับ
รบกวนอย่างสูงเลยนะครับ เพราะจะสอบวันอังคารแล้ว
เหลือปัญหาตรงเรื่องการส่งภาพที่ยังแก่ไม่ตกเลยนะครับ หรือ
รบกวนท่านใดก็ได้ครับ ที่พอจะให้คำแนะนำและปรึกษาได้
ช่วยยิงเบอร์มาหน่อยนะครับ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: ส. ตค. 29, 2005 6:09
pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
| รบกวนพี่แมงเม่า ช่วยทิ้งเบอร์
ไว้ให้หน่อยได้มั้ยครับ เพราะผม
อยากจะรบกวนปรึกษาเรื่องโปเจ็ค เกี่ยวกับการเขียน file
stream หรือถ้าพี่ไม่สะดวก ยิงมาก้อได้ครับ
ผมโทรกลับเองนะครับ อ้อ 090393258,079770117,058063370
น้องเอ กับน้องปอด์นนะครับ รบกวนอย่างสูงเลยนะครับ
เพราะจะสอบวันอังคารแล้ว
เหลือปัญหาตรงเรื่องการส่งภาพที่ยังแก่ไม่ตกเลยนะครับ หรือ
รบกวนท่านใดก็ได้ครับ ที่พอจะให้คำแนะนำและปรึกษาได้
ช่วยยิงเบอร์มาหน่อยนะครับ |
ไม่จบแน่ แฮะๆ.....ล้อเล่น บอกตรง ๆ
ว่าการส่งภาพ(clipboard)โดยตรงนั้นไม่ง่ายเลยปกติก็จะส่งเป็นไฟล์(xx.jpg,xx.bmp)แล้วให้
Auto view บน picture box
ของอีกฝั่งเมื่อภาพ(ไฟล์)ไปถึงแล้วโดยอาศัยการอ่านจาก directory
ของโปรเจคหรือdirectory ที่กำหนด
พี่คิดว่าน้องเขียนโปรแกรมส่งไฟล์ระหว่าง client กับ
server ได้แล้ว จะเสริมเรื่องการเอาภาพมาแสดงบน pixture box
แล้วกัน
ลองเอาไปดัดแปลง เช่น
เมื่อมีไฟล์ภาพใหม่ถูกส่งเข้ามา ก็ให้เอาภาพนั้นไปแสดงบน picture
box ทันที แล้วมันก็จะดูเหมือนว่าภาพถูกส่งไปโดยตรงจริง ๆ
http://www.geocities.com/ezy_math/viewer.zip
 | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: ส. ตค. 29, 2005 6:16
pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
| พี่ครับ
ผมต้องสร้างฟอร์มยังไงบ้างครับถึงจะรัน sourcecode
ของพี่ได้อ่า คือผมรันแล้วมันไม่มีภาพเลย
มีแต่ฟอร์มสีเทาๆ |
ไม่ Declare แล้วมันจะรู้จักได้ไงละครับ
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 capCreateCaptureWindow Lib "avicap32.dll"
Alias "capCreateCaptureWindowA" (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) As Long
Private
mCapHwnd As Long
Private Const CONNECT As Long = 1034
Private Const DISCONNECT As Long = 1035 Private Const
GET_FRAME As Long = 1084 Private Const COPY As Long = 1054
 | |
| กลับไปข้างบน |
|
 |
McCA1414 บุคคลทั่วไป
|
ตอบ: ส. ตค. 29, 2005 7:16
pm ชื่อกระทู้:
ขอบคุณพี่แมงเม่ามากนะครับ แล้วผมจะลองพยายามดู นะครับ |
 |
|
ขอบคุณพี่แมงเม่ามากนะครับ แล้วผมจะลองพยายามดู นะครับ
ได้ผลยังไง จะเล่าให้ฟังนะครับ | |
| กลับไปข้างบน |
|
 |
รัต
เข้าร่วมเมื่อ: 17 ตค. 2005 ตอบ:
8 ที่อยู่: 57 ม.1 ต.โขมง อ.ท่าใหม่ จ.จันทบุรี
|
ตอบ: ส. ตค. 29, 2005 9:20
pm ชื่อกระทู้:
|
 |
|
| คือผมจะรับเสียงกีต้าร็จาก
soundcard พี่พอจะมี code vb ที่ใช้รับเสียงจาก soundcard
ไหมครับ ผมคิดว่ามันน่าคล้ายๆ
กับการอัดเสียงแต่ผมไม่รู้ว่าจะทำยังไง รบกวนพี่หน่อยนะครับ
....ขอบคุณครับ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: อาทิตย์ ตค. 30, 2005
2:48 pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
| คือผมจะรับเสียงกีต้าร็จาก soundcard
พี่พอจะมี code vb ที่ใช้รับเสียงจาก soundcard ไหมครับ
ผมคิดว่ามันน่าคล้ายๆ
กับการอัดเสียงแต่ผมไม่รู้ว่าจะทำยังไง
รบกวนพี่หน่อยนะครับ
....ขอบคุณครับ |
Record เสียงจาก sound card
ก็ไม่ยากนิครับ
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
ลองเอาไป search หาใน google น่าจะมี code
อยู่เยอะ | |
| กลับไปข้างบน |
|
 |
เด็กตาดำๆ บุคคลทั่วไป
|
ตอบ: อาทิตย์ ตค. 30, 2005
4:01 pm ชื่อกระทู้:
|
 |
|
พี่แมงมเค้าบ T_T
ช่วยสอนผมเกี่ยวกับโปรแกรม Motion Capture ของพี่ที
ผมลองโหลดมาใช้แล้ว แต่ไม่มีซอดโค้ดอ่ะครับมีแต่ตัว exe
และซอดโค้ดที่พี่ให้มามันตัวเดียวกันรึเปล่าครับ
มันสั้นขนาดนี้เลยเหรอครับ ผมมีความรู้ด้าน vb นิดเดียวเอง T_T
อยากให้พี่อธิบายเกี่ยวกับการเขียนโปรแกรมนี้ได้ป่าวอ่าครับ
เช่นเริ่มสร้างฟอร์ม คือผมไม่รู้จะสร้างอะไรยังไง
ซอดโค้ดก๊อบมาวางแล้วก็ไม่มีไรเกิดขึ้นเลยอ่ะครับ
ด้วยความนับถือครับ พี่แมงเม่า | |
| กลับไปข้างบน |
|
 |
รัต
เข้าร่วมเมื่อ: 17 ตค. 2005 ตอบ:
8 ที่อยู่: 57 ม.1 ต.โขมง อ.ท่าใหม่ จ.จันทบุรี
|
ตอบ: จ. ตค. 31, 2005
12:45 am ชื่อกระทู้:
|
 |
|
ขอบคุณครับพี่
แล้วผมจะลองไปใช้ดูครับ แล้วจะมารบกวนพี่ใหม่ครับ ขอบคุณครับ
 | |
| กลับไปข้างบน |
|
 |
น๊อต บุคคลทั่วไป
|
ตอบ: จ. ตค. 31, 2005 1:37
am ชื่อกระทู้:
|
 |
|
ผมต้องการให้โมเด็มเล่นเสียง
wav แบบ pcm เพื่อเวลาใครโทรเข้ามาแล้วได้ยินเสียงไฟล์ wav
นั้นครับ โดยใช้ VB ไม่ทราบว่าจะต้องเขียนโค๊ดยังไงครับ
พี่แมงเม้าพอจะให้ความรู้เรื่องนี้ได้รึเปล่าครับ
ปล.เคยลองทำตามในเวปนี้แล้วครับ
โทรเข้ามาไม่ได้ยินเสียงครับจะมีเสียงทีลำโพงของคอมไม่ได้ยินที่โทรศัพท์ที่ใช้โทรครับ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: จ. ตค. 31, 2005
10:17 am ชื่อกระทู้:
|
 |
|
| คำพูด: |
พี่แมงมเค้าบ T_T
ช่วยสอนผมเกี่ยวกับโปรแกรม Motion Capture ของพี่ที
ผมลองโหลดมาใช้แล้ว แต่ไม่มีซอดโค้ดอ่ะครับมีแต่ตัว exe
และซอดโค้ดที่พี่ให้มามันตัวเดียวกันรึเปล่าครับ
มันสั้นขนาดนี้เลยเหรอครับ ผมมีความรู้ด้าน vb นิดเดียวเอง
T_T
อยากให้พี่อธิบายเกี่ยวกับการเขียนโปรแกรมนี้ได้ป่าวอ่าครับ
เช่นเริ่มสร้างฟอร์ม คือผมไม่รู้จะสร้างอะไรยังไง
ซอดโค้ดก๊อบมาวางแล้วก็ไม่มีไรเกิดขึ้นเลยอ่ะครับ
ด้วยความนับถือครับ
พี่แมงเม่า |
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 capCreateCaptureWindow Lib
"avicap32.dll" Alias "capCreateCaptureWindowA" (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) As Long
Private mCapHwnd As Long
Private Const CONNECT
As Long = 1034 Private Const DISCONNECT As Long = 1035
Private Const GET_FRAME As Long = 1084 Private Const
COPY As Long = 1054
-----------------------Form
Load------------ inten = 25 'The tolerance of
recognizing the pixel change Tolerance = 35
Tppx =
Screen.TwipsPerPixelX Tppy = Screen.TwipsPerPixelY
ReDim POn(640 / inten, 480 / inten) ReDim P(640 /
inten, 480 / inten)
STARTCAM -------------------
------Sub STARTCAM--------- mCapHwnd =
capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 640, 480,
Me.hwnd, 0) DoEvents SendMessage mCapHwnd, CONNECT, 0,
0 Timer1.Enabled = True
-------------------------------------
code
ก็มีแค่นี้แหละ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: จ. ตค. 31, 2005
10:24 am ชื่อกระทู้:
|
 |
|
| คำพูด: |
ผมต้องการให้โมเด็มเล่นเสียง wav แบบ pcm
เพื่อเวลาใครโทรเข้ามาแล้วได้ยินเสียงไฟล์ wav นั้นครับ
โดยใช้ VB ไม่ทราบว่าจะต้องเขียนโค๊ดยังไงครับ
พี่แมงเม้าพอจะให้ความรู้เรื่องนี้ได้รึเปล่าครับ
ปล.เคยลองทำตามในเวปนี้แล้วครับ
โทรเข้ามาไม่ได้ยินเสียงครับจะมีเสียงทีลำโพงของคอมไม่ได้ยินที่โทรศัพท์ที่ใช้โทรครับ |
ลองดู ------Module------ Public
Declare Function sndPlaySound Lib "winmm.dll" Alias
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags
As Long) As Long Public Declare Function sndStopSound Lib
"winmm.dll" Alias "sndPlaySoundA" (ByVal lpszNull As Long,
ByVal uFlags As Long) As Long
Public Const SND_SYNC =
&H0 Public Const SND_ASYNC = &H1 Public Const
SND_NODEFAULT = &H2 Public Const SND_MEMORY = &H4
Public Const SND_LOOP = &H8 Public Const
SND_NOSTOP = &H10 Public Const SND_NOWAIT = &H2000
Public Const SND_FILENAME = &H20000 Public Const
SND_RESOURCE = &H40004
----------Form----------------
Private Sub
cmdBrowse_Click() On Error GoTo Err cdOpen.Filter =
"Wav Files (*.wav)|*.wav" cdOpen.ShowOpen
txtSound.Text = cdOpen.FileName txtNumber.Text = ""
txtNumber.SetFocus Err: Exit Sub End Sub
-------------------------- Private Sub
cmdDial_Click() On Error Resume Next Dim cBuffer$
Dim WaitTime As Single, StartTime As Single, FinalTime As
Single WaitTime = 30 If cmdDial.Caption = "Dial" Then
cmdDial.Caption = "Hang up" With MSComm1 .CommPort
= 1 .Settings = "9600,N,8,1" .InputLen = 0
.PortOpen = True .Output = "ATDT" & txtNumber.Text
& Chr$(13) StartTime = Timer cmdPlay.Enabled =
True Do Me.Caption = Str(Int(Timer - StartTime))
DoEvents Loop Until cmdDial.Caption = "Dial"
Me.Caption = "Dialer" End With Else
cmdDial.Caption = "Dial" MSComm1.PortOpen = False
cmdPlay.Enabled = False End If End Sub
------------------------------ Private Sub
cSoundPlay(cpath As Variant) Variable =
sndPlaySound(cpath, SND_ASYNC) End Sub
----------------------------- Private Sub
cSoundStop() Variable = sndStopSound(0, SND_ASYNC) End
Sub
---------------------------- Private Sub
cmdPlay_Click() On Error Resume Next If
cmdPlay.Caption = "Play Sound" Then cSoundPlay
txtSound.Text cmdPlay.Caption = "Stop Sound" Else
cSoundStop cmdPlay.Caption = "Play Sound" End If
End Sub | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: จ. ตค. 31, 2005
11:18 am ชื่อกระทู้:
|
 |
|
คิดว่าใครเป็นนักดนตรีน่าจะชอบโปรแกรมนี้
เพราะรวมเอา piano + drum และ sound effect มากกว่า 1000(เท่า ๆ
ที่ดูด้วยสายตา) ผมเองไม่ใช่นักดนตรีแต่เห็นแล้วก็ชอบมาก ว่าง ๆ
จะเอาไปฝึก โปรแกรมตัวนี้เขียนด้วย Visual basic 6.0
สงวนลิขสิทธ์โดย YAMAHA ผมก็ไม่กล้าจะไปดัดแปลง code เค้า
เพื่อไม่ให้เป็นปัญหาผมจะไม่เอามา post ครับแต่จะ upload ตัว exe
เป็นโปรแกรมที่เป็นประโยชน์ดีทีเดียว
http://www.geocities.com/ezy_math/YamahaPiano.zip | |
| กลับไปข้างบน |
|
 |
Luxu_lary
เข้าร่วมเมื่อ: 14 สค. 2005 ตอบ:
2
|
ตอบ: จ. ตค. 31, 2005 8:49
pm ชื่อกระทู้:
ปัญหาการเขียนโปรแกรมเชื่อมต่อHardware |
 |
|
สวัสดีค่ะ พี่แมงเม่า
หนูมีเรื่องอยากจะถามค่ะ คือหนูสร้างคีย์บอร์ดขึ้นมาใหม่
และกำหนดโคดให้ปุ่มแต่ละปุ่ม เช่น กดปุ่มที่1 ปุ่มที่1
จะส่งรหัสแอสกี่31 หรือเลข1 ออกมา
เมื่อลองทำการติดต่อกับคอมโดยใช้ serial port โดยเปิดที่โปรแกรม
HyperTerminal เมื่อกดปุ่ม1 บนหน้าจอจะแสดงเลข1 ออกมา
เมื่อกดปุ่มที่เรากำหนดโค๊ดเป็น H41 ก็จะแสดง a ออกมา
แสดงว่าคีย์บอร์ดที่สร้างสามารถทำการติดต่อกับคอมได้
แต่พอลองนำมาเขียนVB
ทำการติดต่อไม่สามารถทำการติดต่อได้ไม่รู้ว่าหนูเขียนโคดผิดหรือเปล่า
รบกวนพี่แมงเม่า ช่วย เรื่องโคด เอาแค่ กดปุ่มคีย์บอร์ดเลข1
คีย์บอร์ดจะส่ง ascii"1" แล้วโปรแกรมสามารถรับค่า
ascii"1"เมื่อVB รับค่าascii"1"ได้แล้ว ก็ให้แสดงคำว่า
"รับได้แล้ว" เมื่อกดปุ่มคีย์บอร์ดเลข5จะส่งascii"5"
เมื่อเครื่องรับได้แสดงคำว่า "ไชโย"
ขอขอบคุณพี่แมงเม่าล่วงหน้ามากๆนะค่ะ
[/img] | |
| กลับไปข้างบน |
|
 |
เด็กตาดำๆ บุคคลทั่วไป
|
ตอบ: อ. พย. 01, 2005 3:36
pm ชื่อกระทู้:
|
 |
|
พี่แมงเม่าครับ Sub Start
Cam นี่มันอยู่ใน Form ของอะไรครับ ของ Timer รึปล่าว
แต่ผมลองทำดูไม่มีภาพของเว็บแคมอ่ะครับ มีแต่สีเทาเปล่าๆ ของ
Form เรา -*- แต่พอเปิดโปรแกรมของพี่ดูโปรแกรมก็ทำงานปกติดี
เม็ดสีแดงก็ทำงานได้ดี เซฟภาพได้ อ่ะครับ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: อ. พย. 01, 2005 7:09
pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
สวัสดีค่ะ พี่แมงเม่า
หนูมีเรื่องอยากจะถามค่ะ
คือหนูสร้างคีย์บอร์ดขึ้นมาใหม่
และกำหนดโคดให้ปุ่มแต่ละปุ่ม เช่น กดปุ่มที่1 ปุ่มที่1
จะส่งรหัสแอสกี่31 หรือเลข1 ออกมา
เมื่อลองทำการติดต่อกับคอมโดยใช้ serial port
โดยเปิดที่โปรแกรม HyperTerminal เมื่อกดปุ่ม1
บนหน้าจอจะแสดงเลข1 ออกมา เมื่อกดปุ่มที่เรากำหนดโค๊ดเป็น
H41 ก็จะแสดง a ออกมา
แสดงว่าคีย์บอร์ดที่สร้างสามารถทำการติดต่อกับคอมได้
แต่พอลองนำมาเขียนVB
ทำการติดต่อไม่สามารถทำการติดต่อได้ไม่รู้ว่าหนูเขียนโคดผิดหรือเปล่า
รบกวนพี่แมงเม่า ช่วย เรื่องโคด เอาแค่
กดปุ่มคีย์บอร์ดเลข1 คีย์บอร์ดจะส่ง ascii"1"
แล้วโปรแกรมสามารถรับค่า ascii"1"เมื่อVB
รับค่าascii"1"ได้แล้ว ก็ให้แสดงคำว่า "รับได้แล้ว"
เมื่อกดปุ่มคีย์บอร์ดเลข5จะส่งascii"5"
เมื่อเครื่องรับได้แสดงคำว่า
"ไชโย" |
อ่านแล้วก็งง ๆ นะ 1.
กดปุ่มคีย์บอร์ดเลข1 คีย์บอร์ดจะส่ง ascii"1"
ใช้
GetKeyState หรือ GetAsyncKeyState
มีข้อดีคือมันจะทำงานเสมอไม่ว่า window ไดจะ Active อยู่
'---------------Module-------------------- Private
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As
Long) As Integer
Private Declare Function GetKeyState
Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Function GetNumLock() As Boolean
GetNumLock = CBool(GetKeyState(vbKeyNumlock) And 1)
End Function
'----------------Form------------------
KeyResult = GetAsyncKeyState(97) If KeyResult =
-32767 Then If GetNumLock = True Then MsgBox "Key num1 was
pressed", , "Pressed" 'ให้ check numlock ด้วย
End If
2. แล้วโปรแกรมสามารถรับค่า ascii"1"เมื่อVB
รับค่าascii"1"ได้แล้ว ก็ให้แสดงคำว่า "รับได้แล้ว"
รับมาจากอะไรจากภายนอกหรือจากตัวมันเอง ลอง simulate
โดยการ sendkeys เหมือนกับ 1 ถูกส่งมาจาก source ไดๆ
Private Sub Timer1_Timer() SendKeys "1" End
Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Label1.Caption = KeyAscii Label2.Caption =
Chr(KeyAscii) If Chr(KeyAscii) = 1 Then MsgBox "Num:"
& Chr(KeyAscii) & "was detected", , "Detect"
Timer1.Enabled = False End Sub | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: อ. พย. 01, 2005 7:11
pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
พี่แมงเม่าครับ Sub Start Cam
นี่มันอยู่ใน Form ของอะไรครับ ของ Timer รึปล่าว
แต่ผมลองทำดูไม่มีภาพของเว็บแคมอ่ะครับ มีแต่สีเทาเปล่าๆ
ของ Form เรา -*-
แต่พอเปิดโปรแกรมของพี่ดูโปรแกรมก็ทำงานปกติดี
เม็ดสีแดงก็ทำงานได้ดี เซฟภาพได้
อ่ะครับ |
Sub startcam
=>>Timer1.enabled | |
| กลับไปข้างบน |
|
 |
บุคคลทั่วไป
|
ตอบ: อ. พย. 01, 2005
11:05 pm ชื่อกระทู้:
|
 |
|
พี่แมงเม่า
ทำไม Vb
มันถึงฟ้อง error'8005'port already open
พอเราคลิ๊กที่debugมันจะมีแถบสีเหลืองขึ้นที่ mscomm.PortOpen =
True หนูได้ต่อ serial port กับคอมแล้ว ทำการเชื่อมต่อสายที่ขา
Tx กับ Rx
หนูลองtest การเชื่อมต่อโดยใช้ hyper terminal
เมื่อพิมพ์อักขระตัวใด อักขระตัวนั้นก็จะแสดงผลออกบนจอ
แต่พอมาลองกับ VB โดยใช้form และโปรแกรมของ http://www.dcs.napier.ac.uk/~bill/pdf/Io_ch26.PDF
ตัวอย่าง programที่ 26.4 codeที่หนูพิมพ์คือ
Private Sub Form_Load() MSComm1.Settings =
"9600,n,8,1" MSComm1.CommPort = 1 MSComm1.PortOpen =
True MSComm1.InputLen = 0 End Sub
Private Sub
form_keypress(keyascii As Integer) MSComm1.Output =
keyascii Text1.Text = keyascii End Sub
Private
Sub mscomm1_oncomm() If (MSComm1.CommEvent = comEvReceive)
Then Text2.Text = MSComm1.Input End If End Sub
End Sub
Private Sub Command1_Click() End
End Sub
ลองเอาโปรแกรมนี้ไปtest
อีกเครื่องหนึ่งปรากฏว่ารันได้แต่เราลองพิมพ์ลงบน text1
มีตัวอักขระตามที่เราพิมพ์แต่ที่ text2 ไม่มีตัวอักขระ ขึ้นตาม
text1 | |
| กลับไปข้างบน |
|
 |
เด็กตาดำๆ บุคคลทั่วไป
|
ตอบ: พ. พย. 02, 2005 1:29
pm ชื่อกระทู้:
|
 |
|
โค้ดทั้งหมดเป็นแบบนี้เปล่าครับใน form ผมมี
Timer ตัวเดียวเอง นอกนั้นเป็นสีเทาล้วน ต้องมีอะไรใน form
อีกหรือเปล่าครับ ไม่เห็นมีถาพเลยอ่า -*-
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
capCreateCaptureWindow Lib "avicap32.dll" Alias
"capCreateCaptureWindowA" (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) As Long
Private mCapHwnd As
Long
Private Const CONNECT As Long = 1034 Private
Const DISCONNECT As Long = 1035 Private Const GET_FRAME As
Long = 1084 Private Const COPY As Long = 1054
Private Sub Form_Load() inten = 25 'The
tolerance of recognizing the pixel change tolerance = 35
Tppx = Screen.TwipsPerPixelX Tppy =
Screen.TwipsPerPixelY
ReDim POn(640 / inten, 480 /
inten) ReDim P(640 / inten, 480 / inten) End Sub
Private Sub Timer1_Timer() mCapHwnd =
capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 640, 480,
Me.hwnd, 0) DoEvents SendMessage mCapHwnd, CONNECT, 0,
0 Timer1.Enabled = True End Sub | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: พ. พย. 02, 2005 7:15
pm ชื่อกระทู้:
|
 |
|
| จำได้ว่า post ไป 2
ครั้ง(ครั้งแรกลืมประกาศตัวแปล)ให้เอาทั้งสองมารวมกัน | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: พ. พย. 02, 2005 7:29
pm ชื่อกระทู้:
|
 |
|
| คำพูด: |
| ทำไม Vb มันถึงฟ้อง error'8005'port
already open พอเราคลิ๊กที่debugมันจะมีแถบสีเหลืองขึ้นที่
mscomm.PortOpen = True หนูได้ต่อ serial port กับคอมแล้ว
ทำการเชื่อมต่อสายที่ขา Tx กับ
Rx |
ผมลองแล้วใช้ได้ 100% ให้ jump ขา Tx กับ
Rx เข้าด้วยกันด้วย
-----Initialize-----------
Private Sub Form_Load() MSComm1.Settings =
"9600,N,8,1" MSComm1.CommPort = 1 MSComm1.InputLen = 1
MSComm1.PortOpen = True MSComm1.RThreshold = 1
End Sub
------รับค่า variant---------
Private Sub MSComm1_OnComm() Dim StrData As
Variant StrData = MSComm1.Input RXText.Text = StrData
End Sub
------ส่งค่า----------------- Private
Sub SendKey_Click() MSComm1.Output = TextSEND.Text End
Sub
 | |
| กลับไปข้างบน |
|
 |
เด็กตาดำๆ บุคคลทั่วไป
|
ตอบ: พฤ. พย. 03, 2005
4:45 am ชื่อกระทู้:
|
 |
|
พี่แมงเม่าครับ
สงสัยผมต้องหน้าด้านขอตัวโปรแกรมที่พี่เขียนที่เป็นซอดโค้ดตัว vb
แล้วอ่าครับ ผมนั่งทำตามพี่บอก จะตี 5 แล้ว ยังไม่ได้เลย T_T
ภาพไม่ขึ้น รันได้แต่ไหงไม่มีภาพ แก้ไปแก้มา
จนไม่ไหวแล้วอ่าพี่ครับ
จึงอยากขอตัวโค้ดที่พี่เขียนเอาไว้อ่ะครับ มารันดูใน vb
ว่าผมพลาดตรงไหน -/\- ขอบคุณค้าบ | |
| กลับไปข้างบน |
|
 |
แมงเม่า บุคคลทั่วไป
|
ตอบ: พฤ. พย. 03, 2005
10:34 am ชื่อกระทู้:
|
 |
|
| เอาอีเมลล์มาจะส่งให้ | |
| กลับไปข้างบน |
| |