lsxcommand.dll

By: Visigoth (blkhawk, ilmcuts, jesus_mjjg, rabidcow) (email)


What does lsxcommand.dll do?

The lsxcommand LoadModule is a text box that sits on your desktop. It will let you type !bangs, folder names, documents, apps, urls, etc and execute them. Think of it as a very customizable address bar :)
if you specify a border width and you dont have CommandNotMoveable set, you can drag it around by the border. there is a problem that some people are having where the mouse cursor is not set back to a normal cursor after it is off the text box. to fix this, use CommandNoCursorChange to stop lsxcommand from changing the cursor.
just a tip: lots of programs names work in lsxcommand.. you can type stuff like 'notepad', 'icq', 'netscape', to start some programs instead of the full path. the history is working great.
Note: Not all the text docs are in the html docs. All of the step.rc and bang commands are, but not all explanations. If you want to read more about the calculator, time, transparency, ... check lsxcommand.txt.

Step.rc Commands for lsxcommand.dll

CommandX [integer] x position on the screen.

Default: 0
CommandY [integer] y position on the screen.

Default: 0
CommandWidth [integer] width in pixels.

Default: 160
CommandHeight [integer] height in pixels.

Default: 20
CommandNotAlwaysOnTop [bool]

Default: false
CommandHiddenOnStart [bool] start hidden

Default: false
CommandOffsetX [integer] This value determines which point on the screen LSXCommand should use as a reference for the CommandX value.
0: left - 1: horizontal center 2: right

Default: 0
CommandOffsetY [integer] This value determines which point on the screen LSXCommand should use as a reference for the CommandY value.
0: top - 1: horizontal center - 2: bottom

Default: 0
CommandBevelBorder [bool] Use bevels instead of borders.

Default: false
CommandWaitForBox [bool] LsxCommand will not appear until he is loaded in a box with the !CommandBoxHook.
Please check lsbox documentation.

Default: false
CommandBorderSize [integer] Width in pixels of the border.
If you want to have different sized borders on each side, use CommandTopBorderSize, CommandBottomBorderSize, CommandLeftBorderSize, and CommandRightBorderSize.

Default: -1
CommandBottomBorderSize [integer] Height in pixels of the bottom border, overrides $CommandBorderSize$ for that border.

Default: 2
CommandTopBorderSize [integer] Height in pixels of the top border, overrides $CommandBorderSize$ for that border.

Default: 2
CommandLeftBorderSize [integer] Width in pixels of the left border, overrides $CommandBorderSize$ for that border.

Default: 2
CommandRightBorderSize [integer] Width in pixels of the right border, overrides $CommandBorderSize$ for that border.

Default: 2
CommandTextSize [integer] pixel size of the text

Default: 14
CommandTextBold [bool] Is the text going to be bold.

Default: false
CommandTextUnderline [bool] Is the text going to be underlined.

Default: false
CommandTextItalic [bool] Is the text going to be italic.

Default: false
CommandBGColor [color] background color

Default: FFFFFF
CommandBackground [image] Path to your background image. If this is not an absolute path, LSXCommand looks in your images directory.
Note: If this option is not specified, the background and border colors are used.

Default:
CommandStretchBackground [bool] If set to true, the background image will be stretched.

Default: false
CommandTransparentEditBox [bool] Makes the area in which you type transparent to the background. If this option is not specified, the background image shows through.
If there is no background, the background color is used.

Default: false
CommandTextColor [color] text color

Default: 000000
CommandBorderColor [color] color of the border

Default: 666666
CommandTextFontFace [string] font for the text

Default: Arial
CommandNotMoveable [bool] if this is set you will not be able to drag it around by the border

Default: false
CommandNoCursorChange [bool] does not change mouse cursor when over the text box

Default: false
CommandAssumeNetAddress [bool] If a command just doesn't cut it, you can have it start your browser with the address.

Default: false
CommandExplorePaths [bool] If enabled, any directory path you enter into LSXCommand will open a treed explorer window, instead of the standard folder window.

Default: false
CommandHistoryFile [string] Specifies the file lsxcommand stores its history in.

Default: $LitestepDir$\modules.ini
CommandHistoryEntries [integer] Sets number of history entries of which to keep track. Note: I haven't really stress-tested LSXCommand, so I don't know how well it scales up, but it shouldn't be too taxing even at somewhere around 50 entries. But I think that's a bit much anyway...

Default: 10
CommandHistoryMenuEntries [integer] Sets the maximum number of history entries available from the context menu.

