[AccessD] Running Dir from Batch file in MS Access
jack drawbridge
jackandpat.d at gmail.com
Mon Mar 13 10:47:58 CDT 2017
Thanks to all who have responded.
I am using the recursive code provided by Stuart as the base as an option
to the Dir approach. Eventually, if I understand the forum poster
correctly, he will be manipulating /managing about 600K
images??
It isn't clear what the ultimate objective is, but he has Acc 2016 and
seems keen.
Thanks.
On Mon, Mar 13, 2017 at 8:53 AM, Stuart McLachlan <stuart at lexacorp.com.pg>
wrote:
> On 12 Mar 2017 at 20:07, Jim Dettman wrote:
>
> > Jack,
> >
> > I have a "waitwhilerunning" function that I can share. All it needs
> > is a windows handle, so you can shell to a batch file if you want to.
> >
>
> No need for a handle, just pass it the command you want to run.
>
> Here's my standard "Wait for Shelled Application to finish" code, FWIW:
>
> Private Const STARTF_USESHOWWINDOW& = &H1
> Private Const NORMAL_PRIORITY_CLASS = &H20&
> Private Const INFINITE = -1&
>
> Private Type STARTUPINFO
> cb As Long
> lpReserved As String
> lpDesktop As String
> lpTitle As String
> dwX As Long
> dwY As Long
> dwXSize As Long
> dwYSize As Long
> dwXCountChars As Long
> dwYCountChars As Long
> dwFillAttribute As Long
> dwFlags As Long
> wShowWindow As Integer
> cbReserved2 As Integer
> lpReserved2 As Long
> hStdInput As Long
> hStdOutput As Long
> hStdError As Long
> End Type
>
> Private Type PROCESS_INFORMATION
> hProcess As Long
> hThread As Long
> dwProcessID As Long
> dwThreadID As Long
> End Type
>
> Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As
> Long, ByVal
> dwMilliseconds As Long) As Long
>
> Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As
> Long, ByVal
> lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal
> lpThreadAttributes As
> Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal
> lpEnvironment
> As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO,
> lpProcessInformation As PROCESS_INFORMATION) As Long
>
> Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
>
> Public Sub ShellWait(Pathname As String, Optional WindowStyle As Long)
> On Error GoTo Err_Handler
>
> Dim proc As PROCESS_INFORMATION
> Dim start As STARTUPINFO
> Dim ret As Long
>
> ' Initialize the STARTUPINFO structure:
> With start
> .cb = Len(start)
> If Not IsMissing(WindowStyle) Then
> .dwFlags = STARTF_USESHOWWINDOW
> .wShowWindow = WindowStyle
> End If
> End With
> ' Start the shelled application:
> ret& = CreateProcessA(0&, Pathname, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS,
> 0&, 0&,
> start, proc)
> ' Wait for the shelled application to finish:
> ret& = WaitForSingleObject(proc.hProcess, INFINITE)
> ret& = CloseHandle(proc.hProcess)
>
> Exit_Here:
> Exit Sub
> Err_Handler:
> MsgBox Err.Description, vbExclamation, "E R R O R"
> Resume Exit_Here
>
> End Sub
>
>
>
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
More information about the AccessD
mailing list