|
 |
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
 |
กระทู้ #3094 [Vb] (จาก IP: 58.8.136.105)
[VB2008 Express] อยากทราบเกี่ยวกับการคอมไพล์ หรือ build .exe
คือว่าผมเขียนโปรแรมขึ้มาโปรแกรมนึงด้วย vb 2008 Express ซึ่งเป็นตัวโปรแกรมที่ทาง Microsoft ให้ใช้ฟรี
ซึ่งเมื่อมเขียนโปรแกรมได้เสร็จ ก้อลองรัน ดู แล้ว build ดูก้ไม่มีปัญหาอะไร
ไฟล์ที่เป้น .exe ก็จะอยู่ใน project/bin/release/... .exe
ซึ่งถ้าเปิดตัว exe นี้แล้วในเครื่องทีเขียนโปรแกรมขึ้นมานี้ ก็สามารถเปิดโปรแกรม ใช้งานโปรแกรมได้ตามปกติ
แต่แล้วทีนี้ พอส่ง เฉพาะ files ที่เป้น .exe ไปให้เพื่อนลองใช้งานดู ปรากฎ ว่าเพื่อนคนนั้นไม่สามารถเปิดโปรแกรมช้งานได้
ซึ่งผมก็ไม่รู้สาเหตุอะไร พอจะมีวิธีแกไขยังไงบ้างคับ
ตัวผมเขียนบน win7 x86 และเพื่อนก็ใช้ win7 x86 เหมือนกัน
หรืออาจจะเป็นเพราะว่าเครื่องเพื่อนไม่มี .Net Framework หรือเปล่าคับ
แต่ผมเคยได้ถามไปแล้วว่าลง .Net Framework รึยัง เค้าก้อตอบว่า ลงแล้ว ทั้ง 3.5 และ 4.0
ซึ่งผมก็ไม่ทราบว่า 3.5 นั้นเค้าลงตัวไหน เพราะเห็นว่ามันมี 3.5 sp1 ด้วย ก็เลยไม่แน่ใจ
ลบกวนเพื่อนๆ ช่วยหาวิธีแก้ทัคับ หมดปัญญาแล้ว
|
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 13:39:52]
|
|
ความคิดเห็น #28378 (จาก IP: 58.8.136.105)
Public Class Form1
Const WM_CAP As Short = &H400S Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP + 10 Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP + 11 Const WM_CAP_EDIT_COPY As Integer = WM_CAP + 30 Const WM_CAP_SET_PREVIEW As Integer = WM_CAP + 50 Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP + 52 Const WM_CAP_SET_SCALE As Integer = WM_CAP + 53 Const WS_CHILD As Integer = &H40000000 Const WS_VISIBLE As Integer = &H10000000 Const SWP_NOMOVE As Short = &H2S Const SWP_NOSIZE As Short = 1 Const SWP_NOZORDER As Short = &H4S Const HWND_BOTTOM As Short = 1 Dim iDevice As Integer = 0 Dim hHwnd As Integer Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Object) As Integer Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer Declare Function DestroyWindow Lib "user32" (ByVal hndw As Integer) As Boolean Declare Function capCreateCaptureWindowA Lib "avicap32.dll" (ByVal lpszWindowName As String, ByVal dwStyle As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Short, ByVal hWndParent As Integer, ByVal nID As Integer) As Integer Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Short, ByVal lpszName As String, ByVal cbName As Integer, ByVal lpszVer As String, ByVal cbVer As Integer) As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click System.Diagnostics.Process.Start("http://www.google.co.th") End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click System.Diagnostics.Process.Start("http://www.facebook.com") End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click System.Diagnostics.Process.Start("http://www.youtube.com") End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click System.Diagnostics.Process.Start("http://www.overclockzone.com/forums/forum.php") End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click System.Diagnostics.Process.Start("http://www.torrentmove.com/index2.php") End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click System.Diagnostics.Process.Start("http://cz.podzone.org:88/index3.php") End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click System.Diagnostics.Process.Start("http://www.google.co.th") System.Diagnostics.Process.Start("http://www.facebook.com") System.Diagnostics.Process.Start("http://www.youtube.com") System.Diagnostics.Process.Start("http://www.overclockzone.com/forums/forum.php") System.Diagnostics.Process.Start("http://www.torrentmove.com/index2.php") System.Diagnostics.Process.Start("http://cz.podzone.org:88/index3.php") System.Diagnostics.Process.Start("http://www.hotmail.com") System.Diagnostics.Process.Start("http://www.gmail.com") End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load LoadDeviceList() Label1.Text = AxWinsock1.LocalIP Label4.Text = AxWinsock1.LocalHostName TextBox1.Text = "" Button10.Enabled = False Button11.Enabled = False Button12.Enabled = False Button13.Enabled = False Button14.Enabled = False Button18.Enabled = False Button19.Enabled = False Button21.Enabled = False End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click System.Diagnostics.Process.Start("http://www.hotmail.com") End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click System.Diagnostics.Process.Start("http://www.gmail.com") End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click Shell("C:\Program Files\Microsoft Office\Office12\WINWORD.exe") End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click Shell("C:\Program Files\Microsoft Office\Office12\POWERPNT.exe") End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click Shell("C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\vbexpress.exe") End Sub
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click Shell("C:\Program Files\Cheat Engine 6.1\Cheat Engine.exe") End Sub
Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click Shell("C:\Program Files\Your Uninstaller! 7\urmain.exe") End Sub
Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Shell("D:\Warcraft III\TCG\TCGNetwork.exe") End Sub
Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click Shell("D:\Getamped\amped_launcher.exe") End Sub
Private Sub LoadDeviceList() Dim strName As String = Space(100) Dim strVer As String = Space(100) Dim bReturn As Boolean Dim x As Integer = 0 Do bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100) If bReturn Then ListBox1.Items.Add(strName.Trim) x += 1 Loop Until bReturn = False End Sub
Private Sub OpenPreviewWindow() Dim iHeight As Integer = PictureBox1.Height Dim iWidth As Integer = PictureBox1.Width hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, 480, PictureBox1.Handle.ToInt32, 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) SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, PictureBox1.Width, PictureBox1.Height, SWP_NOMOVE Or SWP_NOZORDER) Button17.Enabled = True Button16.Enabled = True Button15.Enabled = False Else DestroyWindow(hHwnd) Button17.Enabled = False End If End Sub
Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click Dim data As IDataObject Dim bmap As Image SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0) data = Clipboard.GetDataObject() If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image) PictureBox1.Image = bmap ClosePreviewWindow() Button17.Enabled = False Button16.Enabled = False Button15.Enabled = True If SaveFileDialog1.ShowDialog = DialogResult.OK Then bmap.Save(SaveFileDialog1.FileName, Imaging.ImageFormat.Bmp) End If End If End Sub
Private Sub ClosePreviewWindow() SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0) DestroyWindow(hHwnd) End Sub
Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click OpenPreviewWindow() Button15.Enabled = False Button16.Enabled = True End Sub
Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click ClosePreviewWindow() Button15.Enabled = True Button16.Enabled = False End Sub
Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click If TextBox1.Text = "1234" Then Button10.Enabled = True Button11.Enabled = True Button12.Enabled = True Button13.Enabled = True Button14.Enabled = True Button18.Enabled = True Button19.Enabled = True Button20.Enabled = False Button21.Enabled = True End If End Sub
Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click System.Diagnostics.Process.Start("http://www.facebook.com/groups/169265273122336?ap=1") End Sub End Class |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 13:40:36]
|
 |
