tắt mở unikey bằng vba

Liên hệ QC

maiban1986

Thành viên thường trực
Tham gia
28/2/13
Bài viết
229
Được thích
29
Anh Chị cho hỏi có cách nào tắt mở bộ gõ tiếng việt bằng vba không. nếu có xin Anh Chị hướng dẫn
 
Anh Chị cho hỏi có cách nào tắt mở bộ gõ tiếng việt bằng vba không. nếu có xin Anh Chị hướng dẫn
Dùng thử cái này xem.
Mã:
Public Sub CloseUniKey()
    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")
    For Each oProc In cProc
        If oProc.Name = "UniKeyNT.exe" Then
          If MsgBox("Unikey dang chay ban co muon tat khong, Yes de tat No khong tat", vbYesNo) = vbYes Then oProc.Terminate           'kill exe
        End If
    Next
End Sub
Public Sub OpenUniKey()
    Dim fso As Object
    Dim sfile As String
    Set fso = CreateObject("shell.application")
    sfile = "C:\Program Files\unikey43RC4-180714-win64\UniKeyNT.exe"
    fso.Open (sfile)
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dùng thử cái này xem.
Mã:
Public Sub CloseUniKey()
    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")
    For Each oProc In cProc
        If oProc.Name = "UniKeyNT.exe" Then
          If MsgBox("Unikey dang chay ban co muon tat khong, Yes de tat No khong tat", vbYesNo) = vbYes Then oProc.Terminate           'kill exe
        End If
    Next
End Sub
Public Sub OpenUniKey()
    Dim fso As Object
    Dim sfile As String
    Set fso = CreateObject("shell.application")
    sfile = "C:\Program Files\unikey43RC4-180714-win64\UniKeyNT.exe"
    fso.Open (sfile)
End Sub
cám ơn bác nhưng sao nó không chạy được ạ
 
Upvote 0
cám ơn bác nhưng sao nó không chạy được ạ
Đường dẫn cho đúng nhé
Rich (BB code):
Option Explicit
Function IsProcessRunning(process As String)
    Dim objList As Object
    Set objList = GetObject("winmgmts:").ExecQuery("select * from win32_process where name='" & process & "'")
    If objList.Count > 0 Then
        IsProcessRunning = True
    Else
        IsProcessRunning = False
    End If
End Function
Sub OnUnikey()
If Not IsProcessRunning("UniKeyNT.EXE") Then
    Call Shell("D:\Software\unikey43RC4-180714-win64\UniKeyNT.exe")
End If
End Sub
Sub OffUnikey()
    Call CreateObject("WScript.Shell").Run("taskkill /f /im UniKeyNT.exe", 0, True)
End Sub
 
Upvote 0
Upvote 0
Chạy chương trình trên máy của tôi thì hằng "UniKeyNT.exe" trong câu lệnh IF đầu tiên được thay bằng "UniKeyVista2.0.exe"
Mã:
    For Each oProc In cProc
'        If oProc.Name = "UniKeyNT.exe" Then 'thay bằng
         If oProc.Name = "UniKeyVista2.0.exe" Then
          If MsgBox("Unikey dang chay ban co muon tat khong, Yes de tat No khong tat", vbYesNo) = vbYes Then oProc.Terminate           'kill exe
        End If
    Next
Ngoài ra có thể biết tên mọi oProc, thêm Debug.Print oProc.Name vào sau For.
 
Upvote 0
Chạy chương trình trên máy của tôi thì hằng "UniKeyNT.exe" trong câu lệnh IF đầu tiên được thay bằng "UniKeyVista2.0.exe"
Mã:
    For Each oProc In cProc
'        If oProc.Name = "UniKeyNT.exe" Then 'thay bằng
         If oProc.Name = "UniKeyVista2.0.exe" Then
          If MsgBox("Unikey dang chay ban co muon tat khong, Yes de tat No khong tat", vbYesNo) = vbYes Then oProc.Terminate           'kill exe
        End If
    Next
Ngoài ra có thể biết tên mọi oProc, thêm Debug.Print oProc.Name vào sau For.
Code đủ là thế nào bạn
Bài đã được tự động gộp:

Chào bạn,
OT nghĩ có lẽ bạn đang gặp phải vấn đề liên quan đến thiết bị đọc mã vạch mà OT cũng đã từng va phải.
Bạn có thể tham khảo bài viết sau hi vọng sẽ đúng ý bạn: Khắc phục [QR-Code] sai do bộ gõ tiếng Việt
xin cảm ơn
 
Upvote 0
Không rõ bạn hỏi gì. Tôi không đưa ra khái niệm "code đủ".
Thớt muốn hỏi viết thế nào để chép vào module dùng luôn ấy mà, chứ nói thay ABC bằng ZYX thì không biết làm thế nào. Không biết có diễn dịch sai ý thớt không?
 
Upvote 0
Thớt muốn hỏi viết thế nào để chép vào module dùng luôn ấy mà, chứ nói thay ABC bằng ZYX thì không biết làm thế nào. Không biết có diễn dịch sai ý thớt không?
Chắc code sau là đủ
Mã:
For Each oProc In cProc
    Debug.Print oProc.Name
    If oProc.Name = "UniKeyVista2.0.exe" Then
        If MsgBox("Unikey dang chay ban co muon tat khong, Yes de tat No khong tat", _
            vbYesNo) = vbYes Then oProc.Terminate 'kill exe
        End If
    Next
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom