Recent Posts

Pages: 1 ... 6 7 8 9 [10]
91
Announcements and News / PDG documentation updated (April 2021)
« Last post by Mathias (Author) on April 10, 2021, 15:32:24 »
I was finally able to get the script running again that generate the PDF documentation from the webpage. 
So the PDF documentation is now updated again and I will now be able to keep it up to date.
(However some part of the documentation is obsolete. and need rewriting. I have not yet had the time for that)

http://multicommander.com/docs/
92
Script / Re: Look for script
« Last post by ReneMiner on April 09, 2021, 22:29:45 »
i don"t get the script together myself but described how to mount the registry from a currently offline windows installation to fix and repair it or to change settings that prevent the other installation from successful boot.

http://forum.multicommander.com/forum/index.php/topic,4179.msg11897.html#msg11897
93
OK, thanx for reply, i see the StrFind has the third parameter that i was missing,
means i probably looked at StrFindR that i did not see it.


 to stick with the forum sections purpose :small ideas:

 one of the buttons could by default show "Offline Help" and on click check if already available else create subfolder "Help" in the main folder and downloiad the pdf from your page (sorry i do not find the link right now). i think if the pc is a "multiplayer-engine", i. e. multiple users share it then the offline help, once downloaded is good enough for all users from the mainpath instead of once for every user.
If was downloaded / is available offline - the button will open the downloaded pdf and if "check for updates" in general is activated - it might as well check if the pdf with a newer date is available.

I created the button after downloading the pdf myself but i miss to have the "Show offline help" at the regular Help from Mainmenu.
 Instead of occupying a button there could be the offline-help as well working from menubar\help and ask once
"Do you want to download..." with a checkbox for "automatic update if available & automatic check if update available or check for available update the moment the help is clicked.
______________________________________________________________________________________

And one idea for the built/in Registry-Viewer-System:

Edit registry of an offline installation to fix and repair an installation that will no more boot etc.

(should require explicit user consent that he understands what he is doing)

You need him to point the windows folder of the installation (could be Windows or WinNT or whatever)
just make sure it is NOT EQUAL TO %SYSTEMROOT%,
i call the folder now "ROOTX",
give commandline/command
"fltmc volumes" and capture the output
gives you a list of available volumes and what device they are at looks alike
Code: [Select]
C:\Windows\system32>fltmc volumes
DOS-Name                        Volumename                              Dateisystem   Status
------------------------------  ---------------------------------------  ----------  --------
                                \Device\Mup                              Remote
C:                              \Device\HarddiskVolume3                  NTFS
                                \Device\NamedPipe                        NamedPipe
                                \Device\Mailslot                         Mailslot
G:                              \Device\HarddiskVolume1                  FAT
C:\Data                         \Device\HarddiskVolume4                  NTFS
X:                              \Device\HarddiskVolume6                  FAT
M:                              \Device\HarddiskVolume10                 NTFS
L:                              \Device\HarddiskVolume13                 NTFS
E:                              \Device\HarddiskVolume14                 exFAT
F:                              \Device\HarddiskVolume9                  FAT
J:                              \Device\HarddiskVolume11                 NTFS
W:                              \Device\HarddiskVolume5                  NTFS
K:                              \Device\HarddiskVolume12                 NTFS
                                \Device\HarddiskVolume8                  FAT
C:\ProgramData\Microsoft\Windows\Containers\BaseImages\someGUID-some-GUID-some-GUIDsomeGUID\BaseLayer  \Device\HarddiskVolume15                 NTFS
see c:\Data in the example is a volume mounted to folder C:\Data (only for NTFS)
Actually you can obtain if a drive/volume is located on what \Device\HarddiskVolume#
and it were not complicated (i.e. require a password to edit registry of another engine in the network) but who is firm to
act as a network admin will understand you don"t provide it
 
you will need the number where i made the #
 
