VBA kiểm tra ứng dụng Google Drive có đang mở không

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
211
Được thích
50
Em chào anh chị GPE ạ!
Chuyện là em sử dụng Google Drive để đồng bộ file Excel để làm trên nhiều máy, để đảm dữ liệu được cập nhật liên tục nhờ ứng dụng Google Drive nên e muốn viết một code gắn vào File Excel, nếu phát hiện Chương trình Google Drive đang mở thì cho tiếp tục sử dụng file Excel đó, còn nếu ứng dụng Google Drive đó không được mở (nghĩa là không chạy dưới thanh Task) thì hiện cảnh báo cho người dùng biết để bật ứng dụng đó lên ạ.

Vì đôi lúc vì một lý do gì đó mà ứng dụng Google Drive ko mở khi máy khởi động thì ko đồng bộ đc dữ liệu mới.

Không biết yêu cầu của em có khả thi với code VBA trong Excel không ạ. Mong anh chị giúp đỡ em.
Em cám ơn rất nhiều ạ!
 
Chương trình Google Drive đang mở thì cho tiếp tục sử dụng file Excel đó, còn nếu ứng dụng Google Drive đó không được mở (nghĩa là không chạy dưới thanh Task) thì hiện cảnh báo cho người dùng biết để bật ứng dụng đó lên ạ.

Bạn kiếm code kiểm tra "Process" của một ứng dụng nào đó có chạy không nhé.
 
Upvote 0
Đã bảo là không cần làm vậy mà.
Nếu có kiểm tra thì kiểm tra Google Drive có trên máy tính đó hay không
Nếu không có thì hỏi có cài đặt hay không? Lựa chọn có cài thì tự động tải phần mềm Google Drive và cài đặt vào máy tính. Như thế mới có tí gọi là 'ngon'.
 
Upvote 0
Trên diễn đàn mình có bài nào về code này không ạ, anh giúp với !

Bạn gõ từ khóa vào Google:
Open an Application from VBA

Tiếp đến tìm xem đường dẫn mở phần mềm Google Drive có quy luật như thế nào để code hoạt động được trên nhiều máy tính.
 
Upvote 0
1647838808352.png
Cứ mở Explorer lên, thấy biểu tượng xanh tươi roi rói thế này là G.Drive đã chạy
 
Upvote 0
VBA không bao giờ có tính bảo mật.
Làm việc này cũng giống như treo chìa khoá trước cổng nhà.
 
Upvote 0
View attachment 273423
Cứ mở Explorer lên, thấy biểu tượng xanh tươi roi rói thế này là G.Drive đã chạy
Mình kiểm tra thì được, nhưng nhân viên làm thì đôi lúc họ không để ý ạ.
Cho nên mỗi lần mở lên thì cần phải có code kiểm tra tự động cho chắc ạ.
Bài đã được tự động gộp:

Cách tốt nhất em vẫn muốn là kiểm tra trước cho chắc. Nếu Google Drive không đang mở thì hiện thông báo, nhân viên chọn Yes thì ứng dụng sẽ mở ạ.
 
Upvote 0
Mình kiểm tra thì được, nhưng nhân viên làm thì đôi lúc họ không để ý ạ.
Cho nên mỗi lần mở lên thì cần phải có code kiểm tra tự động cho chắc ạ.
Bài đã được tự động gộp:

Cách tốt nhất em vẫn muốn là kiểm tra trước cho chắc. Nếu Google Drive không đang mở thì hiện thông báo, nhân viên chọn Yes thì ứng dụng sẽ mở ạ.
Quy trình có phải lúc nào cũng tự động được đâu, con người phải biết làm việc chứ. Nhưng thôi, nói như bạn thì sao không dùng cách của bài #5 hoặc #3?
 
Upvote 0
E vừa tìm trên diễn đàn từ khóa đó mà không có ạ.
Anh có thể gửi giúp em bài tương tự đó để em tham khảo được không ạ.
code:

Mã:
Function IsProcessRunning(process As String)
    Dim objList As Object
    Set objList = GetObject("winmgmts:") _
        .ExecQuery("select * from win32_process where name='" & process & "'")
    IsProcessRunning = objList.Count > 0
End Function

Chạy thử trong cửa sổ Immediate:

Mã:
?IsProcessRunning("googledrivesync.exe")
?IsProcessRunning("googledesktop.exe")
 
Upvote 0
code:

Mã:
Function IsProcessRunning(process As String)
    Dim objList As Object
    Set objList = GetObject("winmgmts:") _
        .ExecQuery("select * from win32_process where name='" & process & "'")
    IsProcessRunning = objList.Count > 0
End Function

Chạy thử trong cửa sổ Immediate:

Mã:
?IsProcessRunning("googledrivesync.exe")
?IsProcessRunning("googledesktop.exe")

Chạy cái này hơi tốn kém tài nguyên đó anh, tốt nhất nên tận dụng các hàm WinAPI đến tận Toolbars tìm.

JavaScript:
Function IsProcessRunning(process As String)
    On Error Resume Next
      IsProcessRunning = VBA.GetObject("winmgmts:\\.\root\cimv2") _
        .ExecQuery("select * from win32_process where name='" & process & "'").count > 0
End Function

IsProcessRunning("GoogleDriveFS.exe")
 
Upvote 0
E đã thử và kiểm tra được như ý ạ.
E đang nghiên cứu code nếu IsProcessRunning("GoogleDriveFS.exe") = False thì khởi chạy Google Drive.
Mấy anh chị biết trên diễn đàn có bài nào tương tự hoặc hướng dẫn em với ạ.
Em cám ơn rất nhiều!
 
Upvote 0
Web KT

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

Back
Top Bottom