
Quote from CN_Iceman on July 1, 2023, 8:33 amQuote from Darbdenral on June 30, 2023, 10:19 pm@ivanes82 Ok, I see that now too, excellent catch!
I've updated the link with the fix:
https://links.tropicdesigns.net/EgF6Thanks!
Test function in action:
So, what is the best way to have the latest version of the plugin?
What is the latest version available?
It would be good to know to be always up to date.
Saludos!!
Quote from Darbdenral on June 30, 2023, 10:19 pm@ivanes82 Ok, I see that now too, excellent catch!
I've updated the link with the fix:
https://links.tropicdesigns.net/EgF6Thanks!
Test function in action:
So, what is the best way to have the latest version of the plugin?
What is the latest version available?
It would be good to know to be always up to date.
Saludos!!

Quote from Darbdenral on July 1, 2023, 8:57 amSo, what is the best way to have the latest version of the plugin?
@cn_iceman
Well if you like cutting edge release, as you can see it's right here today :)
But normally, I would check the web site for the latest release.
https://tropicdesigns.net/ezedge-plugin.html
So, what is the best way to have the latest version of the plugin?
Well if you like cutting edge release, as you can see it's right here today :)
But normally, I would check the web site for the latest release.
https://tropicdesigns.net/ezedge-plugin.html

Quote from Ivanes82 on July 1, 2023, 5:09 pmQuote from Darbdenral on July 1, 2023, 8:31 am@ivanes82
It may be we introduced a problem, not sure. Anyways, send me an example pub if you would, one that duplicates the issue for me. I couldn't duplicate your issue here. If there were no html or web page initialized, you could probably get that error.
Thanks
Attached is a pub with an application and video screen capture
Quote from Darbdenral on July 1, 2023, 8:31 amIt may be we introduced a problem, not sure. Anyways, send me an example pub if you would, one that duplicates the issue for me. I couldn't duplicate your issue here. If there were no html or web page initialized, you could probably get that error.
Thanks

Attached is a pub with an application and video screen capture
Uploaded files:
Quote from Darbdenral on July 1, 2023, 11:51 pm@ivanes82I never could duplicate your results and I always returned the variable to the VisualNeo variable too. I pushed the button slow, I pushed the button fast, probably a hundred times or more.I moved the code below to the top of your button action, right below your DisableObject "PushButton62" line. Before doing so, the variable is cleared so fast you will not see the variable in the VisualNeo debugger. I wanted to make sure the variable was created to VisualNeo and it was every time. Either way, I still never saw the popup for empty variable, the variable was always created and visible in VisualNeo debugger. Try moving the lines like I did while testing next time.SetVar "[received]" "" SetVar "[Result]" ""Also, make sure your using v1.03 from the ezEdge plugin about page, but I'm pretty sure you are.
Let me know..
SetVar "[received]" "" SetVar "[Result]" ""
Also, make sure your using v1.03 from the ezEdge plugin about page, but I'm pretty sure you are.
Let me know..

Quote from CN_Iceman on July 2, 2023, 9:25 amQuote from Darbdenral on July 1, 2023, 8:57 amWell if you like cutting edge release, as you can see it's right here today :)
But normally, I would check the web site for the latest release.
https://tropicdesigns.net/ezedge-plugin.htmlThanks buddy!
Quote from Darbdenral on July 1, 2023, 8:57 amWell if you like cutting edge release, as you can see it's right here today :)
But normally, I would check the web site for the latest release.
https://tropicdesigns.net/ezedge-plugin.html
Thanks buddy!

Quote from Darbdenral on July 2, 2023, 9:58 am@ivanes82
I was digging deep into the code on this, since it's processing a JavaScript result much faster now, I'm thinking it could possibly be a timing issue. Maybe your computer is much quicker than mine too? Anyways, It shouldn't really matter unless I had something out of order, so to speak. And so, I did discover something that could be a problem and I made an adjustment to the code.
I'm not promising anything since I cannot duplicate your problem, but it's a possibility, so download this fix..
https://links.tropicdesigns.net/EgF6
After updating, you should see Plugin v1.03.1 from the about screen
I hope this works for you. :)
I was digging deep into the code on this, since it's processing a JavaScript result much faster now, I'm thinking it could possibly be a timing issue. Maybe your computer is much quicker than mine too? Anyways, It shouldn't really matter unless I had something out of order, so to speak. And so, I did discover something that could be a problem and I made an adjustment to the code.
I'm not promising anything since I cannot duplicate your problem, but it's a possibility, so download this fix..
https://links.tropicdesigns.net/EgF6
After updating, you should see Plugin v1.03.1 from the about screen
I hope this works for you. :)

