O$6.1 64bit, Very Nasty (WAS: Re: O$5: How to open an Explorer window)
Mike Matthews
omnis at lineal.co.uk
Thu Jan 22 03:22:06 EST 2015
Hello Doug,
The Getenv function gives access to certain folders, but if you are using the FileList component to browse anywhere, then somewhat different. But either way, if you want to launch a file or open folders using the Register DLL and Call DLL commands,then with the 64 bit version of Studio, you are stuffed mightily. the Getenv function doesn't do this, I don't think so anyway.
So how to launch files/apps, etc in the future, other than know the exact relationship and location of the items?
The nice thing about the Register and Call functions to launch files that I like is that if you want open a Word document, these commands will do it easily. Even if the user is using OpenOffice or MS Word, as the OS will decide what application is set to open those files. So just ask the OS to open this file using whatever relationship is setup for that user's PC. You don't need to know which version of Word, it's location, etc.
But I have faith in the ability of those on this list to come up with a clean solution. :)
Mike
Mike Matthews,
Managing Director, SQLWorks Software Ltd
Tel: +44 (0)1271 375999
Email: mike.matthews at sqlworks.co.uk
Web: www.sqlworks.co.uk
SQLWorks replaces Sage, ACT!, Opera, Access, SAP
On 21 Jan 2015, at 22:27, Doug Easterbrook <doug at artsman.com> wrote:
> hi Mike:
>
> not sure if this might help, but we use the 'getenv' things to get environment variables (in studio 5.2.x). eg
>
> Calculate iCurrentDirectory as getenv('APPDATA')
>
>
> you mentioned system folders and such so some of those are in environment variables. would that get you started?
>
>
> Doug Easterbrook
> Arts Management Systems Ltd.
> mailto:doug at artsman.com
> http://www.artsman.com
> Phone (403) 536-1205 Fax (403) 536-1210
>
>> On Jan 21, 2015, at 2:07 PM, Mike Matthews <omnis at lineal.co.uk> wrote:
>>
>> Hello All,
>>
>> There are some very clever Windows user on our list, and I'm hoping that there is an easy answer coming. This topic has come up on the StudioWorks developers group list by the way.
>>
>> With the Windows 64bit version of Studio v6.1, we have lost some useful commands. We can no longer use the register DLL and Call DLL commands with this 64 bit version, notice of which sadly missed being in the manual. TL are aware of the issue, and it is a situation beyond their control currently due to MS doing some stuff which I lists at the end. There is a fault log for it ST/DC/588, but this might be a fault log for the documentation rather than the issue itself of course.
>>
>> Various workarounds should be available hopefully, but how do you write a C++ wrapper as Chris at TL indicated?
>>
>> If you stick to the 32 bit version, then there is no problem, but I expect this to valid for the 64 bit runtimes though. And of course, no problem for OSX users, as all of this is gibberish.
>>
>> Thanks
>>
>> Mike
>>
>>
>> Mike Matthews,
>> Managing Director, SQLWorks Software Ltd
>>
>> Tel: +44 (0)1271 375999
>>
>> Email: mike.matthews at sqlworks.co.uk
>>
>> Web: www.sqlworks.co.uk
>>
>> SQLWorks replaces Sage, ACT!, Opera, Access, SAP
>>
>>
>>
>>
>>
>>>
>>>> Regarding 64 bit Omnis Studio 6.1 on Windows. As per the below conversation with Tiger Logic, external DLL calls will not likely be supported in the 64 bit version of Omnis Studio. Studio Works currently uses the DLL calls below to find the system defined folders in Windows (Desktop, Documents, Application Data, etc). Do any of you know of an already made solution for this?
>>>>
>>>>
>>>> Josh Luchies
>>>>
>>
>>
>>>> ---------- Forwarded message ----------
>>>> From: *us support* <us.support at tigerlogic.com <mailto:us.support at tigerlogic.com>>
>>>> Date: Tue, Dec 30, 2014 at 9:05 AM
>>>> Subject: Re: Windows 64 bit Omnis 6.1 Case CA05956
>>>> To: Josh Luchies <josh.luchies at royalhomes.com <mailto:josh.luchies at royalhomes.com>>
>>>>
>>>>
>>>> Josh,
>>>>
>>>> Your right, these (legacy) commands are not supported in the 64 bit version of Omnis Studio 6.1.
>>>> This was raised as Fault ST/DC/588 - Legacy external commands: Register DLL and Call DLL, should be documented as only supported in 32 bit versions.
>>>>
>>>> Unfortunately, this never made the Readme, nor the Install text files.
>>>>
>>>> At present, we are not sure as to what or even if these commands are going to be replace with.
>>>> We will chase this and let you know.
>>
>>
>>
>>>> -------- Forwarded Message --------
>>>> Subject: Fwd: Windows 64 bit Omnis 6.1 Case CA05956
>>>> Date: Tue, 30 Dec 2014 09:26:18 +0000
>>>> From: us support <us.support at tigerlogic.com>
>>>> To: Josh Luchies <josh.luchies at royalhomes.com>
>>>>
>>>>
>>>>
>>>> Josh,
>>>>
>>>> An update on this matter from Engineering....
>>>>
>>>> This is unlikely to be supported in the 64bit version, since our 32 bit implementation relies on inline assembler support provided in Visual Studio, and that feature is not available for 64 bit (see http://msdn.microsoft.com/en-us/library/4ks26t93(v=vs.120).aspx <http://msdn.microsoft.com/en-us/library/4ks26t93%28v=vs.120%29.aspx>).
>>>> The only work-around for the clients is is to write a C++ external component to carry out the API calls that they require.
>>>>
>>>> Thanks and regards
>>>>
>>>> *Chris Stevens****– Development Support*
>>>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On 21 Jan 2015, at 17:58, Gary Connor <gary_connor at directline-tech.com> wrote:
>>
>>> Note that if you are running a unicode version of Studio the ShellExecuteA should be changed to ShellExecuteW.
>>>
>>>
>>> Gary Connor, Ph.D., CIO
>>> DirectLine Technologies, Inc.
>>> 1600 N Carpenter Rd Ste D
>>> Modesto, CA 95351
>>>
>>>
>>>
>>>
>>> |-----Original Message-----
>>> |From: omnisdev-en-bounces at lists.omnis-dev.com [mailto:omnisdev-en-
>>> |bounces at lists.omnis-dev.com] On Behalf Of Rudolf Bargholz
>>> |Sent: Wednesday, January 21, 2015 9:47 AM
>>> |To: OmnisDev List - English
>>> |Subject: AW: O$5: How to open an Explorer window
>>> |
>>> |Hi Mike,
>>> |
>>> |The following will open the explorer in the given directory of a file, selecting
>>> |the appropriate file in the Windows Explorer.
>>> |
>>> |Register DLL ("Shell32.dll","ShellExecuteA","JJCCCCJ")
>>> |Call DLL
>>> |("Shell32.dll","ShellExecuteA",0,"#NULL#",'explorer.exe',con('/select,',lPath),'
>>> |#NULL#',1)
>>> |
>>> |where lPath is the full path to a specific file.
>>> |
>>> |The following will open a specified directory:
>>> |
>>> |Register DLL ("Shell32.dll","ShellExecuteA","JJCCCCJ")
>>> |Call DLL ("Shell32.dll","ShellExecuteA",0,"#NULL#",'explorer.exe',
>>> |lDirectory,'#NULL#',1)
>>> |
>>> |Regards
>>> |
>>> |Rudolf Bargholz
>>> |
>>> |-----Ursprüngliche Nachricht-----
>>> |Von: omnisdev-en-bounces at lists.omnis-dev.com [mailto:omnisdev-en-
>>> |bounces at lists.omnis-dev.com] Im Auftrag von Mike Matthews
>>> |Gesendet: Mittwoch, 21. Januar 2015 18:03
>>> |An: OmnisDev List - English
>>> |Betreff: O$5: How to open an Explorer window
>>> |
>>> |Hello All,
>>> |
>>> |I an using the FilesList component to show a list of files/folders in a directory.
>>> |It hasn't been used/updated by TL for decades, but it works ok for me. The
>>> |plus side is it shows the file icon, rather than using a tree and FileOps and not
>>> |having the icon thumbnails.
>>> |
>>> |I am giving the user the option to open a folder on his desktop, so he can get
>>> |at the files directly.
>>> |
>>> |On OSX I use an applescript:
>>> |Text: tell application "Finder" (Carriage return)
>>> |Text: open folder "[lvPath]" (Carriage return)
>>> |Text: end tell (Carriage return)
>>> |
>>> |What can I use for Windows please to open a folder in Windows Explorer
>>> |please from within Studio?
>>> |
>>> |Thanks
>>> |
>>> |Mike
>>> |
>>> |
>>> |
>>> |
>>> |Mike Matthews,
>>> Managing Director, SQLWorks Software Ltd
>>> |
>>> |Tel: +44 (0)1271 375999
>>> |
>>> |Email: mike.matthews at sqlworks.co.uk
>>> |
>>> |Web: www.sqlworks.co.uk
>>> |
>>> |SQLWorks replaces Sage, ACT!, Opera, Access, SAP
>>> |
>>> |
>>> |___________________________________________________________
>>> |__
>>> |Manage your list subscriptions at http://lists.omnis-dev.com
>>> _____________________________________________________________
>>> Manage your list subscriptions at http://lists.omnis-dev.com
>>
>>
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
More information about the omnisdev-en
mailing list