I use these lines to Select all text and copy it to the clipboard from the active window
but no text is Selected, so how can I select text using vb6 and sendkeys function
I'm using win 10
Call SendKeys("^A", True)
Call SendKeys("^c", True)
Related
I want to run an AppleScript a bit like this:
tell application "Microsoft PowerPoint"
repeat with tSlide in (get slides of active presentation)
repeat with tPic in (get pictures of tSlide)
set is_decorative of tPic to true
end repeat
end repeat
end tell
But set is_decorative of tPic to true doesn't work and I don't know the correct incantation.
Even better would be able to set the "alt text" value for each image by popping up a dialog box showing the pic and asking the user for it when the script it runs.
Are these properties accessible via AppleScript? Could it be done on Windows, or otherwise in some programmatic way?
I just cobbled up a bit of VBA on a Windows version of PPT (2016 in this case).
For each picture in the active presentation, it asks the user for alt text for the picture; if they provide alt text, it assigns it. If they enter a blank or delete any alt text that's already there, it sets the image as decorative.
I haven't tested it on the Mac, but it should work there as well.
Sub SetPicsDecorative()
Dim oSh As Shape
Dim oSl As Slide
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.Type = msoPicture Then
' Here's the meat of the thing
' Ask the user for Alt text
oSh.AlternativeText = InputBox("Enter alt text or press ENTER to skip:", _
"Alt text for " & oSh.Name, oSh.AlternativeText)
' If they didn't enter any alt text, assume that the image is decorative
If Len(oSh.AlternativeText) = 0 Then
oSh.Decorative = True
End If
End If ' msoPicture
Next
Next
End Sub
How are you?
I've created an applescript automation to save files in .JPG while the Save Dialog Box is open. (So I can control the name of the saved files)
Is there a way to control the Save Dialog Box of Photoshop?
What I want to happen is: Upon appearing of save dialog box
-Command + a will happen (to select all characters)
-Press delete (to delete all characters selected)
-Delay 8 seconds = Enough time for me write my own file name.
-Automation will press return to save the file under my own written file name.
I tried reading Photoshop's dictionary at Script editor but found no results for Controlling Photoshop's save dialog box.
I tried doing system events to do command a + press delete + delay 8
seconds and pressing return but that event only happens after the save
dialog box disappears instead of doing that on the actual save dialog
box.
My Photoshop is: CS6 Extended
Os: El Capitan
Thank you very much.
You should avoid using GUI scripting : each time Adobe (or Apple) will change the graphic display of the 'save as' dialog box, your script may no longer work.
Instead, use a 2 step approach : 1) get the false name and path using a standard 'choose file name' and then use this file to save using 'save' command in Photoshop. This script assume there is a current open document.
Please update 'Adobe Photoshop CS3' with your version (mine is a bit old, but good enough to test !).
Also, the default folder could be adjusted for your needs (here = Desktop).
tell application "Adobe Photoshop CS3"
set docRef to the current document
set docName to name of docRef -- current name will be use as default new name
set file2save to ((choose file name default location (path to desktop) default name docName) as string)
save docRef in file file2save as JPEG appending lowercase extension with copying
end tell
Note 1: you can improve that script by checking the extension typed in file2save variable, and, if missing, the script can add the correct extension (i.e. 'jpg').
Note 2: Adobe made some changes in 'open ' command between version CS3 and CS6. I hope these changes do not affect the 'save' command.
This is a code to what you specified also it includes open the save box:
tell application "Adobe Photoshop CS6"
activate
tell application "System Events"
keystroke "s" using {command down, shift down}
delay 1
keystroke "a" using {command down}
delay 0.1
key code 51
delay 8
keystroke return
end tell
end tell
I have created a code that will open Internet Explorer, navigate to a site, prompt for credentials and a date range, and then save the data (theoretically) to a text file.
Everything works except for saving the data. When I click their export button, it pops up a new window that is untitled (so I can't focus on the window by name) and when I try to save it to a .txt file it saves the 1st webpage that is still focused, not the popup window.
How do I shift focus to the popup window/save the popup to a text file?
Unfortunately I can't provide much code, but here is the code I am using to save to a text file:
TEXT = objIE.Document.Body.InnerText
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("Banorte.txt", 2, True)
ts.Write TEXT
ts.Close
Also, I don't have an option to download any software to help me with this. I am also not opposed to using a different language if need by, or call a separate script.
Thank you for taking a look!
------EDIT------
Here is some additional code, the site is banorte.com, this is the code that runs after I log in.
And by popup, I mean it opens up a new window in internet explorer, but it is not like a tab, that has a name and could be added to the parent window. It is a standalone.
objIE.Document.getElementsByName("btnEntrar").Item(0).Click
While objIE.Busy
WScript.Sleep 100
Wend
objIE.Document.getElementsByName("ctl00$Contentplaceholder1$btnConsultar").Item(0).Click
WScript.Sleep 5000
objIE.document.parentWindow.execScript "javascript:__doPostBack('ctl00$Contentplaceholder1$grdCuentasCheques$ctl02$ctl00','')"
BEGDATE= InputBox("Please enter the beginning date DD/MM/YYYY:","Please provide additional info.")
objIE.Document.getElementById("ctl00_Contentplaceholder1_ucPeriodoFechas_WucFechaInicial_txtFecha").value = BEGDATE
ENDDATE= InputBox("Please enter the ending date DD/MM/YYYY:","Please provide additional info.")
objIE.Document.getElementById("ctl00_Contentplaceholder1_ucPeriodoFechas_WucFechaFinal_txtFecha").value = ENDDATE
objIE.Document.getElementsByName("ctl00$Contentplaceholder1$btnConsultar").Item(0).Click
WScript.Sleep 2000
Issue is after this command:
objIE.Document.getElementsByName("ctl00$Contentplaceholder1$btnExportarSaldos").Item(0).Click
Do Until objIE.readystate = 4
WScript.Sleep 10
loop
TEXT = objIE.Document.Body.InnerText
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("Banorte.txt", 2, True)
ts.Write TEXT
ts.Close
objIE.Navigate "https://nbem.banorte.com/NBXI/Corporativa/Cerrar.aspx"
ObjIE.quit
I'm trying to use AppleScript to click an item in a select box.
When clicking the 'More...' item manually with the mouse a standard OSX file chooser dialog opens up, but when I try to do it using AppleScript, the 'More...' item shows up as the chosen item for the select box, but no dialog shows up.
So far I've tried... (element names came from Automator recorder)
tell application "System Events"
click static text 1 of window 1 of application process "DYMO Word Addin"
-- combo box arrow
click UI Element 1 of combo box 2 of group 1 of window 1 of application process "DYMO Word Addin"
set labelsList to (list 1 of scroll area 1 of combo box 2 of group 1 of window 1 of application process "DYMO Word Addin")
set numLabelsInList to (count text fields of labelsList)
set theTextField to (text field numLabelsInList of labelsList)
if numLabelsInList > 1 then
repeat with z from 1 to (numLabelsInList - 1)
key code 125 -- down arrow
end repeat
end if
-- stuff I've tried
click theTextField
keystroke return
key code 36 -- return
set focused of theTextField to true
set value of attribute "AXFocused" of theTextField to true
perform action "AXConfirm" of theTextField
end tell
... and now I'm out of ideas.
After a bunch more testing, it turns out that the file dialog only opens when the combo box has focus, and that clicking the combo box arrow button and menu items doesn't actually give it focus.
http://lists.apple.com/archives/accessibility-dev/2006/Oct/msg00013.html
After trying all of the methods from that thread to give the element focus, even 'click at' didn't work.
https://apple.stackexchange.com/questions/40141/when-mousekeys-are-on-how-do-i-click-or-move-the-mouse-using-applescript#answer-40859
That answer recommends cliclick as another way to move and click the mouse, which worked.
So in the end I ended up with
click static text 1 of window 1 of application process "DYMO Word Addin"
set labelsComboBox to (combo box 2 of group 1 of window 1 of application process "DYMO Word Addin")
tell labelsComboBox
set {xPosition, yPosition} to position of labelsComboBox
set {xSize, ySize} to size
end tell
set {realXPosition, realYPosition} to {(xPosition + (xSize div 2)) as string, (yPosition + (ySize div 2)) as string}
do shell script "/usr/local/bin/cliclick m:" & realXPosition & "," & realYPosition & " dc:" & realXPosition & "," & realYPosition
-- combo box arrow
click UI element 1 of labelsComboBox
...
Here you can find someone with a similar question and the answer was also cliclick
https://discussions.apple.com/message/17662850#17662850
I need to be able to make separte .vbs files that will (when triggered with a keyboard short-cut) will make the active window maximized, minimized, or restored.
How can I do this without downloading and installing (not allowed here) a separate package.
VBScript and Windows Script Host don't provide intrinsic functions for maximizing/minimizing/restoring a window. Without any third-party tools, your only option is to use SendKeys to simulate keyboard the shortcuts of the corresponding commands in a window's system menu.
To maximixe the active window, you can simulate the Alt+SpaceBar, x shortcut:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% x"
To minimize the active window, use Alt+SpaceBar, n:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% n"
To restore the active window, use Alt+SpaceBar, r:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% r"
(Note that this code won't work in non-English Windows versions, where the names of the Maximize/Minimize/Restore commands are localized and therefore have other shortcuts.)
SendKeys was not working in my computer. Spanish native with Spanish and English keyboard. I did this and worked in my code as instruction and worked to maximize my excel window. I put the .Sleep to visually check it.
objExcel.SendKeys"% x"
objExcel.Visible = True
objExcel.SendKeys"% x"
WScript.Sleep 2000
To maximize any window, the following code will work:
Application.SendKeys "%{ }"
Application.Wait (Now + TimeValue("00:00:02"))
Application.SendKeys "x"
Topic is old. But I managed to find language independent solution. SendKeys can basically send any keys to application, including arrow keys and enter key. So we can emulate those actions without particular letters (x,r,n). Here is working example:
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys("% {DOWN}{DOWN}{DOWN}{DOWN}{ENTER}") 'Maximize
'...
oShell.SendKeys("% {ENTER}") 'Restore
'...
oShell.SendKeys("% {DOWN}{DOWN}{DOWN}{ENTER}") 'Minimize
This works for me in my Excel macro to maximise an external PDF document by executing the shortcut keys 'Alt+Spacebar+x'.
Mote: '%' represents the Alt key, '( )' represents the spacebar key and 'x' represents the maximise key.
Application.SendKeys "%+( )+(x)", True