How to get the Window ref of the 4D 64 bit app window

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
Hi,

I'm trying to get the Window reference of 4D's application window so that I
can put a custom icon on it, and change the window title.

This is for 64 bit 4D v17R3 on MS Windows.

I've been doing this for years with the excellent Win32API
using gui_GetWindowEx ("").  This works fine with 32 Bit 4D apps, but fails
on 64 bit apps.  I've checked with Orchard Software, and they confirm the
issue, but they're still using 32 bit 4D Remote, so it's not a priority for
them.  I have no problem with this stance.  It's their plugin, and it's
free, and I'm very grateful for them giving it away.

So, does anyone know how to get the 4D window ref of the main 4D
application MDI window for 64 bit 4D apps?

Thanks.
 --
Pete Hay
Managing Director
Foreground Software Limited
New Zealand
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
Doing WINDOW LIST($aWin) in On Startup will return the window's ref in the array (on the Mac anyway).

Keith - CDI

> On Jan 31, 2019, at 4:40 PM, Peter Hay via 4D_Tech <[hidden email]> wrote:
>
> Hi,
>
> I'm trying to get the Window reference of 4D's application window so that I
> can put a custom icon on it, and change the window title.
>
> This is for 64 bit 4D v17R3 on MS Windows.
>
> I've been doing this for years with the excellent Win32API
> using gui_GetWindowEx ("").  This works fine with 32 Bit 4D apps, but fails
> on 64 bit apps.  I've checked with Orchard Software, and they confirm the
> issue, but they're still using 32 bit 4D Remote, so it's not a priority for
> them.  I have no problem with this stance.  It's their plugin, and it's
> free, and I'm very grateful for them giving it away.
>
> So, does anyone know how to get the 4D window ref of the main 4D
> application MDI window for 64 bit 4D apps?
>
> Thanks.
> --
> Pete Hay
> Managing Director
> Foreground Software Limited
> New Zealand
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:[hidden email]
> **********************************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
In reply to this post by 4D Tech mailing list
my understanding is that in the old days,
the window ref (int) in the plugin SDK used to be just a type case of carbon windowRef (a C pointer).

in 64-bit you can't just cast an address (64-bit) to int, the value would overflow.
so the references are now mapped internally to real pointers (around v14).

MDI is a different issue.

because v16.0 beta or v16R and v17 are Altura-free,
the old get-HWND(0) method to get its reference does not work.

so a new entry point 719 was added in v16.

https://github.com/miyako/4d-plugin-window-control
https://github.com/miyako/4d-plugin-mdi

see also

https://github.com/miyako/4d-plugin-activate

> 2019/02/01 7:40、Peter Hay via 4D_Tech <[hidden email]>のメール:
> So, does anyone know how to get the 4D window ref of the main 4D
> application MDI window for 64 bit 4D apps?




**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Keith, that doesn't seem to work on Windows unfortunately.

Miyako, Thanks for the link to your 2 plugins.  I should have known to
check your GitHub account.  ;-)

I tried both of your plugins.  Set Window Title for the MDI window works
perfectly, but I couldn't get the icon to be set correctly.  The Icon
changes, but it changes to the Windows default icon for a picture file.
The one that looks like tiny blue mountains.

I tried it on 64 bit versions of 4D v17R3 and v16, with both of your
plugins and got the same results.  I also got the same result on the big
test button in your test database, Window Control.4DB, which changes the
icon on a "normal" 4D window, not the MDI window.

I'm running 64 Bit Windows 10 Pro 1809.

Thanks for these plugins.  I really appreciate all of your time, effort and
knowledge that you share so freely with the 4D community.

--
Pete Hay
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
Hello,

I tested with 64-bit 17.0 (230889) and 17R3 (232314) Windows 10 1803
using the sample icon (owl) included with the plugin.

in both cases, the MDI icon did successfully change.

so it could be...

incompatible with Windows 1809
incompatible with your .ico file (if you did not try with the sample icon)

> 2019/02/02 9:58、Peter Hay via 4D_Tech <[hidden email]>のメール:
>
> I tried it on 64 bit versions of 4D v17R3 and v16, with both of your
> plugins and got the same results.  I also got the same result on the big
> test button in your test database, Window Control.4DB, which changes the
> icon on a "normal" 4D window, not the MDI window.
>
> I'm running 64 Bit Windows 10 Pro 1809.




**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: How to get the Window ref of the 4D 64 bit app window

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Thanks Miyako,

I've tested again on my Win 10 1809 PC, and still no go for me.  I've tried
my .ico files and your owl one.  I still get the generic blue icon.

I also tested it on Win Server 2016, and it worked perfectly.

So, it looks like may be something's changed Win 10 1809 with Window icons.

I've done a quick Google search on the subject, but haven't found anything
yet.  I'll keep looking.

> 2019/02/04,  Keisuke Miyako

>I tested with 64-bit 17.0 (230889) and 17R3 (232314) Windows 10 1803
>using the sample icon (owl) included with the plugin.

>in both cases, the MDI icon did successfully change.

>so it could be...

>incompatible with Windows 1809
>incompatible with your .ico file (if you did not try with the sample icon)

--
Pete Hay
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************