Default: $CommandHistoryEntries-1$
CommandClearHistoryOnStartup [bool] Clears the history on startup.
Note: You *will* lose the history in $CommandHistoryFile$ - not only the history in memory.

Default: false
CommandNewestHistoryItemsOnTop [bool] This setting places newer history items at the top of the menu, instead of at the bottom.

Default: false
CommandUnixHistory [bool] The most popular UNIX shell (bash) has the inverse history navigation: Up for previous, down for next. You can use this system with this setting.

Default: false
CommandAddExternalsToHistory [bool] If this is on, LSXCommand will add any commands launched with the !Command !Bang command to the history. Since I've been using AlterScript with this a lot, it became annoying to have all of AlterScript's commands end up in LSXCommand's history.

Default: false
CommandContextMenuStandardItems [integer] This item does two things. It first turns on the standard menu items: Cut, Copy and Paste. Second, it tells where to put the standard items, above or below the LSXCommand specific menus.
Example:
CommandContextMenuStandardItems 1 ; Above
CommandContextMenuStandardItems 2 ; Below
CommandContextMenuStandardItems 0 ; Off (Default)

Default: 0
CommandContextMenuAboveBox [bool] If you have your LSXCommand window at the bottom of the screen, you will want to turn this on. If at the top, leave this off. This sets where the context menu will appear - above or below the LSXCommand box.

Default: false
CommandContextMenuExecute [bool] Tells LSXCommand to execute a selection from the context menu instead of copying its data to the LSXCommand box.
Note: Since the point of search engines is to have you enter a search phrase, it is not possible to have search engines execute.

Default: false
CommandContextMenuOrder [string] Specifies which order each submenu should appear.
For instance, you can have History, Alias, then Search Engines or Alias, History, Search Engines, or...
The setting is 3 numbers: 0, 1, and 2. The combination of these numbers sets in which order each submenu appears. The first number is the position of the History submenu. The second is the Alias submenu. And the last is the Search Engines submenu.

Default: 012
CommandContextMenuAutoPopup [bool] If you set this to true, then everytime the mouse will come over the lsxcommand box, the contect menu will appear.

Default: false
CommandNoWarnOnError [bool] If there is an error (for instance, if the command you entered is invalid or the calculator couldn't evaluate the expression you entered), you will get an error message. This, when turned on, will suppress it.

Default: false
CommandHideOnCommand [bool] Hides lsxcommand when a command is issued.

Default: false
CommandSelectAllOnFocus [bool] Selects everything in the command box on focus.

Default: false
CommandSelectAllOnMouseFocus [bool] Just like CommandSelectAllOnFocus, just that it only works when clicking to focus LSXCommand.
The reason these are two separate options is for people like me: I like to be able to just click once to put the cursor where I want it -not select the entire command. But, some people like the explorer way of doing things better, so I added it.

Default: false
CommandHideOnUnfocus [bool] Hides LSXCommand when it loses keyboard focus. This can be used to hide LSXCommand after it runs an app.

Default: false
CommandNoClearOnCommand [bool] wont clear the input after you hit enter

Default: false
CommandClearOnHide [bool] clear the text when mod is hidden

Default: false
CommandOnFocus [string] Will execute a command when you !FocusCommand (or when you focus it with the mouse).

Default: !none
CommandOnUnfocus [string] Will execute a command when you un-focus lsxcommand (get out of the edit box)

Default: !none
CommandTime [string] Format string that tells LSXCommand how you want your time and date to look.
(see lsxcommand.txt, section II.8 Clock Settings).

Default:
CommandClockDisappearsOnFocus [bool] If you want the clock to automatically disappear when you click in LSXCommand, set this on. Otherwise, the clock will "pause" at the current time/date. This makes it easier for you to copy/paste the time and date into any app.

Default: false
CommandScrollWinAmpTitle [bool] If on, this setting takes WinAmp's scrolling title and displays it in LSXCommand. Note that WinAmp's scroll song title preference must be on for this to happen. A neat trick with this is to have both a clock and a WinAmp scroller. The WinAmp scroller will show when WinAmp is running. If not, the clock will show.

Default: false
CommandWinAmpDisappearsOnFocus [bool] Just like CommandClockDisappearsOnFocus, but for the WinAmp scrolling feature.

Default: false
CommandMusicPlayer [string] This command enables LSXCommand to use the titles of other music players besides WinAmp. You should set it to the class name of the application you are looking for.

Default: WINAMP V1.X
CommandNoTabMicroComplete [bool] Stops Tab-MicroCompletes from taking place. When you are typing in LSXCommand and get an autocompletion, you may want to automatically go on to the next word.
see also lsxcommand.txt, section II.5 Tab-MicroComplete and Context Menu Access

Default: false
CommandTabFileComplete [bool] Enables the completion of file names by using the tab key.
see also lsxcommand.txt, section II.9 Tab File Completion

Default: false
CommandNoAutoComplete [bool] Turns *off* AutoComplete. Someone asked for it, so I coded it :).

