Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUSHclient
➜ Suggestions
➜ portable MUSHclient.
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1
2 3
| Posted by
| YmerejO42
USA (25 posts) Bio
|
| Date
| Reply #15 on Thu 11 Dec 2008 09:08 AM (UTC) |
| Message
| Nick-
Just wanted to say, I absolutely LOVE MUSHclient, but I'd like to request a portable version, also. Onoitsu2 had the right idea, the way you do things now, but there are 2 problems:
1) His solution won't work with Windows Vista.
2) With or without his solution, the paths to worlds and plugins (I assume scripts also) are hard-coded once MUSHclient is installed on a computer.
I found an alternative to his solution, it's a utility specifically for programs like MUSHclient that store data in the Registry, it works great for extracting the information, saving it, inserting it on another computer, even cleaning up after itself... But where the paths are hard-coded, you have to install it somewhere on their computer then remember to delete it afterward.
Would there be some way, in the source, to make the codes relative to where the MUSHclient executable is? I downloaded the newest version available (4.37, with source) but I'm not that experienced of a programmer to find where I could change those functions.
Even better (but probably even more complicated) would be to change the source so that it stores all data in an external file, probably XML would be good for this, but I'm not sure how hard it would be. If you would be willing, I would be happy to try and learn enough programming to change the Global Prefs to do that.
I'm subscribing to this post, so I'll receive notification of any answers, hope to hear from you soon.
~Jeremy | | Top |
|
| Posted by
| Nick Gammon
Australia (23,166 posts) Bio
Forum Administrator |
| Date
| Reply #16 on Thu 11 Dec 2008 06:59 PM (UTC) |
| Message
| I certainly acknowledge that the way the Registry is used is sub-optimal to say the least, and have part-coded ways around that. I think the stumbling block for me was where to store the global prefs file (eg. the XML file), without using the Registry.
An obvious place is "where the MUSHclient executable is" however in some ways that has problems. For a start, technically the program directory shouldn't be writable (although I know I store things like the world file directories as subdirectories under it), and secondly, with multiple users on one PC, how would you specify multiple global preferences? At present, using the Registry, each logged-in user gets their own global preferences. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| YmerejO42
USA (25 posts) Bio
|
| Date
| Reply #17 on Thu 11 Dec 2008 08:31 PM (UTC) |
| Message
| Yes, but they end up using the same world files and such, so I have to be careful writing triggers, since my gf also plays Aardwolf with me, and her equipment is different, so my triggers won't work for her... Could you set it up so that it checks the install directory, then checks the user's profile folder? I know that Microsoft now has most of its games store data in <userdocuments>\My Games. Would it be possible to do that? Say, My Games\MUSHclient, recreate the directory structure for plugins/worlds/scripts and everything there. Since you use NSIS for the installer it wouldn't be too hard.
You could even store the Global Preferences that way, or even in each user's Application Data folder, so that each user would still have their own preferences. Maybe include a command-line switch (--portable or something similar) that will cause it store everything in the MUSHclient folder, if that switch isn't there then it uses the profile folder by default.
I really appreciate the quick response, and I hate to think of all the potential work this would be, but as I said, I'll be willing to help with anything I can. I'm pretty good with writing install scripts with NSIS if that would be any good. | | Top |
|
| Posted by
| WillFa
USA (525 posts) Bio
|
| Date
| Reply #18 on Thu 11 Dec 2008 09:03 PM (UTC) Amended on Thu 11 Dec 2008 09:06 PM (UTC) by WillFa
|
| Message
| Weren't you thinking of incorporating SQLite anyway?
The registry is just another database, after all. :)
From looking at my registry, I don't believe you ever store anything under HKLM. The HKCU\Gammon Software Solutions\{exename} key could become a SQLite database in the exe's directory. (or under Application Data if you suddenly cared about getting a Windows Logo cert.)
The table schema could be nearly identical to the registry layout, with one additional column for UserName to still give the multi-user support.
The code changes could even be minimal with just overloading GetProfile(Int|String) and WriteProfile(Int|String) to two functions that do the SELECT or INSERT/UPDATE queries. (After linking to the SQLite dll and incorporating a DBOpen call into the initial startup)
| | Top |
|
| Posted by
| Worstje
Netherlands (899 posts) Bio
|
| Date
| Reply #19 on Fri 12 Dec 2008 03:23 AM (UTC) |
| Message
| I can't be bummed reading the rest of this thread, but would a single check for a file called 'portable' in the MUSHclient directory not suffice to see whether or not it is portable? If it is portable, you store stuff in the MUSHclient directory, otherwise you use Application Data?
All that remains then is migrating the Registry data to some other configfile in the appropriate path like the SQLite database someone mentioned. | | Top |
|
| Posted by
| WillFa
USA (525 posts) Bio
|
| Date
| Reply #20 on Fri 12 Dec 2008 04:45 AM (UTC) |
| Message
| | Nick, Worstje and I are saying SQLite... It's two against one again! ;) | | Top |
|
| Posted by
| Zhamel
USA (67 posts) Bio
|
| Date
| Reply #21 on Fri 12 Dec 2008 12:16 PM (UTC) |
| Message
| Not to join the, still small, mob and gang up on you Nick, but I am in the same boat with Worstje and WillFa.
I have two main computers, home desktop and work desktop, plus two laptops laptops I use when out of town on jobs. It gets tiresome to remember to bring any changes I make to global preferences or world files with me on my personal memory stick and copy them over every time I change computers. God forbid I forget to bring a file and have to remember how I had a trigger/script set up :P
Figured I would just throw in my vote for a portable version of your awesome ( brown nosing time ) MUD client. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,166 posts) Bio
Forum Administrator |
| Date
| Reply #22 on Fri 12 Dec 2008 08:55 PM (UTC) |
| Message
| I agree in principle with all this.
An SQLite database is an interesting idea - I suppose the major key would be the logged-in user name (like in the Registry), and then you would access the other stuff. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Tspivey
Canada (54 posts) Bio
|
| Date
| Reply #23 on Sat 13 Dec 2008 09:33 AM (UTC) |
| Message
| I think we have two issues here:
The first issue is a portable MUSHClient that doesn't
use the registry. A truly portable application, at least
from what I've read on the subject, needs to keep everything in its program folder, a state
which we mostly have now (except for the few preferences stored
in the registry and some hard-coding of paths in the world files - see my recent
post on the suggestions board on a possible solution to this).
As it stands right now, we can set the script files path to a relative path which will work the first time the world is loaded when the current directory is set to the
location of the world file. If something changes the directory (loading another world, adding a
plugin), reloading the script file will no longer work.
I think that a simple .ini file would work in this situation, and the
variables that controlled the world files/plugins/... directories could be set relative to the program folder.
The second issue is that of an installed client on a multi-user system. We can put
the preferences in application data, but that folder is hidden so it wouldn't be a good
place to put worlds or plugins unless there was a way of accessing your local
MUSHClient directory from inside the client for those users
who aren't technical enough to figure out how to access it.
I think mIRC does it this way in recent versions. | | Top |
|
| Posted by
| YmerejO42
USA (25 posts) Bio
|
| Date
| Reply #24 on Sat 13 Dec 2008 05:45 PM (UTC) |
| Message
| This goes back to my whole thing about using a folder in each person's My Documents... Everyone knows where they are, they're easy to access, and it would work with environment variables that Microsoft provides.
And easy path would be
<USERPROFILE>\Documents\My Games\Gammon Software\MUSHclient
With the world, plugins, and whatever other folders are needed, could even have them in completely separate folders unlike they are now. (where it's world\plugins, could be two separate folders under the MUSHclient folder).
Also, Nick, have you thought about updating the helpfile to a different format? I use Vista, and the new help system won't load the old format. I have the winhlp32.exe installed and associated with the older help files, but it still doesn't work from within MUSHclient. I have to browse to the folder and open it manually whenever I need to access it. Nothing major, just an annoyance for those of us who try to stay cutting edge. =)
Again, I'll be glad to help with anything I'm able to, I'm not an experienced programmer but I do what I can. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,166 posts) Bio
Forum Administrator |
| Date
| Reply #25 on Sat 13 Dec 2008 07:24 PM (UTC) |
| Message
| Yes, I will look at a more up-to-date path structure, the problem probably being existing plugins expect stuff where the old directory structure is.
As for the help file, a certain laziness overtook me there, and the fact that I thought that the help worked under Vista if you got that old help application. The help stuff is in fact in a database (and I have released the source for the program that processes it) so conceptually turning it into another format is certainly possible.
Already that same program outputs the RTF file which becomes input to the help file generator, and also separate HTML files. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| YmerejO42
USA (25 posts) Bio
|
| Date
| Reply #26 on Sat 13 Dec 2008 09:39 PM (UTC) |
| Message
| I tried downloading the application that you'd written to process the help file, but it wouldn't compile with Visual C++ 9.0. Is it C++ or regular C?
I also downloaded some other programs to try to decompile the .hlp file and make it into a .chm help file, but they kept encountering errors and wouldn't compile properly. Is there any chance of getting the HTML files as a download? If so, I could probably compile a .chm file and email it to you or something.
One thing - I disabled the BigWorld window on Aard, since I didn't really use the World map, but it kept popping up anyway. I ended up having to edit the main window plugin to remove all references to the BigWorld window before it would stop showing up. Is that deliberate behavior or a bug? | | Top |
|
| Posted by
| Nick Gammon
Australia (23,166 posts) Bio
Forum Administrator |
| Date
| Reply #27 on Sun 14 Dec 2008 12:53 AM (UTC) |
| Message
| |
| Posted by
| Whitchek
(4 posts) Bio
|
| Date
| Reply #28 on Mon 04 May 2009 04:44 PM (UTC) |
| Message
| | Is this MUSHclient Live program still available somewhere? Or something similar? The old website appears to be gone. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,166 posts) Bio
Forum Administrator |
| Date
| Reply #29 on Tue 05 May 2009 08:47 PM (UTC) |
| Message
| I don't have a copy, however recent versions of MUSHclient keep their global settings in a SQLite database (as suggested earlier up the thread) and thus you don't need to fiddle with the registry any more.
You should be able to put an installed copy of MUSHclient on a USB stick, and when it opens it looks for the preferences in a SQLite database in the same location as MUSHclient.exe, and thus that should work for you. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
136,391 views.
This is page 2, subject is 3 pages long:
1
2 3
It is now over 60 days since the last post. This thread is closed.
Refresh page
top