• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tạm dừng chương trình khác với vb6

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

nqhieu2002
Thành viên chính thức
Thành viên chính thức
Posts: 35
Joined: Sat 01/10/2011 10:43 am
Has thanked: 5 times

Tạm dừng chương trình khác với vb6

Postby nqhieu2002 » Thu 23/08/2012 9:38 am

Mình đang có 1 dự án về điều khiển. Mình viết 1 phần mềm điều khiển hệ thống Barrie và đèn giao thông bằng Vb6.
Bên nhà đầu tư học đang có 1 phần mềm điều khiển khác. Nhiệm vụ của mình là can thiệp vào phần mềm này ( chỉ cho chạy và dừng thôi)
mình tham khảo thì đã biết cách lập trình để mở phần mềm điều khiển của họ bằng phần mềm vb6 mà mình lập trình. Nhưng cách thức để dừng thì không biết.
Code:
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetFocusWnd Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
WinExec "D:\PMDieuKhien\Hethong.exe", 1
End Sub
Vì phần mềm điều khiển của nhà đầu tư phải có phần đăng nhập tài khoản. Nếu như mà mình dùng phần mềm của mình mở nó ra, sau đó khi cần rồi đóng lại thì rất mất thời gian việc mở phần mềm của nhà đầu tư. (phần mềm này luôn bật 24//24h)
Có cách nào chỉ để tạm dừng phần mềm điều khiển của nhà đầu tư này không? Ví dụ như Khi Đèn giao thông đỏ thì phần mềm này sẽ bị vô hiệu hóa, ko bật lên dc. Còn khi đèn giao thông xanh thì phần mềm này tự động hoạt động trở lại.

Rất mong được sự giúp đỡ.



User avatar
gtdcomputer
Thành viên danh dự
Thành viên danh dự
Posts: 1296
Joined: Fri 18/07/2008 12:08 pm
Location: Kiên Giang
Has thanked: 8 times
Been thanked: 117 times
Contact:

Re: Tạm dừng chương trình khác với vb6

Postby gtdcomputer » Thu 23/08/2012 11:22 am

Tham khảo: viewtopic.php?f=36&t=11687&hilit=process

PS: Code bỏ vào thẻ vb nhé bạn.
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật

nqhieu2002
Thành viên chính thức
Thành viên chính thức
Posts: 35
Joined: Sat 01/10/2011 10:43 am
Has thanked: 5 times

Re: Tạm dừng chương trình khác với vb6

Postby nqhieu2002 » Fri 24/08/2012 8:28 am

Cho em hỏi một câu hỏi cho là ngu muội
Có cách nào can thiệp vào các thuộc tính của phần mềm khác không?
Nghĩa là em muốn viết 1 chương trình bằng Vb6, không cho phép kích chuột vào một nút lệnh nào đó của phần mềm viết bằng vb.net hoặc C# không?

User avatar
xuanha
Guru
Guru
Posts: 1230
Joined: Thu 19/08/2010 4:25 pm
Location: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 times
Been thanked: 380 times
Contact:

Re: Tạm dừng chương trình khác với vb6

Postby xuanha » Fri 24/08/2012 9:41 am

Bạn hãy download vblib trong diễn đàn về nghiên cứu, nó rất hữu ích cho bạn. Dưới đây là một hướng dẫn trong VBLib, bạn có thể tham khảo
Thủ thuật:
Send Key, Send Text sang Handle khác (không cần Focus)

Giới thiệu:
Send Key, Send Text sang Handle khác (không cần Focus)

Ghi chú:
tindl88

Ví dụ:
'Vẽ lên Form 1 TextBox, 1 Checkbox, 2 Commandbutton, 2 RadioButton(OptionButton)
'Dán đoạn code này vào Form
  1. Option Explicit
  2.  
  3. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  4. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  5. 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
  6. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  7.  
  8. Private Const WM_SETTEXT = &HC
  9. Private Const WM_KEYDOWN = &H100
  10. Private Const WM_KEYUP = &H101
  11. Private Const VK_SPACE = &H20
  12.  
  13. Dim WinHwnd As Long
  14. Dim ExHwnd As Long
  15.  
  16. Private Sub Form_Load()
  17.     Me.Caption = "Không dung hàng"
  18.     Text1.Text = "TextText"
  19. End Sub
  20.  
  21. Private Sub Check1_Click()
  22.     'lây' handle cua? Form
  23.    WinHwnd = FindWindow("ThunderRT6FormDC", "Form1")
  24.     'lây' handle cua? CheckBox
  25.    ExHwnd = FindWindowEx(WinHwnd, 0&, "ThunderRT6CheckBox", "Check1")
  26.     If WinHwnd = 0 Then
  27.         MsgBox "Không tìm thây' cua? sô? nào có tên ''Form1''"
  28.     Else
  29.         SendMessage ExHwnd, WM_KEYDOWN, VK_SPACE, 0&
  30.         SendMessage ExHwnd, WM_KEYUP, VK_SPACE, 0&
  31.     End If
  32. End Sub
  33.  
  34. Private Sub Command1_Click()
  35.     'lây' handle cua? Form
  36.    WinHwnd = FindWindow("ThunderRT6FormDC", "Form1")
  37.     'lây' handle cua? Textbox
  38.    ExHwnd = FindWindowEx(WinHwnd, 0&, "ThunderRT6TextBox", vbNullString)
  39.     If WinHwnd = 0 Then
  40.         MsgBox "Không tìm thây' cua? sô? nào có tên ''Form1''"
  41.     Else
  42.         SendMessage ExHwnd, WM_SETTEXT, 0&, ByVal Text1.Text
  43.     End If
  44. End Sub
  45.  
  46. Private Sub Command2_Click()
  47.     'lây' handle cua? Form
  48.    WinHwnd = FindWindow("ThunderRT6FormDC", "Form1")
  49.     'lây' handle cua? CommandButton
  50.    ExHwnd = FindWindowEx(WinHwnd, 0&, "ThunderRT6CommandButton", "Command1")
  51.     If WinHwnd = 0 Then
  52.         MsgBox "Không tìm thây' cua? sô? nào có tên ''Form1''"
  53.     Else
  54.         SendMessage ExHwnd, WM_KEYDOWN, VK_SPACE, 0&
  55.         SendMessage ExHwnd, WM_KEYUP, VK_SPACE, 0&
  56.     End If
  57. End Sub
  58.  
  59. Private Sub Option1_Click()
  60.     'lây' handle cua? Form
  61.    WinHwnd = FindWindow("ThunderRT6FormDC", "Form1")
  62.     'lây' handle cua? CommandButton
  63.    ExHwnd = FindWindowEx(WinHwnd, 0&, "ThunderRT6OptionButton", "Option1")
  64.     If WinHwnd = 0 Then
  65.         MsgBox "Không tìm thây' cua? sô? nào có tên ''Form1''"
  66.     Else
  67.         SendMessage ExHwnd, WM_KEYDOWN, VK_SPACE, 0&
  68.         SendMessage ExHwnd, WM_KEYUP, VK_SPACE, 0&
  69.     End If
  70. End Sub
  71.  
  72. Private Sub Option2_Click()
  73.     'lây' handle cua? Form
  74.    WinHwnd = FindWindow("ThunderRT6FormDC", "Form1")
  75.     'lây' handle cua? CommandButton
  76.    ExHwnd = FindWindowEx(WinHwnd, 0&, "ThunderRT6OptionButton", "Option2")
  77.     If WinHwnd = 0 Then
  78.         MsgBox "Không tìm thây' cua? sô? nào có tên ''Form1''"
  79.     Else
  80.         SendMessage ExHwnd, WM_KEYDOWN, VK_SPACE, 0&
  81.         SendMessage ExHwnd, WM_KEYUP, VK_SPACE, 0&
  82.     End If
  83. End Sub
  84.  
  85.  

Tạo Project mới.

'Vẽ lên Form 1 Textbox , 1 Checkbox, 1 Commandbutton, 2 RadioButton(OptionButton)
'Dán đoạn code vào form rồi Compile thành file EXE
[vb]
Option Explicit

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = &H1
Private Const SND_NODEFAULT = &H2

Private Sub Command1_Click()
sndPlaySound "C:\WINDOWS\Media\ding.wav", SND_ASYNC Or SND_NODEFAULT
End Sub

Private Sub Form_Load()
Text1.Text = ""
End Sub
[/vb]
Biên dịch cả 2 thành EXE rồi chạy cả 2 cái...
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599


Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Who is online

Users browsing this forum: No registered users and 7 guests