Quote from Ivanes82 on July 3, 2023, 12:02 amQuote from Darbdenral on July 2, 2023, 9:58 am@ivanes82
I was digging deep into the code on this, since it's processing a JavaScript result much faster now, I'm thinking it could possibly be a timing issue. Maybe your computer is much quicker than mine too? Anyways, It shouldn't really matter unless I had something out of order, so to speak. And so, I did discover something that could be a problem and I made an adjustment to the code.
I'm not promising anything since I cannot duplicate your problem, but it's a possibility, so download this fix..
https://links.tropicdesigns.net/EgF6
After updating, you should see Plugin v1.03.1 from the about screen
I hope this works for you. :)
unfortunately it didn't work, in fact before it only sometimes failed, and now it does it all the time.
My laptop is new, and it is relatively powerful, I don't know if this is the reason or if there is something in my system that is failing, I will format it later to see if it is solved.
Anyway as a suggestion, and without knowing if this is really possible, it would be great that the plugin first send the response from the browser and then confirm that the command has been executed, only then it is possible to ensure that the neobook code is still running when the data has arrived and not before. I tell you, it is only a suggestion from the lack of knowledge.
In the meantime, by any chance you don't have the version of the plugin that sent the quotes when the variable was empty. This version at least allows me to wait for the response of the browser and if quotes arrive I know that the result of the browser is empty or if it is not I already process the result.
Thank you very much for your trouble, I am really grateful.
Quote from Darbdenral on July 2, 2023, 9:58 amI was digging deep into the code on this, since it's processing a JavaScript result much faster now, I'm thinking it could possibly be a timing issue. Maybe your computer is much quicker than mine too? Anyways, It shouldn't really matter unless I had something out of order, so to speak. And so, I did discover something that could be a problem and I made an adjustment to the code.
I'm not promising anything since I cannot duplicate your problem, but it's a possibility, so download this fix..
https://links.tropicdesigns.net/EgF6
After updating, you should see Plugin v1.03.1 from the about screen
I hope this works for you. :)
unfortunately it didn't work, in fact before it only sometimes failed, and now it does it all the time.
My laptop is new, and it is relatively powerful, I don't know if this is the reason or if there is something in my system that is failing, I will format it later to see if it is solved.
Anyway as a suggestion, and without knowing if this is really possible, it would be great that the plugin first send the response from the browser and then confirm that the command has been executed, only then it is possible to ensure that the neobook code is still running when the data has arrived and not before. I tell you, it is only a suggestion from the lack of knowledge.
In the meantime, by any chance you don't have the version of the plugin that sent the quotes when the variable was empty. This version at least allows me to wait for the response of the browser and if quotes arrive I know that the result of the browser is empty or if it is not I already process the result.
Thank you very much for your trouble, I am really grateful.

