>>>>>>>>Set winShell = CreateObject("Shell.Application")
>>>>>>>>winShell.NameSpace("c:\Destination folder\").CopyHere "L:\Source folder\MyFile.dbf"
>>>>>>>>Set winShell = Nothing
>>>>>>>
>>>>>>>This is an excellent tip, Igor. But you should have also pointed out that this function also uses the Windows file copy animation when copying large enough files. For anyone interested, Here is a VFP translation of the code to copy a file:
>>>>>>>
>>>>>>>oShell = CREATEOBJECT("Shell.Application")
>>>>>>>oShell.NameSpace("c:\").CopyHere("c:\\somefolder\somefile.dbf")
>>>>>>
>>>>>>Hi Eric,
>>>>>>
>>>>>>Moreover, this function asks to confirm overwriting files too.
>>>>>>
>>>>>>Igor
>>>>>I am trying to createobject and I have "Class not registered". Can you tell me what is wrong?
>>>>
>>>>Shell.Application requires that you have SHELL32.DLL version 4.71 or later on the target system. This rules out systems with WIn95 pre OSR2 that don't have IE installed, or NT 4.0 prior to NT SP3.
>>>I have NT 4.0 with SP4 and IE 5.0
>>
>>It works here; check how you've spelled Shell.Application in your command. IE5 guarentees that SHELL32.DLL is version 4.72 or later.
>>
>>The documentation for the Shell Object is in the MSDN under the topic "Shell Object"
>>
>>>Mark
>
>Ed,
>
>I've got a question on the SHELL32.DLL version. I've got version 4.00.951 (W95a) and IE4, and
>oShell = createobject('Shell.Application')
>works OK. From what you've been saying, it should not. Just how are we supposed to tell what version of these .DLL's we TRULY need, then?
You've posted the Win95 version, which is not the same as the version of SHELL32.DLL on your system. You can check that by locating SHELL32.DLL, displaying its Property sheet, and looking at the version on the Version tab.
The MSDN docs say SHELL32.DLL version 4.71 or later. Since there's no single thing short of installing IE that will update the Shell version for any operating system, checking the version of SHELL32.DLL is the only reliable means here.
The obvious way to check for Shell.Application is to check HKEY_CLASSES_ROOT\Shell.Application - if this registry key isn't present, then the shell version needs to be updated.