mmoalem

Clipget() does not work

10 posts in this topic

#1 ·  Posted

I seem to have an issue with clipget() - the following bit of code copy URL from chrome address bar - than using clipget() i try to grab the URL into a variable and input it into a spreadsheet. the script did not put anything into the sheet 

originally I though it was an issue with  OOo/LibO Calc UDF and posted it there :

 

than I tried writing $NewURL into a text file and than just a msgbox but it comes blank. (the URL is in the clipboard as i can paste it)

 

send ("!d") ;select URL in browser
send ("^c") ;copy selected URL
Local $NewURL = ClipGet()
MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, $sTitle, $NewURL )

am I doing something wrong? is there an issue with a URL characters?

Share this post


Link to post
Share on other sites



#2 ·  Posted

Hmm I don't see anything wrong in that code.

This works fine here - The MsgBox gives me the URL.
Have you tried with different sites?

#include <MsgBoxConstants.au3>

send ("!d") ;select URL in browser
send ("^c") ;copy selected URL

Local $NewURL = ClipGet()
Local $sTitle = "Title"

MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, $sTitle, $NewURL )

 

Share this post


Link to post
Share on other sites

#3 ·  Posted

3 hours ago, david1337 said:

Hmm I don't see anything wrong in that code.

This works fine here - The MsgBox gives me the URL.
Have you tried with different sites?

#include <MsgBoxConstants.au3>

send ("!d") ;select URL in browser
send ("^c") ;copy selected URL

Local $NewURL = ClipGet()
Local $sTitle = "Title"

MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, $sTitle, $NewURL )

 

that is strange... doesnt work for me even with other URLs... Now I kind of went the manual route opening a text file, activating it, pasting from the clipboard - that works but wish i understood why clipget doesnt work

Share this post


Link to post
Share on other sites

#4 ·  Posted

its working,

#include <MsgBoxConstants.au3>
WinActivate("[Class:MozillaWindowClass]")

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
Local $NewURL = ClipGet()
MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Title", $NewURL )

just activate your browser and put some if statement


ill get to that... i still need to learn and understand a lot of codes graduated.gif

Correct answer, learn to walk before you take on that marathon.

Share this post


Link to post
Share on other sites

#5 ·  Posted

the issue is in clipget - the URL is copied into the clipboard no problem but $NewURL is not populated by clipget() - have no idea why... tried running it as admin on win10 as well but did not work

5 hours ago, 232showtime said:

its working,

#include <MsgBoxConstants.au3>
WinActivate("[Class:MozillaWindowClass]")

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
Local $NewURL = ClipGet()
MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Title", $NewURL )

just activate your browser and put some if statement

 

Share this post


Link to post
Share on other sites

#6 ·  Posted

It's working as well in me.

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

WinActivate("[Class:MozillaWindowClass]")

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
Local $NewURL = ClipGet()
$sFilePath = @ScriptDir & "\Test.txt"
$hFileOpen = FileOpen($sFilePath, $FO_APPEND)
   FileWriteLine($hFileOpen, $NewURL)
FileClose($hFileOpen)
MsgBox($MB_SYSTEMMODAL, "Title", "Contents of the ClipGet:" & @CRLF & FileRead($sFilePath))

 

17 minutes ago, mmoalem said:

$NewURL is not populated by clipget()

What do you mean by not populating your clipget()?

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

22 hours ago, mmoalem said:

the following bit of code copy URL from chrome address bar - than using clipget() i try to grab the URL into a variable and input it into a spreadsheet. the script did not put anything into the sheet

Have you tried using Mozilla instead? Chrome seems not working in me.

I tried having it this way:

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

If WinExists("[CLASS:MozillaWindowClass]") Then
    WinActivate("[CLASS:MozillaWindowClass]")
ElseIf WinExists("[CLASS:IEFrame]") Then
    WinActivate("[CLASS:IEFrame]")
 ElseIf WinExists("[CLASS:Chrome_WidgetWin_0]") Then
    WinActivate("[CLASS:Chrome_WidgetWin_0]")
EndIf

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
Local $NewURL = ClipGet()
$sFilePath = @ScriptDir & "\Test.txt"
$hFileOpen = FileOpen($sFilePath, $FO_APPEND)
   FileWriteLine($hFileOpen, $NewURL)
FileClose($hFileOpen)
MsgBox($MB_SYSTEMMODAL, "Title", "Contents of the ClipGet:" & @CRLF & FileRead($sFilePath))

But you might want to check this here and try Xandy's line. Might help you with your chrome issue. But for FireFox and IE above code is working fine.^_^

Edited by KickStarter15

Share this post


Link to post
Share on other sites

#8 ·  Posted