Quote from Darbdenral on July 3, 2023, 5:07 am@ivanes82
Yes, not all JavaScript used will have an output (response), the action encapsulates all script types, response or not.. The result, just verifies that the command executed successfully (did we find a rectangle and did the action start, etc), and always occurs before any response. And the the actual response if available is located in your [received] or return value. It's up to you to check that value and determine what to do. An empty response is not always wrong, it depends on your script. Not only that, a response if available, could be 10-20 seconds later or milliseconds depending on the the script used.
I think I like the idea of sending something back when a response is empty. It's probably why I did it in the first place, I don't remember now, I created this action a while ago. You can still use a timer, sort of a timeout feature and if response is empty after timeout, act accordingly. I think your situation is unique, I don't understand why your not getting a result, if you tried my example I gave you, something is off.
I'm not saying the current method is perfect, I have some ideas for another action but before I make any further changes, try the following PUB and please let me know what happens this time.
Your welcome!
Your input is valuable, thanks!
Update: I added a 2nd method for you to try. You might find it interesting, so also try the test2.pub. The received value is sent to a subroutine..
Yes, not all JavaScript used will have an output (response), the action encapsulates all script types, response or not.. The result, just verifies that the command executed successfully (did we find a rectangle and did the action start, etc), and always occurs before any response. And the the actual response if available is located in your [received] or return value. It's up to you to check that value and determine what to do. An empty response is not always wrong, it depends on your script. Not only that, a response if available, could be 10-20 seconds later or milliseconds depending on the the script used.
I think I like the idea of sending something back when a response is empty. It's probably why I did it in the first place, I don't remember now, I created this action a while ago. You can still use a timer, sort of a timeout feature and if response is empty after timeout, act accordingly. I think your situation is unique, I don't understand why your not getting a result, if you tried my example I gave you, something is off.
I'm not saying the current method is perfect, I have some ideas for another action but before I make any further changes, try the following PUB and please let me know what happens this time.
Your welcome!
Your input is valuable, thanks!
Update: I added a 2nd method for you to try. You might find it interesting, so also try the test2.pub. The received value is sent to a subroutine..
Uploaded files:
Quote from Ivanes82 on July 5, 2023, 12:34 amQuote from Darbdenral on July 3, 2023, 5:07 am@ivanes82
Yes, not all JavaScript used will have an output (response), the action encapsulates all script types, response or not.. The result, just verifies that the command executed successfully (did we find a rectangle and did the action start, etc), and always occurs before any response. And the the actual response if available is located in your [received] or return value. It's up to you to check that value and determine what to do. An empty response is not always wrong, it depends on your script. Not only that, a response if available, could be 10-20 seconds later or milliseconds depending on the the script used.
I think I like the idea of sending something back when a response is empty. It's probably why I did it in the first place, I don't remember now, I created this action a while ago. You can still use a timer, sort of a timeout feature and if response is empty after timeout, act accordingly. I think your situation is unique, I don't understand why your not getting a result, if you tried my example I gave you, something is off.
I'm not saying the current method is perfect, I have some ideas for another action but before I make any further changes, try the following PUB and please let me know what happens this time.
Your welcome!
Your input is valuable, thanks!
Update: I added a 2nd method for you to try. You might find it interesting, so also try the test2.pub. The received value is sent to a subroutine..
hi @darbdenral, sorry it took me so long to reply. My vacation is over and this week I have to work with my son, so I have had little time.
I already tried the test file solution, and although it worked setting it to 200 milliseconds, I didn't like it, besides that if for whatever reason a script took longer it would fail again and I didn't control it.
Test2 works perfect, I didn't know about this command and from now on I will use it often.
I had already solved it by creating a small javascript script, which always sent something as a result, either the result of the variable, or returned "empy".
Anyway, I loved your solution.Thank you very much for your time. Your plugin is excellent.
Quote from Darbdenral on July 3, 2023, 5:07 amYes, not all JavaScript used will have an output (response), the action encapsulates all script types, response or not.. The result, just verifies that the command executed successfully (did we find a rectangle and did the action start, etc), and always occurs before any response. And the the actual response if available is located in your [received] or return value. It's up to you to check that value and determine what to do. An empty response is not always wrong, it depends on your script. Not only that, a response if available, could be 10-20 seconds later or milliseconds depending on the the script used.
I think I like the idea of sending something back when a response is empty. It's probably why I did it in the first place, I don't remember now, I created this action a while ago. You can still use a timer, sort of a timeout feature and if response is empty after timeout, act accordingly. I think your situation is unique, I don't understand why your not getting a result, if you tried my example I gave you, something is off.
I'm not saying the current method is perfect, I have some ideas for another action but before I make any further changes, try the following PUB and please let me know what happens this time.
Your welcome!
Your input is valuable, thanks!
Update: I added a 2nd method for you to try. You might find it interesting, so also try the test2.pub. The received value is sent to a subroutine..
hi @darbdenral, sorry it took me so long to reply. My vacation is over and this week I have to work with my son, so I have had little time.
I already tried the test file solution, and although it worked setting it to 200 milliseconds, I didn't like it, besides that if for whatever reason a script took longer it would fail again and I didn't control it.
Test2 works perfect, I didn't know about this command and from now on I will use it often.
I had already solved it by creating a small javascript script, which always sent something as a result, either the result of the variable, or returned "empy".
Anyway, I loved your solution.
Thank you very much for your time. Your plugin is excellent.

Quote from Darbdenral on July 5, 2023, 7:12 am@ivanes82
Excellent!
Yes, I didn't think of it until later either.. it's a powerful command..
Here's an explanation for it and it's documented on the web help page too..
ezEdgeRunAction: This JavaScript function will communicate with VisualNEOWin from your web pages, surround with single quotes.. You will need to write code in your ezEdgeMessageReceived subroutine and trap your commands to process the actions and only allow/filter your chosen commands . You could literally make up any command/fake you like, it doesn't even need to be a valid VisualNeoWin action, then in your ezEdgeMessageReceived subroutine you trap your fake command and do anything you like!
Thanks for your support!
Excellent!
Yes, I didn't think of it until later either.. it's a powerful command..
Here's an explanation for it and it's documented on the web help page too..
ezEdgeRunAction: This JavaScript function will communicate with VisualNEOWin from your web pages, surround with single quotes.. You will need to write code in your ezEdgeMessageReceived subroutine and trap your commands to process the actions and only allow/filter your chosen commands . You could literally make up any command/fake you like, it doesn't even need to be a valid VisualNeoWin action, then in your ezEdgeMessageReceived subroutine you trap your fake command and do anything you like!
Thanks for your support!

