BlobDrop

Feed the blob.

BlobDrop is a small Windows desktop window that accepts files, folders and shortcuts dragged from Explorer. With the supplied settings, dropping a file copies its path to the clipboard, ready to paste. Hold Ctrl, Shift or both when you release the drop to select a different action. The same window can launch commands when clicked and display images, including animated GIFs.

Getting started

  1. Extract the package and run BlobDrop.exe. The distributed build is 64-bit.
  2. Drop a file onto the blob and paste the clipboard into your editor. Hover over the blob to see which action is assigned to each combination of modifier keys.
  3. Right-click the blob for image, transparency and drop-action settings. Right-click the notification-area icon for the tray menu.

BlobDrop normally creates BlobDrop.ini in %APPDATA%\corz\BlobDrop. If there is a BlobDrop.ini beside the executable, BlobDrop uses that file and the executable's folder as its data folder. To create a fresh portable INI beside the executable, launch BlobDrop.exe portable from a writable folder containing the executable. This preserves any INI already beside the executable. The supplied example INI can also be copied beside the executable before launch. BlobDrop resolves portable mode against the executable's directory regardless of the working directory. A file path supplied on the command line is unused as a drop input.

Drop actions

Open Configure Drop Actions.. from the blob's right-click menu. The four selectors are independent. Done saves and applies the assignments. Esc closes the dialog without saving. Hold Shift while clicking Done to choose an existing .exe for launchwith.

Clipboard commands

copypath
Copies the full path of the dropped item. A dropped .lnk contributes the shortcut's own path.
copyname
Copies the last component of the path, including the extension if present.
copypathreal
Copies the full path, resolving .lnk files to their existing targets. Broken shortcuts are skipped.
copynamereal
Copies the file or folder name after the same shortcut resolution.
copypathshort
Requests the Windows short path (8.3 names). The result depends on the short names available for that path.
copypathnet
For an Explorer network shortcut folder with a target.lnk, reads the path from that shortcut. Otherwise asks Windows for the universal network path of the item, including the path below the share. If the Windows lookup returns no path, the dropped path is used. In a multi-item drop that fallback replaces any text accumulated from preceding items. An unreadable target.lnk contributes no path.
copycontents
Reads the contents into the text clipboard. It resolves .lnk targets and skips broken shortcuts and directories. Each file may be up to 1,048,576 bytes (1 MiB). Larger files are skipped with a tooltip. Multiple files are concatenated without a separator. This is intended for text files. Binary data may fail to copy intact.

With process_multiple_append=true, BlobDrop accumulates the output of a drop. All six path and name commands separate multiple items with LF line breaks. A skipped final item can leave a trailing LF after the preceding item. With the setting off, BlobDrop writes to the clipboard after each processed item. The current implementation still accumulates the text, so successive results can run together without separators. BlobDrop checks the clipboard after writing and retries once after 100 ms if the value differs.

File and image commands

move
Moves each file or folder into the destination folder under its existing name. A dropped .lnk moves its target. Broken shortcuts are skipped. The first move prompts for a folder if move_to_location gives no valid destination. Pick Move-To Folder.. is available from both menus. If the saved location exists, that command uses it directly. Clear move_to_location in the INI before selecting a different folder. A name collision skips that item and displays a tooltip.
useimage
Uses the dropped picture as the blob. Assign it to a drop combination first. The drop checks the dropped item's extension against allowed_image_types. See Images and Viewer Mode for folder and copy behaviour.
recycle
Sends the dropped file, folder or shortcut itself to the Windows Recycle Bin. Use the Recycle Bin to restore items that Windows successfully recycled.
delete
Permanently deletes the dropped file, shortcut or folder and its contents. The first use prompts for consent. No cancels the drop. Yes applies the action immediately and saves read_delete_warning=on for subsequent drops. Set that preference to off to restore the prompt. Failed deletions display a tooltip.
launchwith
Starts the configured application separately for each dropped item, passing the item's path on its command line. A shortcut contributes its existing target path. Broken shortcuts are skipped. The supplied launchwith_app is C:\Windows\Notepad.exe. The executable path is read for each launch. If editing the value by hand, quote executable paths containing spaces. The dropped argument is appended without automatic quotes, so paths containing spaces depend on how the receiving application parses its command line. The runtime reads the setting literally, including any path tokens saved by the picker. Use a literal executable path if a tokenised path fails.

