PDA

View Full Version : Cứu em với, nhanh lên !!



NgocHien
31-10-2002, 12:31
Chào mấy anh, em đang làm chương trình, kẹt ngay chỗ này, mấy anh chỉ cho em nha.

VĐỀ 1:
Form 1: có 2 radio, nút 1 tên: radio1
nút 2 tên: radio2
và có 1 button, tên: ok
Form 2 sẽ lấy dữ liệu từ form 1. làm sao để biết trong Form 1 chọn radio nào

VD: Khi form 1 chọn radio1 thì form2 sẽ Enable, và khi chọn radio2 sẽ form2 không

enable.

VĐỀ 2: Làm sao để mình biết chương trình Vietkey đang chạy ??

Vậy làm sao hả mấy anh, giúp em liền nha, em đang cần gấp gấp, cảm ơn các anh

nhiều.

Nicky
31-10-2002, 14:38
bạn có thể truy cập đến Radio ở Form 1 bằng cách sau Form1.Radio1.... hình như là vậy hay sao í, kiểm tra thử xem.
Còn như muốn biết VK có chạy hay không bạn có thể sử dụng hàm EnumProcess để liệt kê các ứng dụng đang chạy. Nếu gặp VK thì ok, nếu không thì thui...làm gì thì làm.

NgocHien
31-10-2002, 16:18
Anh Nicky ơi, cho em đoạn code đó đi, anh chỉ rõ ràng luôn, giúp em nhanh nha, em cảm ơn anh lắm lắm, nhanh lên anh ơi

Nicky
31-10-2002, 16:26
Tiếc là bi giờ đang ở dịch vụ nên không thể thử được...để về nhà nghiên cứu đã...Bye !

KEM_WALL
31-10-2002, 17:22
walls cũng đang ở dịch vụ nên không chắc chắn lắm ( sai thì thông cảm nha ;) )

sub a()
if form1.radio1.value = true then
form2.enable = true
else
form2.enable = false
end if
end sub

còn cái hàm EnumProcess kô có MSDN và winApi Viewer thì walls pó tay , kô thể hướng dẫn được, về nhà ngiên cứu đã ;)

White_Rose
31-10-2002, 19:17
Mình có cái này muốn góp ý:
Nếu tên là 2 radio thì rõ ràng có trưòng hợp cả hai cùng bị check. Nếu thế thì cái form2 nó thế nào???
Chỉ cần một radio là đủ rồi. Nếu nó được check thì Form hiện.

Form2.Enabled = Form1.Radio.Value

NgocHien
31-10-2002, 20:54
Anh nói rõ hơn đi, em có 2 radio, cả 2 đều có giá trị khác nhau chứ, cái này True thì cái kia False.

Anh nói rõ hơn nha

White_Rose
31-10-2002, 23:56
Nếu phải thực hiện các công việc khác (không rõ là gì) thì có thể dùng cả hai nhưng ở trường hợp này thì không cần thiết lắm.
- Dùng một check box thay thế cho trực quan ----> làm như trên
- Dùng một radio nhưng lại như checkbox (nghĩa là click thì chọn, click phát nữa thì lại bỏ chọn)
Đoạn code vẫn vậy mà bớt đi một control

sub CheckBox1_Click()
checkbox1.value = not checkbox1.value
Form2.enabled = checkbox1.value
end sub

Nicky
01-11-2002, 17:19
Thuộc tính Enable không làm cho form biến mất đâu. Thử cái này.
Private Sub Form_Load()
Form2.Show
End Sub
Private Sub Option1_Click()
Form2.Show
End Sub
Private Sub Option2_Click()
Form2.Hide
End Sub

Còn về đóng VK thì có thể xem ví dụ sau

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10
Private Sub Form_Load()
Dim WinWnd As Long
Ret = InputBox("Nhap vao dong chu tren Title bar cua cua so, Nho la phai that chinh xac")
WinWnd = FindWindow(vbNullString, Ret)
If WinWnd = 0 Then MsgBox "Khong tim thay cua so co Title la : " & Ret: Exit Sub
PostMessage WinWnd, WM_CLOSE, 0&, 0&
End Sub

Bạn mở Motepad hay cái gì đó. Sau đó chạy đoạn code, gõ vào chính xác dòng chữ trên Title bar nó sẽ đóng chương trình có Title bar như bạn gõ. bây giờ bạn cần phải biết Title của VK thôi.
C ya !!

White_Rose
01-11-2002, 20:27
form2 sẽ Enable, và khi chọn radio2 sẽ form2 không enable.

Nicky
02-11-2002, 21:16
Oh, ic ! sorry !

CayTreGia
03-11-2002, 19:32
Cho mình bổ sung thêm một ý mới cái nghen về Vấn đề 2 của bạn. Đó là làm sao biết VK đang chạy hay không? Bạn có thể dùng hàm: tasks.exits("Tên chương trình")
VD:
If not tasks.exist("VKNT") then 'nếu chưa chạy viêt key thì
msgbox("chua chay viet key")
.....

minh thu nghiem tren VBA roi, va thay rat co hieu qua, ban thu xem sao? :)

float01
15-10-2010, 07:53
trời, hay quá mình tìm mãi mà ko thấy.
Thank
mà cách dùng task.exits như thế nào. Bạn có thể nói rõ ko.