Sometimes when using send("^c) to copy data to the clipboard it can take a short time for the data to get into the clipboard. Adding a short sleep before trying to access the data in the clipboard usually  solves the problem.

#include <MsgBoxConstants.au3>
WinActivate("[Class:MozillaWindowClass]")

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
sleep(500) ;<===== Experiment with different values to get the optimum sleep time
Local $NewURL = ClipGet()
MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Title", $NewURL )

 

 

 


"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Share this post


Link to post
Share on other sites

#9 ·  Posted

Also, just because you activate a window doesn't necessarily mean that 100% of your sends are going to get to that window.  Why not just use IE, and then there are actual functions that will grab a DOM object text (the url) into a variable


IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites

#10 ·  Posted

On 2017-5-18 at 9:23 PM, Bowmore said:

Sometimes when using send("^c) to copy data to the clipboard it can take a short time for the data to get into the clipboard. Adding a short sleep before trying to access the data in the clipboard usually  solves the problem.

#include <MsgBoxConstants.au3>
WinActivate("[Class:MozillaWindowClass]")

send ("!d") ;select URL in browser

send ("^c") ;copy selected URL
sleep(500) ;<===== Experiment with different values to get the optimum sleep time
Local $NewURL = ClipGet()
MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Title", $NewURL )

 

 

 

That was the issue! thank you all for trying to help - appreciate the support

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • AndreyS
      By AndreyS
      Hello to you, dear developers!
      Could you please tell me if there is an easy way to determine if the information was pasted from the clipboard?
      Without any variation of the insertion via Ctrl+V, or through the context menu.
      I revised the Help and many forum topics, but found nothing suitable.
      Can there be any WinAPI system events that determine this event?
    • Nareshm
      By Nareshm
      Its possible to past previously copied text to somewhere with autoit script ?
      If yes, How it ?
      example : Before I copied ABCD and then copied the PQRS, how to past the previously copied ABCD ?
    • tcurran
      By tcurran
      Here's a short UDF that will, at least in most cases, detect whether a window can be copied from or pasted to programmatically--for example, by Send()ing ctl-c, ctl-v. This is often disabled when programs (like your AutoIt script) run at a lower UAC integrity level than the application they are trying to operate on.
      #include <WinAPI.au3> Func _WindowIsPasteable($handle) ;accepts window handle; returns true or false whether a window will accept Ctl-C, Ctl-V Local $bCanPaste = True Local $hTestWindowPID = 0 Local $hTestWindowTID = _WinAPI_GetWindowThreadProcessId($handle, $hTestWindowPID) _WinAPI_AttachThreadInput(_WinAPI_GetCurrentThreadId(), $hTestWindowTID, True);attach to window we want to paste into $bCanPaste = _WinAPI_GetFocus() ;Test whether window is paste-able--returns False if it is not _WinAPI_AttachThreadInput(_WinAPI_GetCurrentThreadId, $hTestWindowTID, False);detach from window thread Return $bCanPaste EndFunc Pass it a window handle; it returns true or false whether a window will accept programmatic pasting. The function may not work on the CMD window, since it handles the clipboard uniquely.
      This function works by attaching to the program thread of the window whose handle it receives, then attempting to perform a GetFocus on that thread. In most cases, the attempt will fail if the window will not accept programmatic copy-paste.
    • caramen
      By caramen
      Hello Guys,
      I am trying to make a screenshoot copy it to clipboard and paste it into a word document i want to do that to simplify my procedures création. 
       
      I am trying to use the way of sending Keys "^c" & "^v" i tryed also CTRLDOWN and c but no one of these is working. 
       
      First question :
      Why that's not working? 
      Is there anyother way i can work with ?
       
      I watched the help file for FileCopy but it s only moving Files and not copy them. 
       
      Maybe you can see somthing going wrong in my script but i guess it s not a syntax problem. 
      #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <ScreenCapture.au3> #include <MsgBoxConstants.au3> HotKeySet("{F2}", "Capture") HotKeySet("{F3}", "Windows") HotKeySet("{F4}", "Copy") Global $Numero = 0 Attendre () Capture() Func Capture() ; Capture full screen $Numero = $Numero+1 _ScreenCapture_Capture (@DesktopDir & "\ScreenCapture\Image"&$Numero&".jpg") ShellExecute( @DesktopDir &"\ScreenCapture\Image"&$Numero&".jpg") Sleep (500) Run("C:\WINDOWS\EXPLORER.EXE /Select, /n,/e," & @DesktopDir & "\ScreenCapture\Image"&$Numero&".jpg" ) WinWaitActive("ScreenCapture") Sleep(1500) Send("^c") ;~ Send ("{CTRLDOWN}") ;~ Sleep(10) ;~ Send ("C") ;~ Sleep(10) ;~ Send ("{CTRLUP}") EndFunc ;==>Example Func Windows () Global $Windows = WinGetTitle("[active]") MsgBox($MB_SYSTEMMODAL, "Windows", "Windows selected for copy is : "&@CRLF&$Windows) EndFunc Func Copy () WinActivate (""&$Windows) Sleep (100) Send("^v") ;~ Send ("{CTRLDOWN}") ;~ Sleep(10) ;~ Send ("V") ;~ Sleep(10) ;~ Send ("{CTRLUP}") EndFunc Func Attendre () While 1 Sleep (10) ;~ GUICreate ("Help",100,100) WEnd EndFunc  
    • Katie_Deely
      By Katie_Deely
      Hey
       
      I have a GUI with an edit-field and a button.
      First I write some text into the edit-field and select a part of it. After that I press the button, and the selection is edited.
      How would I do that, though? When the text is selected and I press the button, it's unselected before the button actually raises an event.