Click actions and the launcher menu

Click assignments live in [BlobDrop]. They are read from the INI on each click. Hold the modifier keys while clicking the blob.

launch(program) or launch(program|arguments)
Runs a program by its full path or a name Windows can resolve. Quote paths with spaces in a normal Run command. Arguments can also be written after the executable inside the parentheses, as in launch(control printers).
launch(|item)
Uses Windows ShellExecute to open an executable, document, folder or shell location. Documents use their Windows file association. Examples include launch(|shell:RecycleBinFolder) and launch(|shell:mycomputerfolder). The current parser supports a leading pipe for ShellExecute or a pipe between program and arguments for Run or elevation. A second pipe after the ShellExecute prefix is passed as part of the item string.
launch(*program) or launch(*program|arguments)
Uses the Windows runas verb to request elevation, with the usual Windows consent prompt. Example launch(*cmd.exe).
folder(C:\path\to\folder)
Opens the folder through ShellExecute. This is shorthand for launch(|C:\path\to\folder).
url(https://example.com/)
Passes the URL to Windows to open with the associated browser. Enter a valid URL, including the scheme.
screensaver
Requests that Windows start the configured screensaver.
menu or an empty value
menu opens the custom launcher menu. An empty value leaves that click combination available for focus and positioning.

The [user_menu] section

Each Title=command line defines a menu item. Use launch(...) or just (...) on the right. A line with the key -, such as -=- Shortcuts, creates a separator and discards the text after the equals sign. Use semicolon-prefixed lines for INI comments. Menu entries pass through the launch parser. To open a folder or URL from this menu, put it inside launch(|...).

[user_menu]
Downloads=launch(|shell:downloads)
-=- Utilities
Device Manager=(|devmgmt.msc)
Admin CMD=(*cmd.exe)

Commands for existing menu titles are read from the INI when selected. After adding, removing or renaming titles, choose Refresh This Menu on the blob to rebuild the list. The supplied menu includes Windows management tools, Control Panel commands, shell folders, command shells and Recycle Bin commands. For example, Empty The Trash! runs PowerShell with Clear-RecycleBin -Force, which permanently empties the Recycle Bin.

Images and Viewer Mode

Right-click the blob and choose a file in Images... Subfolders appear as submenus and the current image is checked when it appears in the list. The menu scans recursively and lists up to 500 images. Refresh This Menu rescans after files are added or removed. With the blob focused, Left and Right cycle through the same list and wrap at the ends. Open Images Folder.. opens the directory containing the image currently displayed.

When a non-GIF picture has either side greater than 512 pixels and useimage would copy it, BlobDrop offers 16, 32, 48, 64, 128 or 256 pixels for the longest side. The default choice is 128. The PNG copy keeps the aspect ratio and is named original-name-128px.png for the 128-pixel choice. Keep it, closing the dialog, or a failed resize continues with the ordinary copy. The resize writes to the generated filename in the fixed image folder.

The supplied allowed_image_types=* expands to gif,png,ico,jpg,jpeg,bmp,emf,wmf,tif,tiff. Replace it with a comma-separated extension list to restrict the image menu, useimage and image-pack entries. The file must also load successfully. Oversized GDI+ images are scaled down for display to fit within the primary desktop width and height, preserving aspect ratio. This display scaling leaves the file on disk intact. GIFs use a separate renderer for animation and transparent backgrounds, and retain their native dimensions. GIF files also bypass the reduced-copy dialog.

BlobDrop saves a successfully selected image in blob_image. Images under the data folder are saved as relative paths. If the selected file disappears or fails to load, BlobDrop falls back to images\BlobDrop.png, extracting the bundled picture if needed.

Image Viewer Mode

Bring the blob to the front and press F9, or select Image Viewer Mode from either menu. The mode is saved as viewer_mode. It centres the displayed image on the primary desktop when the window is created or the image changes, subject to the placement checks below. It uses viewer_mode_transparency, which defaults to 0%. The Left and Right shortcuts use the current image menu in both modes. Viewer Mode leaves the normal-mode coordinates alone, so leaving it restores the saved drop-window location.

Download Image Pack

Choose Download Image Pack from the tray. BlobDrop retrieves image_urls.txt from the base address in image_pack_url, which defaults to https://blobdrop.com/img/Pack/. Include the trailing slash if supplying a different base address. A failed list fetch preserves the previous local list and stops the download. A successful fetch stores the list in the data folder. The downloader trims each line, skips blanks and semicolon comments, rejects disallowed extensions and paths containing .., a colon or a leading slash, and downloads missing files into the fixed image folder, creating subfolders as needed. Existing files are skipped. The progress window reports failures and rejected entries. Use Refresh This Menu to see the downloaded files when browsing the fixed folder.

Position, transparency and tray controls

INI settings and diagnostics

Edit BlobDrop.ini.. in either menu opens the active INI using the Windows file association. The tray's Open BlobDrop Data Folder opens the folder containing the active INI. Restart BlobDrop to apply all manual changes. Click commands and the commands for existing launcher menu titles are read at use time. Configure Drop Actions.. rereads preferences when you click Done. Refresh This Menu rebuilds the window and menus using cached preferences plus the settings read during window creation, such as position and transparency.

Use on and off for toggles when editing by hand. The supplied INI also uses true and false. Keep settings under [BlobDrop] and launcher entries under [user_menu]. The image, image folder, move destination and debug_log paths expand path tokens such as @DataDir, @Documents, @Desktop and @UserDir. The image and fixed image folder also resolve relative paths against the data folder. Click and menu launch strings are passed to Windows without BlobDrop token expansion.

commands, click_commands
commands supplies the comma-separated options for the drop configuration dialog. Adding a name to either list creates no new action. click_commands is a list read from the template, while clicks dispatch directly from the four assignment values.
do_tooltips, tooltip_time, tip_style, tip_icon_res, tip_icon_index
do_tooltips controls optional tips attached to UI controls. These control tips appear after 400 ms, or 150 ms when switching between controls. The supplied tooltip_time is 10000 ms. With the key missing the program uses 5000 ms, and a value below 1000 is replaced with 3000 ms. The drop-action hover tip uses mouseover_help and clears when the pointer leaves. Status messages such as skipped files use their own timeout. The low bit of tip_style enables balloon styling for control tips. tip_icon_index selects an icon from the executable. The code reads tip_icon_res but uses the executable as the icon source. The drop tip and action status messages use fixed styles.
GDI_dll
GDI+ library setting for legacy Windows Vista and Server 2008 code paths. If blank on those systems, BlobDrop searches the Windows WinSxS folder, tries the largest gdiplus.dll it finds and saves the path if loading succeeds. Other systems use gdiplus.dll from the normal Windows library search path.
version, clean_ini
On startup with an older existing INI, BlobDrop makes a dated backup beside it, fills missing or empty preferences from its bundled defaults and updates version. It replaces commands and click_commands with the bundled lists and skips [user_menu]. Existing comments are preserved by default. clean_ini=on removes semicolon comment lines and blank lines during an upgrade.
debug_level, debug_log
debug_level=0 disables debug output. Higher values include more detail. The INI describes levels up to 10 and some source messages use level 11. The compiled program starts a fresh log on launch at debug_log, which defaults to debug_dump.log in the active data folder. The dump_file example in the supplied INI does not select the log destination. At a nonzero level, Open Debug Log File.. in the tray opens the log with its Windows file association. Higher levels can record dropped paths, command lines and clipboard contents. Running the AutoIt source sends debug output to the console with (line) prefixes for Notepad++ console navigation.

Package contents and licence

The BlobDrop package contains BlobDrop.exe, ReadMe.txt and Example ini\BlobDrop.ini. The example INI describes the supplied settings and contains sample launcher entries. BlobDrop is distributed under the MIT License. Read the licence.

Welcome to autoconfig.corz.org!

Downloads @ /machine are offline while I update the server. Need something NOW, Mail Me!