CLIPBOARD$: Difference between revisions
Jump to navigation
Jump to search
Code by Ted Weissgerber
Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link
m (Removed protection from "CLIPBOARD$") |
No edit summary |
||
Line 16: | Line 16: | ||
''Example 1:'' Passing a string value between two running programs no matter where they are located. | ''Example 1:'' Passing a string value between two running programs no matter where they are located. | ||
: ''Program1:'' | : ''Program1:'' | ||
{{CodeStart}} | {{CodeStart}} | ||
{{Cl|PRINT}} "Start Program2 to read your text entries! Empty entry quits!" | {{Cl|PRINT}} "Start Program2 to read your text entries! Empty entry quits!" | ||
{{Cl|_CLIPBOARD$ (statement)|_CLIPBOARD$}} = "Entry program started!" 'set clipboard initially | {{Cl|_CLIPBOARD$ (statement)|_CLIPBOARD$}} = "Entry program started!" 'set clipboard initially | ||
Line 26: | Line 26: | ||
{{Cl|LOOP}} | {{Cl|LOOP}} | ||
{{Cl|SYSTEM}} | {{Cl|SYSTEM}} | ||
{{CodeEnd}} | {{CodeEnd}} | ||
:''Program2:'' | :''Program2:'' | ||
Line 34: | Line 34: | ||
DO: {{Cl|_LIMIT}} 100 | DO: {{Cl|_LIMIT}} 100 | ||
text$ = {{Cl|_CLIPBOARD$}} 'function returns clipboard contents | text$ = {{Cl|_CLIPBOARD$}} 'function returns clipboard contents | ||
{{Cl|IF...THEN|IF}} {{Cl|LEN}}(text$) {{Cl|THEN}} | {{Cl|IF...THEN|IF}} {{Cl|LEN}}(text$) {{Cl|THEN}} | ||
{{Cl|PRINT}} text$ | {{Cl|PRINT}} text$ | ||
{{Cl|_CLIPBOARD$ (statement)|_CLIPBOARD$}} = "" 'clear clipboard after a read | {{Cl|_CLIPBOARD$ (statement)|_CLIPBOARD$}} = "" 'clear clipboard after a read | ||
Line 40: | Line 40: | ||
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}(27) | {{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}(27) | ||
{{Cl|END}} | {{Cl|END}} | ||
{{CodeEnd}} | {{CodeEnd}} | ||
:''Explanation:'' Compile and run both programs at once to see the interaction. You could also run them on different paths. | :''Explanation:'' Compile and run both programs at once to see the interaction. You could also run them on different paths. | ||
Line 46: | Line 46: | ||
''Example 2: A minimized program that pops up when Ctrl + Shift is entered anytime in '''Windows''' and adds clipboard text to be Pasted: | ''Example 2: A minimized program that pops up when Ctrl + Shift is entered anytime in '''Windows''' and adds clipboard text to be Pasted: | ||
{{CodeStart}} | {{CodeStart}} | ||
'"ClippyBoard" program uses GetKeyState Win API to monitor a specific key combination. | '"ClippyBoard" program uses GetKeyState Win API to monitor a specific key combination. | ||
'This demo will maximize the window and focus on program when Shift+A is pressed. | 'This demo will maximize the window and focus on program when Shift+A is pressed. | ||
Line 131: | Line 131: | ||
{{Cl|BEEP}} | {{Cl|BEEP}} | ||
{{Cl|_DELAY}} 2 | {{Cl|_DELAY}} 2 | ||
{{Cl|END SUB}} | {{Cl|END SUB}} | ||
{{CodeEnd}}{{small|Code by Ted Weissgerber}} | {{CodeEnd}}{{small|Code by Ted Weissgerber}} | ||
: ''Explanation:'' The program will run minimized until Ctrl + Shift is entered and will pop up to ask for a letter choice that contains the text you want in the clipboard. More letter choices can be added. Text can be pasted into a web page or entry box and the program will minimize until it is needed later. The program uses very little resources! | : ''Explanation:'' The program will run minimized until Ctrl + Shift is entered and will pop up to ask for a letter choice that contains the text you want in the clipboard. More letter choices can be added. Text can be pasted into a web page or entry box and the program will minimize until it is needed later. The program uses very little resources! |
Revision as of 01:14, 23 January 2023
The _CLIPBOARD$ function returns the current Operating System's clipboard contents as a STRING.
Syntax
- result$ = _CLIPBOARD$
Description
- Text returned can contain the entire contents of a copied file or web page or text from a previous _CLIPBOARD$ statement.
- The string returned can also contain formatting like CRLF (CHR$(13) + CHR$(10)) end of line characters.
- The clipboard can be used to copy, paste and communicate between running programs.
Examples
Example 1: Passing a string value between two running programs no matter where they are located.
- Program1:
PRINT "Start Program2 to read your text entries! Empty entry quits!" _CLIPBOARD$ = "Entry program started!" 'set clipboard initially DO LINE INPUT "Enter some text to send to other program: ", text$ IF text$ = "" THEN EXIT DO _CLIPBOARD$ = text$ LOOP SYSTEM |
- Program2:
PRINT "Enter text in Program1 and this program will read it. Esc key quits!" DO: _LIMIT 100 text$ = _CLIPBOARD$ 'function returns clipboard contents IF LEN(text$) THEN PRINT text$ _CLIPBOARD$ = "" 'clear clipboard after a read END IF LOOP UNTIL INKEY$ = CHR$(27) END |
- Explanation: Compile and run both programs at once to see the interaction. You could also run them on different paths.
Example 2: A minimized program that pops up when Ctrl + Shift is entered anytime in Windows and adds clipboard text to be Pasted:
'"ClippyBoard" program uses GetKeyState Win API to monitor a specific key combination. 'This demo will maximize the window and focus on program when Shift+A is pressed. DECLARE DYNAMIC LIBRARY "user32" FUNCTION FindWindowA%& (BYVAL ClassName AS _OFFSET, WindowName$) 'find process handle by title FUNCTION GetKeyState% (BYVAL nVirtKey AS LONG) 'Windows virtual key presses FUNCTION ShowWindow& (BYVAL hwnd AS _OFFSET, BYVAL nCmdShow AS LONG) 'maximize process FUNCTION GetForegroundWindow%& 'find currently focused process handle FUNCTION SetForegroundWindow& (BYVAL hwnd AS _OFFSET) 'set foreground window process(focus) END DECLARE title$ = "Clippy Clipboard (Ctrl+Shift)" 'title of program window _TITLE title$ 'set program title hwnd%& = FindWindowA(0, title$ + CHR$(0)) 'find this program's process handle SCREEN 13 _SCREENMOVE _MIDDLE COLOR 10: PRINT PRINT " Press Ctrl+Shift to see clipboard menu." _DELAY 4 x& = ShowWindow&(hwnd%&, 2) 'minimize DO: _LIMIT 30 'save CPU usage while waiting for key press IF GetKeyState(16) < 0 AND GetKeyState(17) < 0 THEN '<==== Shift+A FGwin%& = GetForegroundWindow%& 'get current process in focus y& = ShowWindow&(hwnd%&, 1) 'maximize minimized program IF FGwin%& <> hwnd%& THEN z& = SetForegroundWindow&(hwnd%&) 'set focus when necessary _DELAY 1 GetKey x& = ShowWindow&(hwnd%&, 2) 'minimize after letter key entry COLOR 10: PRINT PRINT " Press Ctrl+Shift to see clipboard menu." END IF LOOP SUB GetKey CLS COLOR 12: PRINT: PRINT _CLIPBOARD$ DO: LOOP UNTIL INKEY$ = "" _DELAY 1 CLS COLOR 11: PRINT "Select a letter clipboard option:" PRINT PRINT "A = Address" PRINT "C = Cell phone" PRINT "E = Email" PRINT "F = First Name" PRINT "H = Home phone" PRINT "L = Last Name" PRINT "N = Name" PRINT "M = MAC address" PRINT "P = Password" PRINT "W = Work name" PRINT "X = QUIT!" PRINT "Z = Zip code" COLOR 14: PRINT PRINT "Another letter will skip or X = EXIT!" K$ = UCASE$(INPUT$(1)) SELECT CASE K$ 'The following text should be your personal user info: CASE "A": _CLIPBOARD$ = "my address" CASE "C": _CLIPBOARD$ = "cell number" CASE "E": _CLIPBOARD$ = "myemail" CASE "F": _CLIPBOARD$ = "formal name" CASE "H": _CLIPBOARD$ = "home number" CASE "L": _CLIPBOARD$ = "lastname" CASE "M": _CLIPBOARD$ = "modempassword" CASE "N": _CLIPBOARD$ = "name" CASE "P": _CLIPBOARD$ = "password" CASE "X": END CASE "Z": _CLIPBOARD$ = "zipcode" END SELECT CLS PRINT PRINT COLOR 14: PRINT _CLIPBOARD$ BEEP _DELAY 2 END SUB |
- Explanation: The program will run minimized until Ctrl + Shift is entered and will pop up to ask for a letter choice that contains the text you want in the clipboard. More letter choices can be added. Text can be pasted into a web page or entry box and the program will minimize until it is needed later. The program uses very little resources!
See also