then starting from user/pointed "rootX"(mostly "Windows" or "WinNT", some had "Longhorn", "$CHICAGO$" or whatever 
require to build the string "path_root" as:
"\\Device\\HarddiskVolume#\\ROOTX"
and the string "path_users" as
"\\Device\\HarddiskVolume#\\Users\\"
to find in the same folder as RootX is located
' in Users should be a subfolder named "DEFAULT"
 - if not available Users\DEFAULT the registry can not be restored/edited/fixed this way.
obtain the list of subfolders in "\users\" (omit "\users\public\" but it should be there also)
in a string-array, "users_name()" where i assume users_name(0) = "DEFAULT" and all other found users/subfolders - except public - are listed and you find additional the number of "users_count" subfolders

build values:
"\REGISTRY\USER\OFFLINE_" & users_name(0 to users_count)
and settings to it with the number # of harddiskvolume obatined above
path_users & users_name(0 to users_count) & "\\NTUSER.DAT"
together should give a line as
"\REGISTRY\USER\_OFFLINE_DEFAULT"="\\Device\\HarddiskVolume#\\Users\\Default\\NTUSER.DAT"
and one more like this for each user ,
 for example find a folder "d:\Users\John\" and D: were Hraddiskvolume7
"\REGISTRY\USER\_OFFLINE_JOHN"="\\Device\\HarddiskVolume7\\Users\\John\\NTUSER.DAT"

additionally there is needed to add values and settings:
"\REGISTRY\MACHINE\_OFFLINE_SAM"="\\Device\\HarddiskVolume#\\ROOTX\\System32\\config\\SAM"
"\REGISTRY\MACHINE\_OFFLINE_SYSTEM"="\\Device\\HarddiskVolume#\\ROOTX\\System32\\config\\SYSTEM"
"\REGISTRY\MACHINE\_OFFLINE_SECURITY"="\\Device\\HarddiskVolume#\\ROOTX\\System32\\config\\SECURITY"
"\REGISTRY\MACHINE\_OFFLINE_SOFTWARE"="\\Device\\HarddiskVolume#\\ROOTX\\System32\\config\\SOFTWARE"

now you can create *.reg-file and reg import or use function reg add and apply the values and settings to a certain key.


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist]

as soon imported/added refresh the treeview and start a thread to unmount the hives if the user does not do it before he ends the commander and you could just add negative values as for example

-"\REGISTRY\MACHINE\_OFFLINE_SOFTWARE"
or empty the settings or delete values and settings (cleanest)
should be done if the user selects another section than registry in the dropdown above the tree or when commander ends. /Safer of course if early/


 
 
94
Hmm you are all over the place with many things in same post.. Next time please split them up..:)

I would like the multifunctionality of the commander implemented to customize my favourite texteditor to use it for managing all about projects using my favourite scripting language - when I see what you developed and when i look on what RJ - the developer of the texteditor - created then i think it would be win/win for all.  His "Texted" provides the environment for your scripting- and plugIn-System and even if both programs will not merge into the same window - they could dock, share the same desktop and one is for the editing and correctness in text while the other will securely will keep track on the locations where the documents are stored.

And of course it were cool to use the features like search in files to bring documents into the view and it were certainly no big deal to create syntax-highlighting and intellisense-driven autocomplete for multiscriptand if i take a look at the document viewer and look to the commanders interface i can see clearly what to develop is more fun and more important to you  ;)

Ehh That is kind of not possible. Almost entire MC in a UI Controller for embedding in another program ehh hmm sorry. that will not work. Or I dont understand what you trying to say.

And mentioning that,  i miss urgently some string functions that can work based on the count of chars and repeatedly search for matches starting from a given position again or to TrimCharsLeft or TrimCharsRight by a number that says how many to cut.

Intentionally "TrimChars" and not "String"but without a keyword  as operation that could be doable by operator signs to a string As well as AddChars
If this means left < and this means right > and this $s1 &= $s2 is regular append  $s2 to $s1 in an LTR-language  then it would be  =& in RTL/systems. Where also the characters are in opposite direction then.
    $s1<& $s2    pads   $s1 with $s2 in front, equal to $s1 = $s2 & $s1 
    $s1>& $s2   does the same as $s1 = $s1 & $s2 or s1 &= $s2
       operator   & as a symbol for concatenation
      this one /  a symbol to divide / cut /separate
 TrimCharsLeft :     $string</ $number                $s1 </ 7 truncate 7 characters on the left of $s1
 TrimCharsRight:  $string >/ $number             $s2 >/ 5 cut 5 from the right.
Sorry that will not be added, I want to keep the language simple. Not many special operators that does not existing in other languages. It is better with function calls that say what it is doing.
I want the script code to be readable. Not like pearl where you don't understand what you written after a week.

