topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Saturday December 14, 2024, 4:47 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: Lightweight App that displays files in folders/subfolders & allows launching  (Read 29217 times)

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
Hi all,
I'm looking for a very specific app to help out a non-profit.

Something like this:
FS7WM4W.pngLightweight App that displays files in folders/subfolders & allows launching


1. Reads all the files/folders in a specific directory and allows the user to run it from the local machine. The great majority of files will be PDFs & RTF files.  Must NOT be able to open the folders themselves and give access to the explorer file directory.
2. Needs a search functionality built in that searches inside the aforementioned (ideally search as you type).
3. Needs to have a very lightweight/quick interface as there will be close to 22,000 files in the folder.

I had tried to use Snap2HTML to create a structure of the folders in HTML and then converted the HTML EXE.  This process took me about 15 hours to work through & figure out only to get stuck at a technical limitation of HTML :(

Any help or advice would be greatly appreciated!
« Last Edit: December 10, 2020, 09:51 AM by Deozaan, Reason: embedded image into post »

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,190
    • View Profile
    • Donate to Member
So you want a kiosk app that displays the files and folders in a directory and allows you to launch them... is that pretty much it?

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
So you want a kiosk app that displays the files and folders in a directory and allows you to launch them... is that pretty much it?


Ya, I guess that's the best way to summarize it.  I don't want them to be able to open the folder, just the files. I  hope this request isn't too far out there. :(
« Last Edit: December 09, 2020, 11:59 PM by dcsev »

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,190
    • View Profile
    • Donate to Member
What version of Windows will you be running?  Windows 10 Enterprise and Educational (and maybe Pro) already have this in the OS.

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
What version of Windows will you be running?  Windows 10 Enterprise and Educational (and maybe Pro) already have this in the OS.


We use Windows 10 Enterprise LTSC.  They've been talking about bring Kiosk mode for a long time, but unless I am missing something this won't replace the functionality of an app with a basic interface to be able to scroll through various files.

Does anyone know any apps (paid or free) that could build such an app without knowing any programming?

Shades

  • Member
  • Joined in 2006
  • **
  • Posts: 2,939
    • View Profile
    • Donate to Member
LTSC versions of Windows 10 is intended to be used on computers with a specific use-case in mind. Windows 10 Enterprise, Pro or Home for anything else. Kiosks are in principle generic computers and Windows 10 LTSC is not intended for them. Microsoft's rules, not mine.

These Microsoft instructions might be of some use to you. But from your post I gather that things might get too technical too quickly with these instructions. Still, checking these out won't hurt.

Lots of extra features are not available for LTSC versions of Windows. That doesn't mean those cannot be installed later through official or not so official means, but you shouldn't count on such tricks for production machines. That will bite you in the long run.

How often do the files change in the folders you wish to make available? If those are pretty static, then it might be an option to use a generator for static HTML pages. Pages can be maintained by using MarkDown files (or AsciiDoc...yep, harping on that again), the generator will turn the adjustments into static HTML pages and these could then be served to users that can only open a browser that is hard-coded to only open these static HTML files.

With AsciiDoc you do have syntax that creates tree views in a HTML version of a Windows explorer screen. If I read the cheat-sheet of AsciiDoc correctly, that is. But something like that will likely also be available for MarkDown.

It won't be too easy to create, but in your post you indicated that you are capable of working with HTML and that makes working with MarkDown or AsciiDoc a breeze. My current expectation is that after the initial setup has been fleshed out, maintaining it afterwards should not be too much of a problem for yourself or probably even for someone less skilled than yourself. If such a thing is of consideration, of course.

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
How often do the files change in the folders you wish to make available? If those are pretty static, then it might be an option to use a generator for static HTML pages. Pages can be maintained by using MarkDown files (or AsciiDoc...yep, harping on that again), the generator will turn the adjustments into static HTML pages and these could then be served to users that can only open a browser that is hard-coded to only open these static HTML files.


I don't know how but we have plans to go with Kiosk mode in LTSC, but those plans are severely delayed due to COVID19.  I've already checked out kiosk mode and custom apps on my home computer but I don't think it would work for our needs.

The files will change constantly (every 6 months most likely but most likely every year).    I don't know HTML, but I did find a very cool app called Snap2HTML that creates a directory of files to HTML.   The only problem is unsecured HTML is not allowed on the computers anymore :(   I tried to compile the HTML into an EXE using a specialized app, but there's limitations since HTML cannot open local files.  I got "file not found" errors and the dev confirmed there's no workaround and that i'll have to find another solution.

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
I started investigating using Snap2HTML code of the folders in combination with local HTML + Google --app or --kiosk mode.

I am still very interested in a lightweight app to do this though too if possible.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,190
    • View Profile
    • Donate to Member
My quick solution was going to be to use AppLocker (https://docs.microso...windows-10-applocker) and Fences (https://www.stardock...com/products/fences/).

Fences allows you to set a region of a desktop to point to a folder on your machine and launch applications from there.  Lock down the machine so that you can't launch explorer, have that fence on the desktop, and can launch items that are of the desired extensions and you should be set.

This shows how I have part of my desktop set up:


fences.jpg

Each one of those different areas are fences that are showing the contents of a folder.  If there were other folders in those folders, it would allow you to navigate them, right in the fence.  It has a UI to allow you to navigate up and down folders, and stay within the same fence.

Shades

  • Member
  • Joined in 2006
  • **
  • Posts: 2,939
    • View Profile
    • Donate to Member
Is this for local use? Or in a network (LAN) you control? Or is this for a machine that "faces" the internet?

In case of the first situation, you can get away with the use of HTTP protocol, instead of the HTTPS protocol. And if the files are stored on the computer running the kiosk software, the only thing you need to do to create a link in the HTML is:  file:///C:\example\folder\structure\example_file_name.mp4  This will result in click-able links that open the linked file in the browser, not the default configured application. Depending on the file type you may need to install extensions in the browser to allow the browser to open them.

In case of the second situation, you can still get away with the use of the HTTP protocol, as your traffic remains in the LAN network you control. You will need to make the files available on a share if these files are located on a different computer in your network. You can assign a drive letter to that share and use:  file:///Z:\example\LAN_share\example_file_name.pdf   File will still be available as a link, your browser will still be able to open these if the appropriate extensions are installed.

In case of the 3rd situation, on a machine that "faces" the internet, you will need to use the HTTPS protocol. Most browsers won't allow any cross-link to the HTTP protocol anymore and only if the files are stored on the internet facing computer it might still be possible to link them in HTML using:  file:///<drive letter>:\example\folder\example_file_name.rtf   From a security standpoint, files stored directly on such a computer likely end up being more trouble than they are worth.


Unless I misread your request, a solution like: NextCloud  may be much more useful. You have a nice web interface for file management, you can create a user in that ecosystem, which can only open files and nothing else, remove the password for that user and you have already practically all you need. Unfortunately, it is not a lightweight solution. And there is no version of NextCloud to install on Windows. Given the stance of the developers, there never will be a version for Windows either.

You'll need a computer (virtual or on real hardware), install Linux on it, turn that into a LAMP server, then install NextCloud on that machine, configure it with user accounts/rights/extensions to your needs and finally add the files you wish to be available in the NextCloud instance, turned into a kiosk of sorts. VirtualBox (for creating virtual computers) is freeware, Linux is open source and can be freely downloaded (Ubuntu Server LTS version, it is one of the simplest ones you can use, because the installer has an option to turn it into a LAMP server immediately), NextCloud is open source and can also be freely downloaded.

What it will cost, is time. How much time? If you are a quick learner, not as much as you would think. Configuring NextCloud will be a bit of a time sink, because you'll see what nice things the default version can do and then you'll get a whiff of the available extensions. You'll likely end up dreaming up much more use-cases for that NextCloud server. There is an on-line demo available where you can try out NextCloud and get a glimps of it's features (for the instant trial, the password is: demo). It can be as open or as closed off as you want it to be. And it runs just as well on-premise as it does in any type of cloud setup too.

 

4wd

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 5,644
    • View Profile
    • Donate to Member
Re. the Snap2HTML method, a possible alternative is HFS, (HTTP File Server), which can serve up a file structure easily.

The default HTML can be modified, it's dynamic (just copy new files into the folders it's looking at and refresh), access control if needed, plus a lot of other options ... there is a search function but it isn't 'as you type'.

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
Is this for local use? Or in a network (LAN) you control? Or is this for a machine that "faces" the internet?

In case of the first situation, you can get away with the use of HTTP protocol, instead of the HTTPS protocol. And if the files are stored on the computer running the kiosk software, the only thing you need to do to create a link in the HTML is:  file:///C:\example\folder\structure\example_file_name.mp4  This will result in click-able links that open the linked file in the browser, not the default configured application. Depending on the file type you may need to install extensions in the browser to allow the browser to open them.

In case of the second situation, you can still get away with the use of the HTTP protocol, as your traffic remains in the LAN network you control. You will need to make the files available on a share if these files are located on a different computer in your network. You can assign a drive letter to that share and use:  file:///Z:\example\LAN_share\example_file_name.pdf   File will still be available as a link, your browser will still be able to open these if the appropriate extensions are installed.

In case of the 3rd situation, on a machine that "faces" the internet, you will need to use the HTTPS protocol. Most browsers won't allow any cross-link to the HTTP protocol anymore and only if the files are stored on the internet facing computer it might still be possible to link them in HTML using:  file:///<drive letter>:\example\folder\example_file_name.rtf   From a security standpoint, files stored directly on such a computer likely end up being more trouble than they are worth.


Unless I misread your request, a solution like: NextCloud  may be much more useful. You have a nice web interface for file management, you can create a user in that ecosystem, which can only open files and nothing else, remove the password for that user and you have already practically all you need. Unfortunately, it is not a lightweight solution. And there is no version of NextCloud to install on Windows. Given the stance of the developers, there never will be a version for Windows either.

You'll need a computer (virtual or on real hardware), install Linux on it, turn that into a LAMP server, then install NextCloud on that machine, configure it with user accounts/rights/extensions to your needs and finally add the files you wish to be available in the NextCloud instance, turned into a kiosk of sorts. VirtualBox (for creating virtual computers) is freeware, Linux is open source and can be freely downloaded (Ubuntu Server LTS version, it is one of the simplest ones you can use, because the installer has an option to turn it into a LAMP server immediately), NextCloud is open source and can also be freely downloaded.

What it will cost, is time. How much time? If you are a quick learner, not as much as you would think. Configuring NextCloud will be a bit of a time sink, because you'll see what nice things the default version can do and then you'll get a whiff of the available extensions. You'll likely end up dreaming up much more use-cases for that NextCloud server. There is an on-line demo available where you can try out NextCloud and get a glimps of it's features (for the instant trial, the password is: demo). It can be as open or as closed off as you want it to be. And it runs just as well on-premise as it does in any type of cloud setup too.

 

I should have provided more information, sorry.

All 20,000 + files will be locally stored and locally accessed.

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
Re. the Snap2HTML method, a possible alternative is HFS, (HTTP File Server), which can serve up a file structure easily.

The default HTML can be modified, it's dynamic (just copy new files into the folders it's looking at and refresh), access control if needed, plus a lot of other options ... there is a search function but it isn't 'as you type'.