Quote from fkapnist on September 14, 2023, 12:03 amI got the registered version and it is easy to use. However if I run your sample pub inside a custom window, I get an error when I try to close the custom window, And it is your sample script, not mine... I have version 1.01.
I will try the new Fix version. I hope it works.
..........................
I tried the new Fix version but it still has the same problem inside a custom window. "A call to an OS function failed."
My app will close but the custom window will throw and error when I try to close it and 'ShowErrors "False"' won't hide it either..
.
I got the registered version and it is easy to use. However if I run your sample pub inside a custom window, I get an error when I try to close the custom window, And it is your sample script, not mine... I have version 1.01.
I will try the new Fix version. I hope it works.
..........................
I tried the new Fix version but it still has the same problem inside a custom window. "A call to an OS function failed."
My app will close but the custom window will throw and error when I try to close it and 'ShowErrors "False"' won't hide it either.
.
.

Quote from fkapnist on September 14, 2023, 12:51 amI used your "ViewWebPageSource" sample app. It creates the "TextEntry3" object with an input limit of 100000 lines. It seems to freeze up and throw an error while displaying page source code when you try to close a custom window.
...................
I removed the input limit from TextEntry3 and now everything works!
My problem had nothing to do with ezEdge. Great plugin...
.
I used your "ViewWebPageSource" sample app. It creates the "TextEntry3" object with an input limit of 100000 lines. It seems to freeze up and throw an error while displaying page source code when you try to close a custom window.
...................
I removed the input limit from TextEntry3 and now everything works!
My problem had nothing to do with ezEdge. Great plugin...
.

Quote from Darbdenral on September 14, 2023, 1:53 am@fkapnist
Ok, that sounds good, I'm glad you sorted it out and are enjoying the plugin .. ;)
If you do have any problems in the future, send me a pub if you would and I'd be glad to help you with it..
thanks!
Ok, that sounds good, I'm glad you sorted it out and are enjoying the plugin .. ;)
If you do have any problems in the future, send me a pub if you would and I'd be glad to help you with it..
thanks!

Quote from fkapnist on September 14, 2023, 2:00 pmThe ezEdge download includes samples that make use of the "Play" action, wnich is only found in VisualNEO Win. If you are using Neobook you will need the "hpwPlay" plugin and the script must be changed from
Play "something"
to
hpwPlay "something" ""
Maybe that's why some users' apps don't work.
.
The ezEdge download includes samples that make use of the "Play" action, wnich is only found in VisualNEO Win. If you are using Neobook you will need the "hpwPlay" plugin and the script must be changed from
Play "something"
to
hpwPlay "something" ""
Maybe that's why some users' apps don't work.
.

Quote from Darbdenral on September 14, 2023, 9:52 pm@fkapnist
You must be talking about sample projects using JavaScript commands to communicate with NeoBook.. This is documented with solutions in the online help section under (JavaScript Commands (from the web browser HTML code)) and if a NeoBook developer tries to use that action in project development, NeoBook will let them know that action does not exist.
You must be talking about sample projects using JavaScript commands to communicate with NeoBook.. This is documented with solutions in the online help section under (JavaScript Commands (from the web browser HTML code)) and if a NeoBook developer tries to use that action in project development, NeoBook will let them know that action does not exist.


Quote from Darbdenral on September 16, 2023, 11:56 pmQuote from fkapnist on September 16, 2023, 7:29 amI need to disable the scrollbars in ezEdge but I haven't figured out how ...
Hi @fkapnist,
Yes, scrollbars in the new Edge WebView are actually controlled internally by web pages with CSS, so you can inject JavaScript code into the webpage to hide it in various ways. I've attached a sample pub that will work. Look at the subroutines for optionally disabling scrollbars but still allowing the window to scroll too.
Quote from fkapnist on September 16, 2023, 7:29 amI need to disable the scrollbars in ezEdge but I haven't figured out how ...
Hi @fkapnist,
Yes, scrollbars in the new Edge WebView are actually controlled internally by web pages with CSS, so you can inject JavaScript code into the webpage to hide it in various ways. I've attached a sample pub that will work. Look at the subroutines for optionally disabling scrollbars but still allowing the window to scroll too.
Uploaded files:

Quote from Darbdenral on February 25, 2025, 12:12 pmOk Code Wizards,
I have another update for the ezEdge browser plugin..
I haven't updated this post in a while but there have been many updates since my last post in this thread. But If your on my email list or check the web site you should be updated by now with all the past developments. There is a change log on the sales page too.
Anyways, I have another update available for you..
zEdge v1.08
02/25/2025Two new actions have been added!
ezEdgeGetDownloadPath - This action Gets the current ezEdge browser download path. The ezEdge browser must have been previously created and cache exists before using this function! But not currently active! Provide cache path and a variable for returned folder value.
ezEdgeSetDownloadPath - Use to Change download path used by browser object. The ezEdge browser must have been previously created and cache exists before using this function! But not currently active! Provide cache path, new folder location and result var, returns True or False.
Apparently, I'm told, these two new actions makes this the ONLY Edge plugin for VisualNeoWin capable of this! You would think this to be an easy task, simply a well established function. But the download functions have been absent from most developer components since Internet Explorer has been abandoned.
It's also important to note, these new actions do NOT interfere with the users default system Edge browser settings. What's nice is it totally leaves the default Edge download folders alone and just modifies the plugin settings for the ezEdge downloads giving more more control and separation.
New VisualNeoWin sample app that shows how to use the new actions
ChangeDownloadFolder.pub
This now makes 49 actions and 19 sample apps!
ezEdge Sales Page:
https://tropicdesigns.net/ezedge-plugin.htmlDownload EzEdge v1.08 Setup:
https://links.tropicdesigns.net/ezEdgeezEdge v1.08 Plugin Update Only:
https://links.tropicdesigns.net/UHoPHope your all having a great week!
Brad
Ok Code Wizards,
I have another update for the ezEdge browser plugin..
I haven't updated this post in a while but there have been many updates since my last post in this thread. But If your on my email list or check the web site you should be updated by now with all the past developments. There is a change log on the sales page too.
Anyways, I have another update available for you..
zEdge v1.08
02/25/2025
Two new actions have been added!
ezEdgeGetDownloadPath - This action Gets the current ezEdge browser download path. The ezEdge browser must have been previously created and cache exists before using this function! But not currently active! Provide cache path and a variable for returned folder value.
ezEdgeSetDownloadPath - Use to Change download path used by browser object. The ezEdge browser must have been previously created and cache exists before using this function! But not currently active! Provide cache path, new folder location and result var, returns True or False.
Apparently, I'm told, these two new actions makes this the ONLY Edge plugin for VisualNeoWin capable of this! You would think this to be an easy task, simply a well established function. But the download functions have been absent from most developer components since Internet Explorer has been abandoned.
It's also important to note, these new actions do NOT interfere with the users default system Edge browser settings. What's nice is it totally leaves the default Edge download folders alone and just modifies the plugin settings for the ezEdge downloads giving more more control and separation.
New VisualNeoWin sample app that shows how to use the new actions
ChangeDownloadFolder.pub

This now makes 49 actions and 19 sample apps!
ezEdge Sales Page:
https://tropicdesigns.net/ezedge-plugin.html
Download EzEdge v1.08 Setup:
https://links.tropicdesigns.net/ezEdge
ezEdge v1.08 Plugin Update Only:
https://links.tropicdesigns.net/UHoP
Hope your all having a great week!
Brad

Quote from rcohen on February 26, 2025, 6:54 pmThank you TONS Mr. Brad. This is a lifesaver for me given the projects I'm involved with.
I have to mention to other users, that in reading about your plugins, I was VERY surprised to find ezAutomation was FAR more than an automation plugin. I had, until now, skipped over it as I have no need for scheduled timers wired to subroutines, but when I dug under the hood... WOW. What an amazing list of features and functions in a single plugin. If anyone else did what I did (and overlooked it based on it's name) then I encourage you to take a closer look.
Anyway, thank you Brad. Great stuff.
Thank you TONS Mr. Brad. This is a lifesaver for me given the projects I'm involved with.
I have to mention to other users, that in reading about your plugins, I was VERY surprised to find ezAutomation was FAR more than an automation plugin. I had, until now, skipped over it as I have no need for scheduled timers wired to subroutines, but when I dug under the hood... WOW. What an amazing list of features and functions in a single plugin. If anyone else did what I did (and overlooked it based on it's name) then I encourage you to take a closer look.
Anyway, thank you Brad. Great stuff.