I can add special StrXXX function for different things if you have a need.

kind of a reverse operating Right$() and Left$()-functions while the Mid$() already exists - even it has only the length of 1 char but $string[4...9] were like chars "456789" : anyone instantly understands this
 $string[4(9)] says somehow we had 9 chars and start at position 4... doesnt it?
Ehh ?

Improving StrFind to StrFindNext that had 1 additional parameter to determine where to start search and return relative from starting position that were about the simple string-handling without to add more keywords.
StrFind(..) takes an offset as paramter 3 (startpos)

i also miss a way to iterate trough a string step by stepand i imagine like a "When-loop" - not really a counter-functional to "For" nor "While"  working loop that keeps repeating as long as a variable remains in a certain state and modifies a second variable as a reaction to each additional begin of iteration.
 the initial execution were to remember the value of the conditional variable and to do the operation to the second variable with the third expression not necessary math operation but appending a char. i hope this is understandeable:
When loop ?? Sorry No. no kind of loops that don't exists anywhere else. Sorry I want to keep the script language clean and easy.
I can't see the need for it, You should be able to do that with while or for.


Q: could there be global constants that are valid in all scopes of a script?
for example
Code: [Select]

@permanent -1 ->$_NOTHING_$;
a "real const" that looks different from variables, maybe mandatory ucase,
special way of assignment or leading/trailing underscore,additional trailing $...
So a readonly variable that cannot be modified.
Hmm Maybe but is there really a need for that in a simple script language like this.

