Chào cả nhà,
Hiện mình đang vướng như sau: Mình viết 1 đoạn code trong excel để nó chuyển sang cửa sổ của phần mềm quản lý rồi yêu cầu download dữ liệu bằng hàm sendkeys. Sau đó phần mềm quản lý sẽ cho tải xuống dữ liệu dạng file excel. Và code sẽ tự chay khi sự kiện worksheet deactivate.
Tuy nhiên, việc chuyển đổi giữa các cửa sổ xem ra không được ổn lắm vì phần mềm quản lý bị show lên màn hình.
Mình nhờ mọi người sửa giúp đoạn code để nó có thể sendkey sang phần mềm quản lý mà không yêu cầu phần mềm đó hiện lên. (như kiểu sendkey ngầm ấy).
THanks
Ah mà đoạn code của mình như sau:
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount 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 Const GW_HWNDNEXT = 2
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Sub ConnectHG_FG()
Static chk As Boolean
Dim i As Long
Dim t1, t2 As String
Dim hwnd
t1 = Format(Now, "yymm") & "01"
t2 = Format(Now, "yymmdd")
'StopClock
For i = 51 To 74
If Format(Now, "hh:mm:ss") = Format(Sheet1.Cells(i, 3), "hh:mm:ss") Then
Do
hwnd = IIf(chk, FindWindow(vbNullString, "System HG ver 2.0 *** TOKYO ***@Inventory List "), Application.hwnd)
ShowWindow hwnd, 3
BringWindowToTop hwnd
chk = Not chk
Loop Until hwnd = FindWindow(vbNullString, "System HG ver 2.0 *** TOKYO ***@Inventory List ")
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "%VIL", True
Application.Wait (Now + TimeValue("0:00:8"))
Application.SendKeys "^{TAB}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys " ", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "{F2}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "~", True
Goback
End If
Next
End Sub
Hiện mình đang vướng như sau: Mình viết 1 đoạn code trong excel để nó chuyển sang cửa sổ của phần mềm quản lý rồi yêu cầu download dữ liệu bằng hàm sendkeys. Sau đó phần mềm quản lý sẽ cho tải xuống dữ liệu dạng file excel. Và code sẽ tự chay khi sự kiện worksheet deactivate.
Tuy nhiên, việc chuyển đổi giữa các cửa sổ xem ra không được ổn lắm vì phần mềm quản lý bị show lên màn hình.
Mình nhờ mọi người sửa giúp đoạn code để nó có thể sendkey sang phần mềm quản lý mà không yêu cầu phần mềm đó hiện lên. (như kiểu sendkey ngầm ấy).
THanks
Ah mà đoạn code của mình như sau:
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount 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 Const GW_HWNDNEXT = 2
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Sub ConnectHG_FG()
Static chk As Boolean
Dim i As Long
Dim t1, t2 As String
Dim hwnd
t1 = Format(Now, "yymm") & "01"
t2 = Format(Now, "yymmdd")
'StopClock
For i = 51 To 74
If Format(Now, "hh:mm:ss") = Format(Sheet1.Cells(i, 3), "hh:mm:ss") Then
Do
hwnd = IIf(chk, FindWindow(vbNullString, "System HG ver 2.0 *** TOKYO ***@Inventory List "), Application.hwnd)
ShowWindow hwnd, 3
BringWindowToTop hwnd
chk = Not chk
Loop Until hwnd = FindWindow(vbNullString, "System HG ver 2.0 *** TOKYO ***@Inventory List ")
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "%VIL", True
Application.Wait (Now + TimeValue("0:00:8"))
Application.SendKeys "^{TAB}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys " ", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "{F2}", True
Application.Wait (Now + TimeValue("0:00:1"))
Application.SendKeys "~", True
Goback
End If
Next
End Sub