Default: false
CommandCommaDelimiter [bool] Some Eurpoean countries use commas as decimal delimiters, so this changes decimals from periods to commas.

Default: false
CommandRPNCalculator [bool] Makes the calculator an RPN calculator. If you don't know what this is, don't use it! You'll only confuse yourself. Others call RPN "Postfix" notation. If you want to learn more, obtain a Hewlett-Packard RPN calculator (the 48/49 series are especially nice, IMO :).

Default: false
CommandSearchEngineList [string] The path to your engines.list - the list of search engines to use with LSXCommand.
see also lsxcommand.txt, section II.4 The engines.list File.

Default: engines.list
CommandSearchEngineBrowser [string] Path to the browser to be used with search engines. If not specified, LSXCommand uses the default browser on your system.

Default:

!Bang Commands for lsxcommand.dll

!ToggleCommand Toggle lsxcommand visibility.
!FocusCommand Set focus to command (nice for binding to hotkeys).
!CommandRescanEngines Rescans the engines.list file.
Note: it does not load a new engines.list file if specified in the step.rc; it will attempt to reload the same engines.list file.
!CommandClearHistory Clears both the history in memory *and* the history in $CommandHistoryFile$.
!CommandShowContextMenu Makes LSXCommand's Context Menu visible wherever the cursor is on the screen, regardless of LSXCommand's visibility.
!Command Now use the power of LSXCommand anywhere within Litestep! Shortcuts, wharf items, whatever that can run !bang commands outside of its own can now use LSXCommand.
!CommandShow Just shows LSXCommand.
Note: It does *not* give LSXCommand focus. To do this, use !FocusCommand - this command gives focus to LSXCommand, and if it's not visible, it shows it also.
!CommandHide Just hides LSXCommand. Nothing really special.
!CommandBrowseFile Brings up an Open Dialog Box to browse for a file for LSXCommand to open. It's just the same as typing in the file's name.
Note: You can send an argument to this !Bang command to specify the filter for the open box.
For instance, to see just Text Files, you might do this: !CommandBrowseFile All Text Files (*.txt, *.ini)|*.txt;*.ini
!CommandBrowseFolder Brings up a folder selection dialog. You can select a folder to browse to. There are no arguments for this !Bang command.
!CommandMove Moves the LSXCommand window either to an absolute position, or by a delta along each axis. The horizontal and vertical values can be configured separately (you can mix absolute and delta values).
If the horizontal or vertical values are surrounded by parentheses, they are interpreted as absolute values. Otherwise, they are interpreted as +/- deltas along their respective axis.
If there is only one parameter, it is interpreted as a horizontal value.
!CommandMove 0 100 ; moves it 100 pixels down
When !CommandMove is called without parameters, it moves to the current mouse cursor position.
If !CommandMove is called with "home" as its parameter, it moves back to the original position it received from step.rc
!CommandToggleTimer Toggles the current timer. If you use this, the WinAmp timer no longer takes precedence over the clock.
You have to call this !Bang again for the WinAmp scroller to appear.
!CommandSetText This !Bang sets the text in LSXCommand to its arguments.
This makes for some really neat stuff (for instance, a shortcut that pops up LSXCommand with a question mark and a space already in it ready for an argument to search with).
Note: this !Bang command does not show LSXCommand if it is hidden.
Example: !SetText "?Altavista "
!CommandBoxHook This is used with lsbox: *ModuleHook !CommandBoxHook
Please, check LsBox documentation

Changelog for lsxcommand.dll

Version 1.8.5 (jesus_mjjg/ilmcuts)
  • Added CommandStretchBackground.
  • Added CommandTextBold, CommandTextUnderline and CommandTextItalic.
  • Fixed multiple access violations.
  • Fixed some pointers being used without any prior validation.
  • Docs/XML converted to the Litestep "official" format ... a lot more work to do though, stay tuned.

(c) 2003 LiteStep Documentation Project