Or would it be better to develop enumerations derived from a class that will only accept one assignment to each property
- if no destructor they would be perfect. eachh of the enumeration/classes were a unique object that can not be copied using "new" and the delaration of it would already give it a name. thinkeable also predefined (built-in) enumerations alike for the Messagebox-styles
Code: [Select]
@enum $_mbStyle_ {
{
   @var $OK=0;
   @var $OKCancel=1;
# etc.

I still have a couple of ideas but its getting to much for a first post. Anyway, happy coding you're doing great
hmm it is a simple script language.  Enum and stuff are nice but I don't like messing with the core script engine to add complicate stuff if it is not really needed.  the script engine code is already complicated and adding major new language stuff can break stuff.  The script engine code is one of the more complex parts in MC. So adding new core stuff in it is very time consuming. and script is not many users are actually using it, and when they are.. most script is very small and not that complex

One think I do plan to add is logical operators like  && (AND) || (OR)  ( so you can do "If( $varOne && $varTwo )" )

Adding new script functions is easy. And I'm more then happy to do that.. like more StrXX or other functions..

95
Hi all,
just a question about something that's errrr...- logic?

No fear i will not ask to release sourcode nor to rip a piece out of the commander   ;D

I would like the multifunctionality of the commander implemented to customize my favourite texteditor to use it for managing all about projects using my favourite scripting language - when I see what you developed and when i look on what RJ - the developer of the texteditor - created then i think it would be win/win for all.  His "Texted" provides the environment for your scripting- and plugIn-System and even if both programs will not merge into the same window - they could dock, share the same desktop and one is for the editing and correctness in text while the other will securely will keep track on the locations where the documents are stored.

And of course it were cool to use the features like search in files to bring documents into the view and it were certainly no big deal to create syntax-highlighting and intellisense-driven autocomplete for multiscriptand if i take a look at the document viewer and look to the commanders interface i can see clearly what to develop is more fun and more important to you  ;)

- - -

And mentioning that,  i miss urgently some string functions that can work based on the count of chars and repeatedly search for matches starting from a given position again or to TrimCharsLeft or TrimCharsRight by a number that says how many to cut.

Intentionally "TrimChars" and not "String"but without a keyword  as operation that could be doable by operator signs to a string As well as AddChars
If this means left < and this means right > and this $s1 &= $s2 is regular append  $s2 to $s1 in an LTR-language  then it would be  =& in RTL/systems. Where also the characters are in opposite direction then.
    $s1<& $s2    pads   $s1 with $s2 in front, equal to $s1 = $s2 & $s1 
    $s1>& $s2   does the same as $s1 = $s1 & $s2 or s1 &= $s2
       operator   & as a symbol for concatenation
      this one /  a symbol to divide / cut /separate
 TrimCharsLeft :     $string</ $number                $s1 </ 7 truncate 7 characters on the left of $s1
 TrimCharsRight:  $string >/ $number             $s2 >/ 5 cut 5 from the right.

 kind of a reverse operating Right$() and Left$()-functions while the Mid$() already exists - even it has only the length of 1 char but $string[4...9] were like chars "456789" : anyone instantly understands this
 $string[4(9)] says somehow we had 9 chars and start at position 4... doesnt it?

Improving StrFind to StrFindNext that had 1 additional parameter to determine where to start search and return relative from starting position that were about the simple string-handling without to add more keywords.

Left$, Mid$ or Right$ read all really so like 1984 ... but i am not done yet.

 i also miss a way to iterate trough a string step by stepand i imagine like a "When-loop" - not really a counter-functional to "For" nor "While"  working loop that keeps repeating as long as a variable remains in a certain state and modifies a second variable as a reaction to each additional begin of iteration.
 the initial execution were to remember the value of the conditional variable and to do the operation to the second variable with the third expression not necessary math operation but appending a char. i hope this is understandeable:

 
Code: [Select]
@var $text = LoadStringFromFile(...somewhere...);
@var $verb = "Find Me!";
@var $position = 0;
@var $matchcount = 0;

when( $position++; matchcount += 1 )
{
   
  $position += StrFindNext( $text, $verb, $position );

# do something and repeat when $position increasesd
   
}
# goes out of scope when $position was not increased (++), decremented (--) or changed (==)

Q: could there be global constants that are valid in all scopes of a script?
for example
Code: [Select]

@permanent -1 ->$_NOTHING_$;
a "real const" that looks different from variables, maybe mandatory ucase,
special way of assignment or leading/trailing underscore,additional trailing $...

Or would it be better to develop enumerations derived from a class that will only accept one assignment to each property
- if no destructor they would be perfect. eachh of the enumeration/classes were a unique object that can not be copied using "new" and the delaration of it would already give it a name. thinkeable also predefined (built-in) enumerations alike for the Messagebox-styles
Code: [Select]
@enum $_mbStyle_ {
{
   @var $OK=0;
   @var $OKCancel=1;
# etc.

I still have a couple of ideas but its getting to much for a first post. Anyway, happy coding you're doing great
96
Tips and Tricks / Re: Compare folders
« Last post by Matthias515566 on April 07, 2021, 18:31:55 »
Edit> Compare Folders, Select Missing

Make the right settings before with the "Compare Folders should" Points.

Was this now to easy to find out?
97
Tips and Tricks / Compare folders
« Last post by Gloops on April 07, 2021, 17:20:09 »
Hello everybody,

I presume on Multicommander, there is a simple way to list file names that present in one panel and not the other ?
Where should I look for that ?
98
Feature Requests and Suggestions / Re: Refresh Devices
« Last post by Matthias515566 on April 06, 2021, 13:41:01 »
So to force a refresh you need to go to the portable root and do a forced refresh
This works (going to the portable root and doing a View>Refresh, not a "Refresh Devices"). Thank you very much. Didn't know what is a "forced refresh", but it is just a View>Refresh. Ok, Maybe this Topic can be moved to the "Support and Feedback". :)
99
Feature Requests and Suggestions / Re: Refresh Devices
« Last post by Mathias (Author) on April 05, 2021, 18:33:11 »
Problem is that MC is not notified by Windows that a portable devices is removed.
So to force a refresh you need to go to the portable root and do a forced refresh.
Connections to portable devices are messy. Since you are not actually accessing the filesystem of the device. You are connected to a interface in the device that are not like a filesystem.
So if you disconnect and reconnect same device.. all the references for the items that was find in first scan are invalid since each connection will generate new unique references for them, So thats why a refresh is needed.

100
Beta Releases / Re: v11.1 ** BETA ** (Updated 1-Apr)
« Last post by Mathias (Author) on April 01, 2021, 13:17:18 »
New Beta out that fix the startup issue of the corrupted file. If you still have a corrupted file you need to delete or edit ExplorerPanel.xml before starting.

User Config file is located in
C:\Users\[USERNAME]\AppData\Roaming\MultiCommander\Config\

Delete ExplorerPanel.xml or edit it and remove everything at the bottom after the </config> tag


Pages: 1 ... 6 7 8 9 [10]