ความคิดเห็น #28379 (จาก IP: 58.8.136.105)
เลยอยากจะทราบ อาการดังกล่าวเป็นที่ตัว code เองด้วยหรือเปล่า
หรืออาจจะเป้นที่ เครื่องที่เปิดโปรแอกรมตัวนี้ มีปัญหา
หรือว่า การ compile หรือ build มีปัญหาหรือเปล่าคับ
เพราะดูจากการรีเซิจข้อมูลจากหลายๆ ที่แล้วการ buld project จากหลายๆเว็บ ผมก็ทำเหมือนกับเค้าทั้งหมด
แต่ก็ไม่ามารถเปิดไฟล์ดังกล่าวได้ |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 13:43:41]
|
 |
ความคิดเห็น #28380 (จาก IP: 101.108.23.188)
เขียนยังไม่เป็นเลยขั๊บ<br |
จากคุณ
:
maddog [2011-07-02 13:45:57]
|
 |
ความคิดเห็น #28381 (จาก IP: 58.8.136.105)
เอ่อ ถามไร งง |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 15:37:34]
|
 |
ความคิดเห็น #28382 (จาก IP: 101.108.23.188)
run ไม่ได้ error ว่าอะไรหละครับ เอา error ไปค้นบน google น่าจะมีข้อมูล |
จากคุณ
:
maddog [2011-07-02 15:49:10]
|
 |
ความคิดเห็น #28383 (จาก IP: 58.8.136.105)
โดยส่วนตัวแล้ว ถ้ารันเองไม่มีปัญหา บนเคร่องที่เขียน แต่พอส่งให้เพื่อนไปรันดู
ไม่สามารถเปิดโปรแกรมได้ เลยไม่ทราบสาเหตุ ไม่มี error code อะไรบอกคัล |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 16:20:09]
|
 |
ความคิดเห็น #28384 (จาก IP: 101.108.23.188)
create project ใหม่ ทำ exe ส่งให้อีกเครื่อง run ว่าทำงานหรือเปล่า
ถ้า run ได้แปลว่าสาเหตุมาจากโค้ด
ถ้า run ไม่ได้แปลว่าเป็นที่ Framework หรือ OS |
จากคุณ
:
maddog [2011-07-02 17:08:41]
|
 |
