I need some ideas of adding more actions to right click on Windows copy & paste when dealing with files.
Our users need to have a function that opens a file when they Paste a copied item to a new location.
I was thinking to create a HTA window with vbs or javascript functions to accomplish this, just wondering if there will be easier way to do it by modifying default Windows Paste action in registry, running a batch or vbs script.
Or if there will be other ways to do so?
Related
I wrote a simple jsx script, which displays a dialog box containing a list of checkboxes and 'Continue' button, which on click executes various commands depending on which items from the list were ticked.
As this script is supposed to be part of an Action Set, I created an action which just executes this script.
When I run the command File > Automate > Batch > The above action on a Folder or opened files, the dialog box shows for every image from the batch.
Is there any way to show this dialog box only once and apply all its settings to the whole batch?
The better way to accomplish this is to add a folder picker to your dialog and modify the script to loop through all images in the folder (or open files, whatever your needs are) rather than attempt to run the script via an action. If you really must have it in an action, the way I have done this before is to write a xml config file that the script will look for and apply the settings from there - skipping the dialog altogether.
I'm trying to create a shell command to open a given directory in the Explorer folder that the command is executed from.
I would add it as an entry to the right-click menu in regedit (HKCR\Directory\background\shell), but I can't figure out how to actually make the folder open in the current Explorer instance. (like the "open file location" option).
The open file location feature (COpenFileLocationMenu in shell32) is a shell extension, not a simple static command in the registry. COpenFileLocationMenu also implements IObjectWithSite.
When the IContextMenu::InvokeCommand method in COpenFileLocationMenu is called, it calls IUnknown_QueryService(..., SID_SInPlaceBrowser, IShellBrowser) on its site so it can navigate the Explorer window with IShellBrowser.
Background menu items receive the folder location in IShellExtInit::Initialize and normal menu items can use IShellBrowser::QueryActiveShellView to get the view and then find the current location...
If you don't want to write a shell extension then you have to settle for the scriptable ShellWindows object but you would have to do some guessing to find the correct window, perhaps by PInvoke'ing GetForegroundWindow from Powershell.
I'm using a perfectly usual SaveAs dialog (in Delphi Win32 XE2, the system is Win 7 /64), setting OFN_OVERWRITEPROMPT (or the Delphi wrapper's equivalent dlgSave.Options := [ofPathMustExist, ofOverwritePrompt];. So if I select an existing file, the dialog asks for confirmation to overwrite the file.
Everything works as it should except for one silly thing: when I choose a file, then delete that file right in the same dialog, then press OK, the dialog still asks if it's ok to overwrite the (already deleted) file. Apparently, the dialog checks file existence against a pre-loaded list, not the file system. The problem is not specific to Delphi and can be shown very easily even in Notepad:
Run Notepad.exe
Enter some text
Save as a file
Click File Save As again, in the SaveAs dialog do:
Click on the same file to select it,
Right-click and delete the file,
click OK.
The file is no longer there, but you still get the overwrite prompt.
Can anybody please suggest a way to work around this minor but annoying Windows bug? I assume some message processing / callbacks / hooks might be required? A way of checking the file presence in code while the modal SaveAs dialog is open?
Using VBScript, I want to add an additional button to Notepad labeled “send” . The send button should be located near the help menu in the Notepad window
Please advise if it is possible to add a button inside Notepad. And if it possible then how can I create the button using VBScript?
Note - why I need to add the send button: The purpose of the send button is to send the file opened in Notepad to a remote Linux machine over the network.
This is not possible with VBScript. You could possibly manage to add the button, but you couldn't hook anything to respond to it being clicked.
You could probably hack something together using the native Win32 API, but it's more work to do that than it would be to write your own simple editor in any other language and use it instead of Notepad. (Notepad is simply a thin wrapper around a multiline edit control provided by the Windows API.)
It's Impossible via VBScript but with help of more serious languages like c# or c++ freely:
for example see project of my friend:
http://www.codeproject.com/KB/COM/automatingwindowsapps.aspx
How can I create a droplet that takes a text selection as input? When I create a script that starts with on run inputText, the resulting application icon will only darken when files are dragged over it.
You can achieve a similar result by using Automator to make a service. Services can be fed selected text, (or urls or files etc) and not just from Finder, but from the right-click contextual menu or the Services menu. You can run applescript inside the Automator script, so basically Automator makes a wrapper for your appleScript. The downside is that it tends to be even slower than applescript.
Dropplets in AppleScript only support files. You can follow #stib's suggestion of using a service with Automator or using the Scripts menu (launch AppleScript Editor and choose AppleScript Editor>Preferences from the menu bar, General in the preferences window and check "Show Script menu in menu bar"). You can then place the script in the /Library/Scripts/ or ~/Library/Scripts folder to have the script appear in the menu. Alternatively, check out FastScripts to include the ability to assign keyboard shortcuts to the scripts and enhanced menu organization.
In applescript, you can create a simple droplet like this:
on open theThing
set fileToRead to open for access theThing --open the file so we can perform operations on it
set myVar to (read fileToRead) --The myVar variable is set to the contents of the dropped file
display dialog myVar --Shows the contents of the file in a dialog; do what you want with the text here
//other code here
close access fileToRead
end open
So, it's not too hard, just make sure you open for access the file first. I hope this helped!
Helpful Links:
http://macscripter.net/viewtopic.php?id=24772: About Droplets
http://macscripter.net/viewtopic.php?id=24745: About File IO
As far as I could tell, this could only be achieved by wrapping the Applescript in a Cocoa application. I don't know Objective-C, but was able to cobble something together. When I get a chance I'll try to clean up a bit and post an explanation.