ð ïžã¯ãªããããŒãã®å®äœ
ã¯ãªããããŒãã®æ å ±ã¯ã©ãããããŠã©ãã«è¡ãã®ã
ã¯ãªããããŒãã®æ ŒçŽå Žæãšã¢ã¯ã»ã¹æ¹æ³ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããšã«ç°ãªããŸãã以äžã«ãWindowsãmacOSãLinuxããããã®å ·äœçãªæ ŒçŽå Žæãšã¢ã¯ã»ã¹æ¹æ³ã説æããŸãã
Windows
Windowsã§ã¯ãã¯ãªããããŒãã¯ã·ã¹ãã ã¡ã¢ãªå ã«æ ŒçŽãããWin32 APIãä»ããŠã¢ã¯ã»ã¹ã§ããŸããå ·äœçãªã³ãã³ããæé ã¯ä»¥äžã®éãã§ãã
ã¢ã¯ã»ã¹æ¹æ³
ã¯ãªããããŒãã®å 容ã確èªãã:
`clip`ã³ãã³ãã䜿ã£ãŠã¯ãªããããŒãã«ããã¹ããéãããšãã§ããŸãããèªã¿åãããã®æšæºçãªã³ãã³ãã¯ãããŸããã
ã¯ãªããããŒãã«ããŒã¿ãéã:
macOS
macOSã§ã¯ãã¯ãªããããŒãã¯ã·ã¹ãã ã¡ã¢ãªå ã«æ ŒçŽããã`pbcopy`ãš`pbpaste`ã³ãã³ãã䜿çšããŠã¢ã¯ã»ã¹ã§ããŸãã
ã¢ã¯ã»ã¹æ¹æ³
ã¯ãªããããŒãã®å 容ã確èªãã:
ã¯ãªããããŒãã«ããŒã¿ãéã:
Linux
Linuxã§ã¯ãã¯ãªããããŒãã®ç®¡çã«ã¯`xclip`ã`xsel`ãšãã£ãããŒã«ã䜿çšããŸãããããã®ããŒã«ã¯X Window Systemã§ã®ã¯ãªããããŒãæäœãå¯èœã«ããŸãã
ã¢ã¯ã»ã¹æ¹æ³ (`xclip`ã䜿çš)
ã¯ãªããããŒãã®å 容ã確èªãã:
ã¯ãªããããŒãã«ããŒã¿ãéã:
ã¢ã¯ã»ã¹æ¹æ³ (`xsel`ã䜿çš)
ã¯ãªããããŒãã®å 容ã確èªãã:
ã¯ãªããããŒãã«ããŒã¿ãéã:
ãããã®ã³ãã³ãã䜿çšããŠãåãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã¯ãªããããŒãã«ã¢ã¯ã»ã¹ããããŒã¿ã®èªã¿æžããè¡ãããšãã§ããŸãã
ðOSXã¯pbcopy
man pageã«ãã³ãããããšæã£ãããADC Reference Libraryãšããã®ãèŠã€ãããªã
Ubuntuã¯xclipãšããã³ãã³ãããã
ã©ããã«ããŒãæ¬äœãããã«éããªãã®ã ããããã¯ã¡ã¢ãªãªã®ãããã¹ããªã®ãããŒã¿ããŒã¹ãªã®ã
Windowsã¯cygwinãšãã§ãã£ãŠãŸãã
Cygwinã§ã¯ãªããããŒããæäœããããã«ã¯ã以äžã®ããã±ãŒãžãšã³ãã³ãã䜿çšããããšãã§ããŸãã
ããã±ãŒãž
xclipãŸãã¯xselã®ã©ã¡ãããã€ã³ã¹ããŒã«ããå¿ èŠããããŸãããããã®ããŒã«ã¯X Window Systemãå©çšããŠã¯ãªããããŒãæäœãè¡ããŸãã
ã€ã³ã¹ããŒã«æ¹æ³
Cygwinã®ã»ããã¢ããããŒã«ã䜿çšããŠã以äžã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
xclip ããã±ãŒãž
xsel ããã±ãŒãž
ãã©ãŠã¶ãã¯ãªããããŒããå¶åŸ¡ããæ©èœãæäŸããŠããŸãããããã¯éåžžããŠãŒã¶ãŒã®èš±å¯ãå¿ èŠã§ããJavaScriptã䜿çšããŠãã©ãŠã¶ã®ã¯ãªããããŒãã«ã¢ã¯ã»ã¹ããæ¹æ³ã玹ä»ããŸãã
JavaScriptã«ããã¯ãªããããŒãã®å¶åŸ¡
ã¯ãªããããŒãã«ããŒã¿ãã³ããŒãã
以äžã®ã³ãŒãã¯ããã¿ã³ãã¯ãªãã¯ãããšããã¹ããã¯ãªããããŒãã«ã³ããŒããäŸã§ãã
<!DOCTYPE html>
<html>
<head>
<title>Clipboard Example</title>
</head>
<body>
<input type="text" value="Hello, World!" id="myInput">
<button onclick="copyToClipboard()">Copy Text</button>
<script>
function copyToClipboard() {
var copyText = document.getElementById("myInput");
copyText.select();
document.execCommand("copy");
alert("Copied the text: " + copyText.value);
}
</script>
</body>
</html>
ã¯ãªããããŒãããããŒã¿ãèªã¿åã
以äžã®ã³ãŒãã¯ãã¯ãªããããŒãããããã¹ããèªã¿åã£ãŠè¡šç€ºããäŸã§ãããã ããã¯ãªããããŒãã®èªã¿åãã«ã¯ãŠãŒã¶ãŒã®èš±å¯ãå¿ èŠã§ãã
<!DOCTYPE html>
<html>
<head>
<title>Clipboard Read Example</title>
</head>
<body>
<button onclick="readFromClipboard()">Read Text</button>
<p id="output"></p>
<script>
async function readFromClipboard() {
try {
const text = await navigator.clipboard.readText();
document.getElementById("output").innerText = text;
} catch (err) {
console.error('Failed to read clipboard contents: ', err);
}
}
</script>
</body>
</html>
泚æç¹
èš±å¯ã®å¿ èŠæ§: ã¯ãªããããŒãã®èªã¿åãããã³æžã蟌ã¿ã¯ããã©ãŠã¶ã®ã»ãã¥ãªãã£ããªã·ãŒã«ããå¶éãããŠãããéåžžã¯ãŠãŒã¶ãŒã®èš±å¯ãå¿ èŠã§ãã
HTTPSã®å¿ èŠæ§: ã¯ãªããããŒãAPIã䜿çšããã«ã¯ãããŒãžãHTTPSã§æäŸãããŠããå¿ èŠããããŸãã
ãã©ãŠã¶ã®ãµããŒã: ã¯ãªããããŒãAPIã¯ææ°ã®ãã©ãŠã¶ã§ãµããŒããããŠããŸãããå€ããã©ãŠã¶ã§ã¯ãµããŒããããŠããªãå ŽåããããŸãã
ãããã®ã¹ã¯ãªããã䜿çšããŠããã©ãŠã¶ã®ã¯ãªããããŒããå¶åŸ¡ããããšãã§ããŸãã
Arduinoã§ã¯ãªããããŒãã®ãããªæ©èœãå®è£ ããå Žåãéåžžã®ã¯ãªããããŒãæäœã¯PCåŽã§è¡ããããUSB HID (Human Interface Device) ã䜿ã£ãŠArduinoãããŒããŒããšããŠåäœãããããã¹ãã®ã³ããŒã貌ãä»ããè¡ãããšãã§ããŸãã以äžã«ãåºæ¬çãªå®è£ æ¹æ³ã®äŸã瀺ããŸããããã¯ãArduino LeonardoãArduino Pro Microã®ãããªUSB HIDããµããŒãããããŒãã§å®è¡ã§ããŸãã
å¿ èŠãªã©ã€ãã©ãª
Arduinoã®æšæºã©ã€ãã©ãªã§ãããKeyboardãã©ã€ãã©ãªã䜿çšããŸãããã®ã©ã€ãã©ãªã¯USB HIDã䜿ã£ãããŒããŒããšãã¥ã¬ãŒã·ã§ã³ãæäŸããŸãã
åºæ¬çãªã³ãŒãäŸ
以äžã®äŸã§ã¯ãArduinoãPCã«æ¥ç¶ãããåŸãäžå®ã®ééã§"Hello, World!"ãšããããã¹ããã¯ãªããããŒãã«ã³ããŒããŠè²Œãä»ããŸãã
#include <Keyboard.h>
void setup() {
// ArduinoãPCã«æ¥ç¶ãããŠããå°ãåŸ
ã€
delay(5000);
// ããŒããŒãã®åæå
Keyboard.begin();
}
void loop() {
// ã³ããŒããããã¹ã
String textToCopy = "Hello, World!";
// ããã¹ãã®å
¥å
Keyboard.print(textToCopy);
// å
šéžæ (Ctrl + A)
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('a');
delay(100);
Keyboard.release('a');
Keyboard.release(KEY_LEFT_CTRL);
// ã³ã㌠(Ctrl + C)
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('c');
delay(100);
Keyboard.release('c');
Keyboard.release(KEY_LEFT_CTRL);
// 貌ãä»ã (Ctrl + V)
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('v');
delay(100);
Keyboard.release('v');
Keyboard.release(KEY_LEFT_CTRL);
// äžå®æéåŸ
ã€
delay(5000);
}
説æ
åæå: `Keyboard.begin()`ã§ããŒããŒãæ©èœãåæåããŸãã
ããã¹ãã®å ¥å: `Keyboard.print(textToCopy)`ã§æå®ããããã¹ããå ¥åããŸãã
å šéžæ: `Keyboard.press(KEY_LEFT_CTRL)`ãš`Keyboard.press('a')`ã§Ctrl + AãæŒãããã¹ãŠã®ããã¹ããéžæããŸãã
ã³ããŒ: `Keyboard.press(KEY_LEFT_CTRL)`ãš`Keyboard.press('c')`ã§Ctrl + CãæŒããŠéžæããããã¹ããã¯ãªããããŒãã«ã³ããŒããŸãã
貌ãä»ã: `Keyboard.press(KEY_LEFT_CTRL)`ãš`Keyboard.press('v')`ã§Ctrl + VãæŒããŠã¯ãªããããŒãã®å 容ã貌ãä»ããŸãã
ãã®ã³ãŒãã¯éåžžã«åºæ¬çãªãã®ã§ãå®éã®çšéã«åãããŠæ¹è¯ããå¿ èŠããããŸããäŸãã°ããŠãŒã¶ãŒå ¥åã«åå¿ããŠããã¹ããã¯ãªããããŒãã«ã³ããŒããå Žåã¯ãè¿œå ã®ãã¿ã³ãã»ã³ãµã®å ¥åãåŠçããå¿ èŠããããŸãã
ãé¡ãèŽããŸã