Unfortunately due to security considerations, they won't let me install any networking apps like HFS on the computer.

I'm going to give chrome --kiosk/--app mode a shot next Monday and see if that works for the needs. Keep the comments coming guys. I really appreciate it!



I did

skwire

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 5,287
    • View Profile
    • Donate to Member
I'll take a crack at this one.  How soon did you need it by?

superboyac

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 6,347
    • View Profile
    • Donate to Member
I'll take a crack at this one.  How soon did you need it by?
yesterday!!  LOLLL  jk

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
I'll take a crack at this one.  How soon did you need it by?
yesterday!!  LOLLL  jk

Lol, too true.  I've been working on this for months and it's surprisingly hard with no coding experience.  I was really getting desperate and found Snap2HTML which did about 60% of what I needed but if skwire could make this app in the proposed design below it would really be wonderful.  It's a pretty basic design.



skwire, thank you so much for being willing to help me with this. I deeply appreciate it.  I have spent the last few hours putting together a proposed design to eliminate the guesswork. I sincerely hope I don't offend you or this community by making this too custom but it would really make the world of difference.  I would need to have the source code to be able to make the necessary personal modifications. I would compile using AHK to EXE compiler.   I hope this isn't asking too much.  I really wish I had the time to learn Autohotkey, but too much going on in my life to take on such a task :(


Here's some technical criteria to consider:
1. Should list only files in a subfolder called "Data" located in its own directory. For example, a user places a folder called "Data" in the app's directory and the app reads it from there.

2. The main types of files that will be launched/printed:
  • RTF files
    PDF files
    LNK files (short to RDP file)
    .URL (web site)

3. No menu bar needed or desired as it will clutter the interface.  One can quit the app using top right X.
3. Be able to read & list up to 20-30,000 files in multiple directories. Your apps are lightning fast so I don't see this as a problem.
4. You can put generic names in the titles "AppTitle"  and I can modify those in the source code.
5. Settings window allows to configure font, & font size & relative data path

Other considerations:
1. I assume since these are made in AHK there will be no dependencies or prerequisite software
2. I will be avoiding using MPRESS or UPX compression as I need to avoid the identification of this software as malware by McAfee AV. I checked splaylistmaker as an example, and happy to say most brand name AVs don't mark the app as malware) :)
3. Source code is needed to make very basic (non-programming) adjustments if needed.
4. I know this is a standard for all your apps, I would need it to be completely portable (store all settings in config.ini like your other brilliant apps). 
5.  I would need to be able to launch the app via USB key so making the directories relative (e.g. \Data vs C:\Data) is of critical importance.
6. Should not access network since all files will be stored locally
« Last Edit: December 12, 2020, 11:01 PM by dcsev »

GirkovArpa

  • Participant
  • Joined in 2020
  • *
  • Posts: 3
    • View Profile
    • Donate to Member
Here you go.

scapp_DtV8V4oLqt.png
« Last Edit: March 12, 2021, 01:58 PM by GirkovArpa »

KodeZwerg

  • Honorary Member
  • Joined in 2018
  • **
  • Posts: 718
    • View Profile
    • Donate to Member
Why not use Windows Shared Folders for that particular reason?
The only thing you need to do is to create a link to share.
easy as.

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,914
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Welcome to the site Girkov!  :Thmbsup:

You've got some very interesting creations on your github account -- would love to hear more about them (on separate forum thread of course!).

dcsev

  • Participant
  • Joined in 2009
  • *
  • default avatar
  • Posts: 182
    • View Profile
    • Donate to Member
Why not use Windows Shared Folders for that particular reason?
The only thing you need to do is to create a link to share.
easy as.

Unfortunately that won't work since the basic premise would be local access. In an network failure or ransomware event, windows shared folders may be rendered inoperable.  Also, We're talking accessing 23,000   files, so doing this over a network would be very difficult.

KodeZwerg

  • Honorary Member
  • Joined in 2018
  • **
  • Posts: 718
    • View Profile
    • Donate to Member
Why not use Windows Shared Folders for that particular reason?
The only thing you need to do is to create a link to share.
easy as.

Unfortunately that won't work since the basic premise would be local access. In an network failure or ransomware event, windows shared folders may be rendered inoperable.  Also, We're talking accessing 23,000   files, so doing this over a network would be very difficult.
A Shared Folder use that permissions that you set. If set to Local only it is local only. Most common is to Share over Network you are right, but it aint limited/restricted to such usage.
A few lines above is a downloadable app, just in case you missed. (GirkovArpa)

Nod5

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,169
    • View Profile
    • Donate to Member
Here you go.
That looks nice, seems functional for this request.

Off topic: I have come across Sciter a few times before but haven't made anything with it. I see you have a small test repo that transpiles some ahk to sciter here https://github.com/G...ovArpa/ahk-to-sciter . Let me ask: do you know of some Sciter project with AutoHotkey interop, like what is available for Python https://github.com/sciter-sdk/pysciter ?
« Last Edit: March 15, 2021, 11:10 AM by Nod5 »

GirkovArpa

  • Participant
  • Joined in 2020
  • *
  • Posts: 3
    • View Profile
    • Donate to Member
« Last Edit: March 17, 2021, 09:06 AM by GirkovArpa, Reason: add screenshot »

Nod5

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,169
    • View Profile
    • Donate to Member
Here you go.
Neat! I will experiment with that.

BGM

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 563
    • View Profile
    • bgmCoder DC
    • Read more about this member.
    • Donate to Member
I use FreeCommander for things like this.  It has a flat view that lets you view all the files in all folders - and you can filter it.