使用Java Application时阻止访问应用程序

时间:2018-05-23 13:48:17

标签: java vba ms-access access-vba

我正在研究从Access表单运行的拖放式Java接口。

我的问题是,如果用户点击后台(Access Application),它将引发Accesss Apllication的错误,所以我想在Java应用程序运行时阻止Access,就像Access阻止一个表单一秒打开了。

这是我用来运行jar的函数:

Option Compare Database
Option Explicit

Private Const INFINITE = &HFFFFFFFF
Private Const SYNCHRONIZE = &H100000
Private Const PROCESS_QUERY_INFORMATION = &H400&

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Declare Sub Sleep Lib "kernel32" (ByVal IngMilliseconds As Long)

'Shell and wait.  Return exit code result, raise an exception on any error.
Public Function ShellSync(ByVal PathName As String, ByVal WindowStyle As VbAppWinStyle) As Long
Dim lngPid As Long
Dim lngHandle As Long
Dim lngExitCode As Long

lngPid = Shell(PathName, WindowStyle)
If lngPid <> 0 Then
    lngHandle = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, 0, lngPid)
    If lngHandle <> 0 Then
        WaitForSingleObject lngHandle, INFINITE
        If GetExitCodeProcess(lngHandle, lngExitCode) <> 0 Then
            ShellSync = lngExitCode
            CloseHandle lngHandle
        Else
            CloseHandle lngHandle
            Err.Raise &H8004AA00, "ShellSync", "Failed to retrieve exit code, error " & CStr(Err.LastDllError)
        End If
    Else
        Err.Raise &H8004AA01, "ShellSync", "Failed to open child process"
    End If
Else
    Err.Raise &H8004AA02, "ShellSync", "Failed to Shell child process"
End If
End Function

0 个答案:

没有答案