use Genero Shortcut By Html - javascript

I have a question now because IE was not maintained after 2022/6/15 also as the ActiveX
We have the ERP system only can use ActiveX By GDC(Genero Desktop Client), But now it can't use.
I google for it and found that I can create a shortcut By GDC, than export the shortcut on my desktop, that I can double click the shortcut to run my ERP system not using any browser(IE、chrome、EDGE...etc)
Now I want to create a webpage include this shortcut, let my co-worker can click the button on the webpage to run ERP system
If I use href to call the chortcut, it always show 404, but on the server I can double click shortcut to run the ERP system.
Can anyone tell me the problem or how can I do for it?
(ps. the shortcut like xxxx.gdc)
Thank you for your Reading, if anything I missed Please tell me

You don't state the Genero version you are using but given the use of ActiveX it is probably an old version.
The GDCAX (Genero Desktop Client ActiveX) version was deprecated with the release of Genero 2.50 in November 2013 (http://4js.com/online_documentation/fjs-gdc-manual-html/#gdc-topics/c_gdc_MI25x_250.html). This was coincident with Microsoft treatment of ActiveX. If you were still using GDCAX from version 2.40 or earlier you are missing out on 10 or more years of development. This is the equivalent of continuing to run iPhone 4, Android 4, Windows 7 or earlier.
Genero including both the Genero Desktop Client (GDC) and the Genero Web Client (GWC) (now renamed Genero Browser Client (GBC)) has continued to be maintained and developed since then with releases every two years.
The documentation for current supported versions can be found here https://4js.com/download/documentation/. For older documentation, look for the section Archived Releases on the right.
The standard GDC is an executable (Windows, Linux, OSX) that sits on the users workstation and communicates to the fglrun Genero process on the back end server.
When referring to "shortcut" you need to distinguish between GDC shortcut and Desktop shortcut.
The 'GDC shortcut' is the instructions to connect to the back end server and start the fglrun process using the GDC to render it on the front-end.
This can be configured as a 'Desktop shortcut' which can be placed on the desktop, this will start the GDC executable and then initiate connection to the back end server. (just the same as clicking on a Desktop shortcut for an Excel spreadsheet will start Excel executable and open the spreadsheet). If you are putting a link on a webpage expecting it to start the GDC executable this is where you are starting to go wrong, see plenty of stack overflow posts such as Open an exe file through a link in a HTML file? on why you can't start an executable from a web page.
If you want to run a Genero application in a browser you should be using the Genero Browser Client or what was probably the Genero Web Client in the version you are using. The URL used in the GDC-AX configuration was pointing to the Genero Application Server (GAS) and to an .xcf file. (This URL probably would be of the form .../wa/r/... , the bit before the /wa/r/ helps to find the web server and application server, the bit after the /wa/r/ finds the application .xcf or entry in the .xcf configuration file. What you probably need to do is point to a different application, one that is configured to use the GWC and not the GDC.
Have a look inside FGLASDIR/etc/as.xcf. Find the entries '<APPLICATION Id="gwc-demo" ...', '<APPLICATION Id="gdc-demo" ...'. These both start the demo program, one using the GWC, one using the GDC. So just as your ActiveX could be configured .../wa/r/gdc-demo to start the demo program in the GDC, you could also type .../wa/r/gwc-demo into a browser to start the demo program in the GWC, the difference in the <APPLICATION entries being the value in the Parent node which point to different OUTPUT nodes GDC-AX vs GWC.
So find the URL in your ActiveX config, find the entry it is pointing to in your GAS config, either inside the main .xcf or it has its own .xcf, and then create a new entry in the main.xcf or create a new .xcf that uses GWC and not GDC.
Your Four Js support contact should be able to assist you in this.

Related

Is there a way to detect if MS Visio, MS Word, or any MS Office app is installed on computer from IE & Chrome?

I have a SharePoint 2019 document library wherein I have a custom JavaScript code to open the MS documents (Word, Excel, Ppt, Visio) in the client application. I am using Office URI schemes for opening the documents in client apps. However, if there is no client application installed on the computer, the Office URI scheme fails without throwing up any error. I want to know if there is a way to check from the browser (IE and Chrome) if a particular MS application (Visio, Word, etc.) is installed on the computer.
P.S. I have tried the ActiveXObject approach, but for some reason, it didn't work for me and, also I want a solution that will be cross-browser compatible and afaik ActiveXObject is supported only on IE.
(Current MSFT employee in Office here. On the team that owns the link invocation handling for the native client side but not the SharePoint or JS side)
The root problem is that the browser object model doesn't give you a result for navigating to the ms-word/etc links. As I understand it that is why the built-in SharePoint open UX has 2 options. One to open in the browser and another to open in the native client. And there is interstitial UX to prompt the user if the file did not successfully open in the native client.
(And, correct, the ActiveX solution will not work even with modern Edge on windows either and is a dead-end technology wise.)
You can try using ActiveX technology to instantiate Office application as described on the detect microsoft office version using javascript thread. But Chrome is not aware of COM technology. So, any code for creating an Office application instance will fail.

want to disable / enable usb3 host controller

Looked here first on how to do that and found a lot of references but not up-to-date (windows 10)
Tried "net start usbstor" but that is not supported it seems.
It appears I need devcon.exe which is part of a huge windows 10 sdk download includeing visual studio
This is my problem, maybe there is another solution:
I have a number of USB 3 external drives they are not used all the time so they go to sleep (the drives, not the computer). This is fine but occasionally one or more of them never wake up when I tried to access them. They are on a server and I access them through the file manager on my desktop. When they do not wake up I have to use remote desktop to run "device manager" and disable "Renesas USB 3.0 eXtensible..." and then enable that host controller. Immediately, all the sleeping drives wake up. I would like to run a program from the command prompt preferably from my desktop and not have to log in using splashtop or VNC. From googleing it seem devcon needs to be on that server.
Maybe there is a service I can start or stop remotely? I did not see usbstor listed as a service.
Thanks for looking!
[EDIT] Wanted to to follow up on this post. I read harvey263 suggestion but I decided I wanted the disks to sleep as they are used rarely and I have no interested in buying a 2TB replacement disk anytime soon. However, I did want to post about that devcon program. I was unable to located the device kit for win10. It was not in
Directory of C:\Program Files (x86)\Microsoft SDKs
after downloading a huge amount of stuff I did not need, but I discovered that splashtop remote (or server which I already had in all my systems) includes devcon support in its free download and the program is tiny and easy to install. I did have to move their devcon support from
C:\Program Files (x86)\Splashtop\Splashtop Remote\Server\Driver\Monitor\utils
into my personal download directory as I wanted to execute it upon login and I could not do that from the task scheduler on account of permissions or authorizations. For example, I put
devcon64.exe remove "PCI\VEN_10DE&DEV_026D*"
devcon64.exe rescan
into a task executed once on startup and it disabled the USB controller connected to the drives and then re-scanned, reinstalling the driver and wakening the drives. It also removed the yellow bang that was always on the driver every time I rebooted.
You might be able to alleviate the sleep issue by changing the USB setting in Advanced Power Options (control powercfg.cpl,,1). I think "selective suspend" is normally Enabled by default.
For devcon.exe you only need to download the Windows Driver Kit. It's not that big and you can copy devcon.exe out to run standalone and uninstall the rest if you want. I have scripted devcon to "re-enable" a device like this:
devcon disable *ROOT\NDISVIRTUALBUS*
timeout /t 5 /nobreak
devcon enable *ROOT\NDISVIRTUALBUS*
You could put this in say "\\RemotePC\c$\Scripts\EnableUSB.bat". Then call it with psexec like lit mentioned:
psexec \\RemotePC cmd /c ("C:\Scripts\EnableUSB.bat")

Capture web page data using native language code

I'm looking for leads on how to capture web page metadata from the current browser page. I want to create a feature in my application that will allow the user to press a hot key and record meta data from the web page currently open in the user's browser. My application will be running minimized, this feature is to be activated by a global hot key.
I'm using nw.js (formerly Node-Webkit) to create this application, so ideally, the solution would be javascript running in a desktop installation of Node.js. If this is not practical, I understand that I can call platform specific code from nw.js, so solutions developed in any desktop os language would be of interest.
My application targets OS X and Windows.
I'm hoping to capture metadata from all major modern browsers (Chrome, Firefox, Safari and IE 10+).
At a minimum I need to capture the page url, but I also want to capture Keywords, Description and highlighted text for the source web page.
I need to implement this function without modifying the source webpage in any way, and I prefer to avoid the need for browser extensions, bookmarklets or plugins.
If a solution exists using a remote controlled browser extension (no user interaction) that would be of interest, but ideally I want to avoid requiring the end user to install or interact with anything but my application.
My search to date has located no information on reading web page information from applications outside the browser.
Any thoughts or leads are much appreciated.

How to check the version of our software from a browser?

We have a legacy software package made for native Windows. I'm writing a system to automate installing updates. One of the options is for the client to visit a web page, and from that web page, check for updates to their installation. There are two ways of identifying the software version: either reading a particular EXE file and looking at its file version, or reading the registry for our software (actually the third way is reading from their SQL Server database but that's obviously out of the question). Either of these methods would work, but I have no idea how to do it from javascript in a browser.
I'm sure there is some security, but I have seen other systems do this, so I'm sure it's possible. In general, the web page can check the client's computer for existence of certain software, and if it exists, check for the version. How can I do this from Javascript?
In MaVRoSCy's comment above: "only in IE this is possible with some ActiveX help, except if you run a dedicated local server just to serve this functionality". This actually fits perfectly, because each client computer already has a Windows Service running in the background at all times.
A simple HTTP server can be added into this client service listening on a universal non-common port number such as 16580. This HTTP server can handle requests like /currentversion which returns the current application version.
The javascript on the web page (hosted elsewhere but viewed on that client's browser) calls http://127.0.0.1:16580/currentversion to obtain the latest version.
One of the options is for the client to visit a web page, and from that web page, check for updates to their installation
Bad idea and wrong methodology
Checker|Updater have to be embedded into app
Checker have to (on start|on demand|whatever)
identify build of local app (any usable way)
Get && parse external permanent URL with data of Latest Existing Build (at least version and URL of Build)
Inform, if needed, about new version and|or download|update core, if requested by user|configuration

How to create web app shortcut on user's desktop programmatically?

For enterprise intranet web application, is there any way to create a desktop shortcut of web application on user's desktop? I'm looking for functionality similar to Google Gears, but without installing Google Gears. I'm looking to give user's a link on web application that says "Click here to install desktop shortcut", when they click on it, a desktop shortcut is installed with the custom icon for our application. Is there a way to do it using javascript or any other client side technologies? I don't want to run any exe on user's machines. Even though it's intranet, I have to jump through lot of corporate hoops, compliance approvals, etc to run exe on their machine. We are trying to avoid that, due to time constraints. User machines are windows XP with IE6 installed. They may all upgrade within next year's time to Windows 7 with IE8. Intranet web application in question is developed using asp.net 3.5, c#.
If this is really a corporate environment then just go talk to the network operations team.
It should be trivial for them to add something to the login script to push this link to the people's desktops.
More Info:
http://www.petri.co.il/forums/showthread.php?t=6154
http://social.technet.microsoft.com/Forums/en/winserverGP/thread/02a7bfbb-180f-40eb-82e3-2343b2bf31eb
Alright, at first I thought that this was an impossible task, until I realized that it's not.
A shortcut is just a file, and we all know you can download files from links.
I'm not sure how well windows shortcuts can be transferred from computer to computer, but I would assume that a shortcut with a location like http://www.google.com/ is not tied to any specific windows machine.
You could zip the shortcut, and point the link to the location of the zip file. Tell the users to unzip the file and place the shortcut. You may be able to just serve the shortcut, but you'd have to give the right headers, and probably specify application/octet-stream or something like it.
Alternatively you can tell them to right click, go to new -> shortcut, and copy-pasta the url into the location box.
Alternatively you could write a batch file for the users to download that opens a url in the default browser.
I know it's not quite as direct as click-button -> receive bacon but it will work.
Try looking at SaveAs
document.execCommand("SaveAs", false, "url to desktop");
The user will still have to click save and it only saves a HTML page. You would have to open a hidden IFrame containing a web application and call .execCommand on the iframe's document.`
You can create a shortcut (.lnk) file in a directory in your site and put it as the Url for a hyperlink so the users right click and save as they download the .lnk file. Your server will need the mime-type .lnk application/x-ms-shortcut adding.
The icon can be done by putting it on a network location and using the "Change icon" function to refer to this network location. This works on Windows. I suppose it could be adapted for each OS required?

Categories