ความคิดเห็น #28385 (จาก IP: 58.8.136.105)
คือลอง ส่งให้เครื่องอีกเครื่องนึงในบ้าน สามารถรันได้ตามปรกติ
แต่พอส่งให้เพื่อน ไม่สามารถรันได้ ส่งให้เพื่อน 3-4 คนไม่สามารถรันได้เลย
แต่เครื่อง ที่บ้านอีกเครื่องเป็น pc สามารถรันได้ตามปรกติ ซึ่งเป็น xp ตัวเมื่อประมาณ 2 ปีที่แล้ว
เลยสงสัยว่าเป็นที่อะไร |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 17:58:57]
|
 |
ความคิดเห็น #28386 (จาก IP: 101.108.23.188)
ที่ผมให้ลองทำ exe แบบธรรมดาก่อน เพื่อจะได้เดาต่อไปได้ว่าน่าจะเกิดจากอะไร คุณลองแล้วหรือยัง ? |
จากคุณ
:
maddog [2011-07-02 19:02:44]
|
 |
ความคิดเห็น #28387 (จาก IP: 58.8.136.105)
คือจะบอกว่า เคยใช้ หรือเปล่าคับ vb2008 มัน คอมไพล์แล้วหรือ build แล้วมันก็ได้ .exe อยู่แล้ว ซึ่งมันก็ได้อยู่ใน folder bin/release อยู่แล้ว ไม่ทราบวา ผมไม้เข้าใจคำตอบคุณ หรือคุณไม่เข้าใจคำถามผม คับ
แล้วไอ .exe ธรรมดา ซึ่ง vb6 มันมี เมนู make .exe ซึ่งใน 2008 มันมีแต่ build project กับ publish project เท่านั้นคับ
หรือถ้ามผมไม่เข้าใจคำตอบ ช่วยขยยความหน่อยนะคับ เพราะดูแล้ว การเขียนบรรยาย ขยายให้ความของคุณอ่านดูแลสับสนมากกว่าเดิม เหมือนเด็กๆ เขียนเลยคับ ยังไงช่วยขยายคามให้ละเอียดที |
จากคุณ
:
kanumz / plantinumsix_basic@hotmail.com [2011-07-02 19:31:48]
|
 |
ความคิดเห็น #28390 (จาก IP: 101.108.23.188)
ผมแนะนำไว้แล้ว ใน ความคิดเห็นที่ #28384 แต่ขอขยายความแบบละเอียดหน่อย ดังนี้
ให้คุณ create project ใหม่ด้วย VB2008 แล้วทำ exe จากนั้นให้ส่ง ไป run ที่เครื่องที่บอกว่ามีปัญหา ว่ายังคงมีปัญหาเช่นเดิมหรือไม่ ?
-ถ้า run ได้บนเครื่องที่มีปัญหา แปลว่าสาเหตุมาจากโค้ด
-ถ้า run ไม่ได้แปลว่าเป็นที่ Framework หรือ OS ,ต้องลองตรวจสอบว่า มันต่างยังไง ระหว่างเครื่องที่ใช้งานได้ กับเครื่องที่ใช้งานไม่ได้ เช่น ใช้ .net framework ต่างกันหรือไม่ หรือมี 3rd-party component อื่นใด
ผมคงพยายามอธิบายคุณได้เพียงเท่านี้ |
จากคุณ
:
maddog [2011-07-02 22:56:48]
|
 |
ความคิดเห็น #28391 (จาก IP: 58.8.136.105)
ขอบคุณมากครับ แต่ปัญหากันยังเกิดขึ้นเหมือนเดิม ไม่มีอไรเปลี่ยนแปลงยังคง เปิดไม่ได้ ซึ่งไม่มี error code เเกิดขึ้น หรืไม่มีสาเหตุอะไรบอกเลยคับ |
จากคุณ
:
kanumz / kmit_num@hotmail.com [2011-07-02 23:16:25]
|
 |
ความคิดเห็น #28392 (จาก IP: 101.108.23.188)
ปัญหามันต้องวิเคราะห์ครับ
ถ้าคุณได้ลองทำตามที่ผมบอก แล้วพบกว่าไฟล์ exe เปล่าๆ ไม่มีโค้ดมีแต่ Form เปล่าๆ ยัง run ไม่ได้ เดาว่าน่าจะเเกิดจากFramework ที่เครื่องปลายทางไม่ตรงกันที่ต้องการใช้งาน
วิธีการเช็คก็เข้าไปดูใน Add or Remove Program ว่ามีรายชื่อของ Microsoft .NET Framework รุ่นใดบ้าง และลองติดตั้งรุ่นที่ไม่มี ไล่ตั้งแต่รุ่นเก่าๆ ไปหารุ่นใหม่ๆ
โดยหลักจากที่ติดตั้งแต่ละรุ่นลงไป ให้ลองเรียกใช้ exe ที่มีปัญหา เพื่อจะได้รู้ว่ารุ่นใดที่ exe ต้องการ (โดยมากจะถูกกำหนดตอนสร้าง project อยู่แล้ว อาจลงรุ่นที่ตรงกับที่สร้าง project)
เว็บประกอบ http://www.raymond.cc/blog/archives/2008/11/06/how-to-check-what-version-of-microsoft-net-framework-is-installed-in-computer/ |
จากคุณ
:
maddog [2011-07-02 23:32:06]
|
 |
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
|
|