Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「ahk」を含む日記RSS

はてなキーワード:ahkとは

次の25件>

2025-06-13

我が名はサイボーグdorawii

パーマリンク署名対象にするより堅牢自動化を作れた。

一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。

改めてスクリプト配布しちゃる

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==      // @namePGP署名検出と別タブ自動編集      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @descriptionPGP署名がない投稿自動編集ページへ誘導      // @matchhttps://anond.hatelabo.jp/*      // @grantGM_setValue      // @grantGM_getValue      // @grantGM.openInTab      // ==/UserScript==      (function () {        'use strict';constbody = document.getElementById('entry-page');        if (!body) return;consttitleText = document.title;        if (!titleText.includes('dorawii')) return;constpgpRegex = /BEGIN.*PGP(?: SIGNEDMESSAGE| SIGNATURE)?/;const preElements = document.querySelectorAll('div.body pre');        let hasPgpSignature =false;        for (const pre of preElements) {          if (pgpRegex.test(pre.textContent)) {            hasPgpSignature =true;            break;          }        }        if (hasPgpSignature) return;const editLink = document.querySelector('a.edit');const childTab =GM.openInTab(editLink.href, {active:false, insert:true,setParent:true });      })();
親タブから開かれる編集ページの子タブのjsコード
 // ==UserScript==      // @name編集ページ処理と自動送信・閉じ      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @description編集ページで署名処理と送信、タブ自動閉じ      // @matchhttps://anond.hatelabo.jp/dorawii_31/edit?id=*      // @grantGM_getValue      // @grantGM_xmlhttpRequest      // @grantGM_setClipboard      // @grantGM_notification      // @connectlocalhost      // ==/UserScript==      (async function () {        'use strict';const shouldRun = awaitGM_getValue('open-tab-for-edit', '0');consttextareaId = 'text-body';consttextarea = document.getElementById(textareaId);        if (!textarea) return;const content =textarea.value;constpgpSignatureRegex = /-----BEGINPGP SIGNEDMESSAGE-----[\s\S]+?-----BEGINPGP SIGNATURE-----[\s\S]+?-----ENDPGP SIGNATURE-----/;        if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');          return;        }consthttpRequest = (url, data) => {          return newPromise((resolve,reject) => {GM_xmlhttpRequest({              method: 'POST',url:url,              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },              data: `value=${encodeURIComponent(data)}`,onload: function (response) {                resolve(response.responseText);              },onerror: function (error) {reject(error);              }            });          });        };        //textarea の値を取得        // 1.現在のページのURLからURLオブジェクト作成const currentUrl = newURL(window.location.href);        // 2.ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得constorigin = currentUrl.origin;        // 3. 'id'パラメータの値 (例: "20250610184705") を取得constidValue = currentUrl.searchParams.get('id');        // 4.ベース部分とIDを結合して、目的URL文字列を生成        //idValueが取得できた場合のみ実行する        let newUrl = null;        if (idValue) {          newUrl = `${origin}/${idValue}`;        }        // 5. 生成されたURL変数に代入し、コンソールに出力して確認console.log(newUrl);constvalueToSend = newUrl;try {const signatureText = awaithttpRequest('http://localhost:12345/run-batch',valueToSend);console.log('バッチ応答:', signatureText);          if (!signatureText.includes('BEGINPGP SIGNEDMESSAGE')) {            alert('PGP署名クリップボードに見つかりませんでした。');            return;          }const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');const form = document.forms.edit;const newForm = form.cloneNode(true);          form.replaceWith(newForm);          newForm.addEventListener('submit', async (e) => {            e.preventDefault(); //HTML標準のsubmitをキャンセルconstbodyText =textarea?.value || '';            //reCAPTCHAトークンの取得constrecaptchaToken = await newPromise((resolve) => {              grecaptcha.enterprise.ready(() => {                grecaptcha.enterprise.execute('hoge', {action: 'EDIT' })                  .then(resolve);              });            });            // POSTするデータの構築const formData = new FormData(newForm);            formData.set('body',bodyText);            formData.set('recaptcha_token',recaptchaToken);            formData.set('edit', '1');try {constresponse = await fetch(newForm.action, {                method: 'POST',body: formData,                credentials: 'same-origin'              });              if (response.ok) {console.log('送信成功');                window.close();              } else {console.error('送信失敗',response.status);              }            }catch (err) {console.error('送信中にエラーが発生', err);            }          });          //プログラム的に送信トリガー          newForm.dispatchEvent(new Event('submit', { bubbles:true }));        }catch (e) {console.error('バッチ呼び出し失敗:', e);        }      })();
node.jsで動かすローカルサーバーコード
consthttp =require('http');const { exec } =require('child_process');const querystring =require('querystring');const server =http.createServer((req, res) => {  if (req.method === 'GET' && req.url === '/ping') {    res.writeHead(200);    res.end('pong');  } else if (req.method === 'POST' && req.url === '/run-batch') {    letbody = '';    req.on('data', chunk => {body += chunk.toString();    });    req.on('end', () => {constparsed = querystring.parse(body);constvalue =parsed.value || 'default';      // 値を引数としてバッチに渡す      exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => {        if (err) {          res.writeHead(500);          res.end('Error executing batch: ' + stderr);        } else {          res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });          res.end(stdout.trim());        }      });    });  } else {    res.writeHead(404);    res.end('Not found');  }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
@echo offsetlocal enabledelayedexpansion::署名するファイルset "infile=%~1"set outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%":signloop::AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名作成echo %infile% | gpg --yes --clearsign --output "%outfile%"::署名成功していればループを抜けるif exist "%outfile%" (goto postprocess) else (    timeout /t 1> nulgoto signloop):postprocesspowershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Write-Output ($header + \"`r`n\" + $body + $footer)"powershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content 'signed.asc' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"endlocalexit /b
AutoHotkey(以前と同じ)
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInputpasswordSleep 100SendInput {Enter}ExitApp

動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250613185036 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtlc7UqRuggNJ/UTa5xTIcKp622+7jJQQg==Lgkl-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 18:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-09

dorawii

ようやく(ほぼ)すべてが自動化された。

あとはローカルサーバーの起動をスタートアップに設定する(方法AIに聞いて指示に従う)だけの消化試合

ここにほとんどAI頼りのコードを公開しておく。

事前にインストールしておくもの

autohotkey

nodejs

ユーザースクリプトを実行できる拡張機能

パスとかの注意

署名要求してくるパスワードを自動入力するahkファイルドキュメントAutoHotkey配下に置いた。

バッチファイル(make.sign.bat)はデスクトップに置いた。

以下コード

autopass.ahk
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
run-bacth-server.js
//run-batch-server.jsconsthttp =require('http');const { exec } =require('child_process');const server =http.createServer((req, res) => {  if (req.url === '/ping') {    res.writeHead(200);    res.end('pong');  } else if (req.url === '/run-batch') {    exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => {      res.writeHead(200);      res.end(err ? 'Error' : 'OK');    })    ;  } else {    res.writeHead(404);    res.end('Not found');  }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
makesign.bat
@echo offsetlocal enabledelayedexpansion::ミリ秒単位UTC時刻を取得for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%a::署名するファイルset infile=%TEMP%\pgp_input.txtset outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%"::タイムスタンプを原文として保存echo %timestamp%> "%infile%":signloop::AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名作成gpg --yes --clearsign --output "%outfile%" "%infile%"::署名成功していればループを抜けるif exist "%outfile%" (echo [INFO]署名成功goto postprocess) else (echo [WARN]署名失敗、再試行します…    timeout /t 1> nulgotosignloop):postprocess::PowerShellで余計な改行なしに |< をつけてクリップボードコピーpowershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"echo Done.signed.asc created and clipboard updated (no extra blankline).endlocalexit /b
tempermonkeyとかに登録するユーザースクリプト
// ==UserScript==// @namePGP署名自動付加スクリプト(GM_xmlhttpRequest版)// @namespacehttp://tampermonkey.net/// @version      1.0// @description投稿前にPGP署名を付けてから送信(fetch未使用)// @matchhttps://anond.hatelabo.jp/dorawii_31/edit*// @grant        GM_xmlhttpRequest// @grant        GM_setClipboard// @grant        GM_notification// / @connectlocalhost// ==/UserScript==(function () {  'use strict';const submitId = 'submit-button';consttextareaId = 'text-body';const localServer = 'http://localhost:12345/run-batch';constpgpSignatureRegex = /-----BEGINPGPSIGNEDMESSAGE-----[\s\S]+?-----BEGINPGPSIGNATURE-----[\s\S]+?-----ENDPGPSIGNATURE-----/;consthttpRequest = (url) => {    return newPromise((resolve,reject) => {      GM_xmlhttpRequest({        method: 'GET',url:url,        onload: function (response) {          resolve(response.responseText);        },        onerror: function (error) {reject(error);        }      });    });  };const interceptClick = () => {constbtn = document.getElementById(submitId);    if (!btn ||btn.dataset.pgpIntercepted === 'true') return;btn.dataset.pgpIntercepted = 'true';btn.addEventListener('click', async function (e) {consttextarea = document.getElementById(textareaId);      if (!textarea) return;const content =textarea.value;      if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');        return;      }      e.preventDefault();      e.stopImmediatePropagation();console.log('[PGPスクリプト]署名が見つからないため処理を停止し、署名を取得します');try {        awaithttpRequest(localServer); //バッチ実行constsignatureText = await navigator.clipboard.readText();        if (!signatureText.includes('BEGINPGPSIGNEDMESSAGE')) {          alert('PGP署名クリップボードに見つかりませんでした。');          return;        }const newText = content.replace(/\s*$/, '') + '\n' +signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');btn.click(); //イベント再発火      }catch (err) {        alert('PGP署名の取得または貼り付けに失敗しました。\n' + err);      }    },true);  };  window.addEventListener('load', () => {setTimeout(interceptClick, 1000);  });})();

プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数オブジェクトプロパティresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。

AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。

-----BEGINPGPSIGNEDMESSAGE-----Hash: SHA51220250609111559680 -----BEGINPGPSIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY==qiOE-----ENDPGPSIGNATURE-----

Permalink |記事への反応(2) | 20:16

このエントリーをはてなブックマークに追加ツイートシェア

2021-05-05

濁点喘ぎや♡喘ぎの゛や♡を楽に書く方法

動機

濁点喘ぎや♡喘ぎのあるエロ小説が大好きで、もっと読みたいから。

自分エロ小説を書けなかったので、書ける人にもっとたくさん書いてほしいから。

あと、自分AutoHotkeyを入れてからだいぶたってしまったので、導入がおぼろげなのは申し訳ない。

そして肝心の、一番お世話になったサイトを忘れてしまった。最悪だ。見つけたら絶対貼る。

見つけた。これだ。

書き終わってから見つけた。

https://clrmemory.com/pc-mobile/windows/autohotkey-any-character/

前提

技術系に詳しくないのでカンベン。

スマホエロ小説書いてる人は申し訳ない。

参考

http://ahkwiki.net/Top

AutoHotkeywiki。困ったらここを見る。

大まかな手順

  1. AutoHotkeyを入れる
  2. スクリプト作成編集する
  3. スクリプトを実行する
  4. エロ小説を書く
  5. スクリプトを停止する)
AutoHotkeyを入れる

https://autohotkey.com/download/

公式サイトからダウンロードする。

ダウンロードしたインストーラーを実行する。

(ここがおぼろげなのがひたすらに申し訳ない)

スクリプト作成編集する

どこかフォルダを作る。後々、他に必要ファイルも入れていく。

自分ドキュメントフォルダの中に「小説フォルダ」を作成した。

新しく作ったそのフォルダの中で、右クリック新規作成→「AutoHotkeyScript」を選択

自分は「小説用.ahk」にした。

作成したahkファイル右クリックプログラムから開く→エディタで開く(最初から入ってる「メモ帳」でOK

開いたらなんか初期状態で書いてあるけど気にしなくてよし。ってか自分はよくわからなかったから削除した。はいまっさら

とりあえず以下の内容にして保存。(最初からあった文章は消してしまったので、まんまこの内容)

#IncludeIME.ahk;;;Pgupで♡Pgup::ime :=IME_Get()IME_Set(0)  Send, ♡IME_Set(ime)return;;;PgDnで゛PgDn::ime :=IME_Get()IME_Set(0)  Send, ゛IME_Set(ime)return

保存した?よし。閉じていいよ。

おっとそうだ、さっきのフォルダに入れなきゃいけないのがあった。

IME.ahk」のファイルが要る。

http://ahkwiki.net/Trouble

の「AutoHotkey_L固有の不具合」にあるが、詳しくわからないのでとりあえず、

https://w.atwiki.jp/eamat/pages/17.html

からダウンロードzipなので展開する。

中にあるフォルダANSIかUTF8)の中のIME.ahkコピーして、さっき新規作成したフォルダ自分なら「小説用」)にペースト

どっちのフォルダのを入れたかは忘れた…。

持ってこれた?おっしゃ

そしたらIME.ahk編集する。

編集内容はお世話になったサイトに書いてあったんだけど、忘れたのでもう全部ここに貼ってやろう。

と思ったけど多かったので、消す部分だけ貼る。以下のやつを消さないと、実行したときに「ンンンンンン」ってなる。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;動作確認用 内部ルーチン (マウスカーソル位置ウィンドウIME状態を見る);  単体起動時のテスト用なので削除しても問題なし_ImeAutoExecuteSample:    Hotkey,#1,_ImeGetTest    Hotkey,#2,_ImeSetTest    Hotkey,#3,_ImeIsConvertingTest    Hotkey,+ESC,_ImeTestExt    SetTimer,_ImeInfoTimer,ONreturn;---IME状態表示タイマ ---_ImeInfoTimer:    Tooltip,% "IME_GET: "     .IME_GET(_mhwnd())             . "`n"          .  "IME_GetConvMode: " .IME_GetConvMode(_mhwnd())     . "`n"          .  "IME_GetSentenceMode: " .IME_GetSentenceMode(_mhwnd()) . "`n"          .  "IME_GetConverting: "     .IME_GetConverting(_mhwnd())return;---IMEGetTest [Win]+[1] ---_ImeGetTest:    MsgBox,% "IME_GET: "     .IME_GET(_mhwnd())             . "`n"          .  "IME_GetConvMode: " .IME_GetConvMode(_mhwnd())     . "`n"          .  "IME_GetSentenceMode: " .IME_GetSentenceMode(_mhwnd()) . "`n"return;---IMEGetTest [Win]+[2] ---_ImeSetTest:    MsgBox,% "IME_SET: "     .IME_SET(1,_mhwnd())             . "`n"          .  "IME_SetConvMode: " .IME_SetConvMode(0x08,_mhwnd())  . "`n"          .  "IME_SetSentenceMode: " .IME_SetSentenceMode(1,_mhwnd()) . "`n"return_mhwnd(){;backgroundtestMouseGetPos,x,,hwndreturn "ahk_id " . hwnd};------------------------------------------------------------------;IME窓のクラス名を調べるテストルーチン;入力or変換状態Ime窓にマウスカーソル持ってって [Win]+[3]押す;   Clipboardに Class名がコピーされる。入力窓/候補窓 それぞれ調べる。;   調べたクラス名は正規表現になおして;IME_GetConverting("A","入力クラス","候補クラス");   とかやって使う。(もしくはIME_GetConverting()の中に直接追加する);;   あああ    ←入力窓の上にマウスカーソル持ってって [Win]+[3]押す;    ̄ ̄ ̄       Clipboardに Class名がコピーされる。;                ※MS Office系のシームレス入力状態では取れないっぽい;                   DetectHiddenWindows,ONでもダメシームレスOFFにしないと無理;;   愛;  |愛   | ←候補窓の上にマウスカーソル持ってって [Win]+[3]押す;  |亜依  |    Clipboardに Class名がコピーされる。;  |あい  |;  |藍   |;  | :  |;   ̄ ̄ ̄ ̄;------------------------------------------------------------------_ImeIsConvertingTest:    _ImeTestClassCheck()return_ImeTestClassCheck()  {    MouseGetPos,,,hwndWinGetClass,Imeclass,ahk_id %hwnd%    Clipboard :=Imeclass    ;IME_GetConverting()動作チェック &IME入力窓/候補 Class確認    MsgBox,%Imeclass "`n"IME_GetConverting()};--- 常駐テスト終了 [Shift]+[ESC] ---_ImeTestExt:ExitApp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

消して保存した?おし

ファイル作成編集はこれでOK

スクリプトを実行する

小説用.ahk」(自分作成したほうのファイル)を右クリックで「Runscript」で実行できる。

が、ショートカット作成できる。作成して別なところに置いたほうが楽な人はそうするとOK

コンパイルしないといけない……かと思いきや、しなくても実行できたから、コンパイルは要らないか。まぁいいか

もし「要るよ」って人がいたら、作ったほうのファイル右クリックして「Compile なんちゃら」でコンパイルできるので、どうぞ。

しなくても大丈夫なのであまり気にしなくてよさそう。

エロ小説を書く

使い方。まずは実行開始から

作成したファイルダブルクリック

ショートカットなら、ショートカットダブルクリック

コンパイルしたなら、コンパイルしたやつをダブルクリック

開始時になんかちっちゃいウィンドウが出てくるが、気にせず「OK」を押していい。(出ないかも)

さっきのスクリプトの中身は

が打てるようになる。

注意点としては、

他のキー割り当て一覧

http://ahkwiki.net/KeyList

書いてみよう。

「あ゛あ゛あ゛♡♡♡♡」

どうしても「一度変換を確定しないといけない」というのがちょっとひっかかるが、それでもわざわざ濁点を変換して入れたり、ダブルクォートを代わりに使うよりはいい。

喘ぎ声はひらがなカタカナが多いから変換を確定せずに打てるのが一番いいが、コツをつかめばきっと上手く活用できるはず。活用してください。

スクリプトを停止する

意外と忘れがちだが、大事

これをしないと、家族との共用パソコンを使っているならば、

「なんでこのキー押すと濁点とハートが出るの?」

という家族からの痛い追及を被ることになる。

画面右下の上矢印を押すと、いろいろ出てくる。

その中に、緑背景に白文字のHのアイコンがある。

これを右クリックExitで停止。

もう誰もこのエロ小説スクリプトが実行されていたなんて気づかない。

終わり

もっと便利にしたいときは、AutoHotkeywikiが参考になるはず。

http://ahkwiki.net/Top

他にも、ホットキーとかショートカットキーとかでいろいろある。

でも「特定文字入力する」はAutoHotkeyでないとできなさそうだった(自分が見つけられた範囲では)

世の中に濁点喘ぎと♡喘ぎの小説が増えますように。

もっ゛とかい゛てぇ゛ぇ゛ぇ゛ぇ゛ぇ゛♡゛♡♡♡♡

み゛た゛い゛の゛お゛お゛お゛お゛お゛♡♡♡♡♡♡

Permalink |記事への反応(0) | 00:44

このエントリーをはてなブックマークに追加ツイートシェア

2020-09-20

SHK

なんでNHKはSHKに改称しないの?

大体、AHKに改称する前にそのチャンス逃してるし

https://anond.hatelabo.jp/20200920165342

Permalink |記事への反応(3) | 14:20

このエントリーをはてなブックマークに追加ツイートシェア

2020-03-14

anond:20200314222547

これぞAHKではなくNHK

Permalink |記事への反応(0) | 22:28

このエントリーをはてなブックマークに追加ツイートシェア

2019-07-27

anond:20190724165035

ほんとそれ。

現時点の状況ではどう考えてもAHKって名乗らないとおかしい。

Permalink |記事への反応(0) | 15:31

このエントリーをはてなブックマークに追加ツイートシェア

2019-04-20

anond:20190420010155

さすがAHK

また忖度したな

Permalink |記事への反応(0) | 01:15

このエントリーをはてなブックマークに追加ツイートシェア

2019-03-06

anond:20190306222248

AHKのことね

Permalink |記事への反応(1) | 22:23

このエントリーをはてなブックマークに追加ツイートシェア

2019-02-09

NHKっていつまでAHKじゃなくてNHKって名乗り続けるつもり?

さすがにそりゃないでしょ?

Permalink |記事への反応(1) | 16:57

このエントリーをはてなブックマークに追加ツイートシェア

2019-01-31

anond:20190131235258

NHK? AHKのことね💦

Permalink |記事への反応(0) | 23:54

このエントリーをはてなブックマークに追加ツイートシェア

2019-01-27

anond:20190127085214

映画じゃないけど昨日の夜AHKで、ゾンビが出たか人生考え直した件ってみちゃったよ💦

Permalink |記事への反応(0) | 08:57

このエントリーをはてなブックマークに追加ツイートシェア

2019-01-19

NHKってなんでAHKに改称しないの?

マジで意味わかんねえんだけど?

Permalink |記事への反応(1) | 15:26

このエントリーをはてなブックマークに追加ツイートシェア

2018-11-07

anond:20181107002636

なんでNHKってAHKに改称しないんだろうね?

おかしいよね?

Permalink |記事への反応(0) | 00:33

このエントリーをはてなブックマークに追加ツイートシェア

2018-10-31

なんでNHKってAHKに改称しないの?

まじでわかんないんだけど

Permalink |記事への反応(2) | 21:17

このエントリーをはてなブックマークに追加ツイートシェア

2018-10-13

anond:20181013220127

なんでNHKってAHKに改称しないの?

Permalink |記事への反応(0) | 22:02

このエントリーをはてなブックマークに追加ツイートシェア

2018-10-05

anond:20181005225403

NHKAHK改名すべき。

安倍様の放送協会なんだから

Permalink |記事への反応(0) | 23:11

このエントリーをはてなブックマークに追加ツイートシェア

2017-06-01

\ を打つときってキーボードの右上と右下どっち使ってる?

PC上級者の多いはてな民なら、パス区切り文字とか制御文字的な意味ときバックスラッシュの右下で、円マークって意味なら右上とか使い分けてるよね

私は全部右上だけど




おまけ

思いつきでahk 使って右上の円マークだとバックスラッシュじゃなくて本当に円マーク入力できるようにしてみた

\::Send, ¥

バックスラッシュは使っても円マークって要らないことに気づいた

Permalink |記事への反応(0) | 22:43

このエントリーをはてなブックマークに追加ツイートシェア

2017-04-24

http://anond.hatelabo.jp/20170423213123

a-zと0-9とその他記号系は普通に文字入力

Space/Enter/Backspace/Delete文字入力

Ctrl/Shift/Alt/Winは各種ショートカット

F1ヘルプ

F2名前変更。エクセルセル編集とかも

F3検索

F4 はAltと押してウィンドウ閉じる。単体は個人的には独自ショートカットに割り当ててるから使ったこと無い。

F5 はリロード

F6IMEひらがな

F7 はIMEカタカナ

F8IMEで半角カタカナ

F9 はIMEで全角アルファベット

F10 はIMEで半角アルファベット

F11 は全画面

F12 はブラウザ開発者ツール出す

ESCはいろいろなキャンセルっぽいときに使える。一番使うのはタスクマネージャにCtrl-Shift-ESC。ChromeだとShift-ESC

PrtScr はスクショ。Altと押すことが多め。

ScrollLock はエクセルスクロールのしかた変えるとき

PauseBreak はコマンドプロンプトの流れていくのを一時的に止めるとき

Insert は上書きモードにしたいとき。あと、ShiftやCtrlと組み合わせてカットコピーになるソフトがある

PgUp/PgDn はネットみてるときエディタで一気にスクロールしたいとき

Home/End もブラウザ最初最後に飛んだり、エディタで行もしくは全体の最初最後に飛ぶ時

Tabフォーカス切り替え。あとプログラムとか書くならインデント

CapsLock はShiftと押して大文字固定にしたり、単体で押してアルファベット入力だけどIME使いたいときの切り替えとか

半角全角はIMEの切り替え

NumLock はテンキー付きなら常時ONでいいんだけど、テンキー無しのキーボードテンキー配列入力したいときに押す

無変換はひらがなカタカナ・半角カタカナに切り替えるときに。F6/F7/F8でもいい。個人的にはAHKで修飾キーにもしてる

変換は入力確定したのをIMEで再編集するとき。稀にスペースキーバグって変換できないときにスペース代わりに押したこともある

右側Ctrl/Alt/Shiftはめったに使わないけど、片手で操作したいときVirtualBox特殊キーに使う(安いキーボードだとたまにない)

アプリケーションキー?は右クリック代わり。webページで右クリック禁止されてるときにこっち押したりする

ひらがなカタカナローマ字は使ったこと無い。

Fnキーキーが足りないキーボードについててWi-Fiや画面表示や外部接続の切り替えとかPCキーボード)ごとにいろいろできる。

余り使わないのはあっても、全く使わないはほとんどなかった。

Permalink |記事への反応(0) | 13:31

このエントリーをはてなブックマークに追加ツイートシェア

2017-03-03

http://anond.hatelabo.jp/20170303122424

git →ぎっと

ifttt →?

str →すとりんぐ

char →ちゃー

ieeeあいとりぷるいー

eth0 →いーさぜろ

ifcfg →あいえふこふぃぐ

ifconfig →あいえふこんふぃぐ

ptr →?

txt →てきすと

bat →ばっち

ahk →?

py →び

rb →るびーは使わない

win7 →うぃんなな

win10 →うぃんじゅう

asus →あすす

which →ふぃっち

Permalink |記事への反応(0) | 23:21

このエントリーをはてなブックマークに追加ツイートシェア

http://anond.hatelabo.jp/20170303122424

git → 「ギット」

ifttt → 使ったことがない

str → 「ストリング」「ストラ」

char → 「キャラ

ieee → 「アイイーイーイー」

eth0 → 「イーサゼロ

ifcfg → 「アイエフコンフィグ

ifconfig → 「アイエフコンフィグ

ptr → 「ポインタ

txt → 「テキスト

bat → 「バッチ

ahk → 使ったことがない

py → 「パイ

rb → 「ルビー

win7 → 「ウィンセブン

win10 → 「ウィンテン」

asus → 「エイスース

which → 「ウィッチ

基本的略称系は全部略す前で読んでるな。

Permalink |記事への反応(0) | 22:36

このエントリーをはてなブックマークに追加ツイートシェア

http://anond.hatelabo.jp/20170303122424

str → ストア

それだとstring を指すときにも store を連想しちゃわない?

Permalink |記事への反応(0) | 17:53

このエントリーをはてなブックマークに追加ツイートシェア

これらのIT用語をどう読むか教えてほしい

ちなみに俺はこう。

Permalink |記事への反応(4) | 12:24

このエントリーをはてなブックマークに追加ツイートシェア

2011-08-30

キーボードリマップ 2011_08_29_

AutoHotKey・KeySwap・Atok2005を使った

また、これは AutoHotkey.ahk (AutoHotkey設定ファイル) 自身でもある。

なお、Atokでのキーボードリマップは、以下の通り。

ATOKプロパティ  =>キーローマ字・色 タブ =>キーカスタマイズ 

ここから

────────────────────

; IMPORTANT INFO ABOUTGETTING STARTED: Lines that start with a

; semicolon, suchas thisone, are comments. They are not executed.

; Thisscripthas a special filename and path becauseit is automatically

; launched whenyou run the program directly. Also, any text file whose

;nameends in .ahk isassociated with the program, which means thatit

; can be launched simplybydouble-clickingit.You can haveas many .ahk

; filesasyou want, located in anyfolder.You can also runmore than

;oneahk file simultaneously and each willgetits own tray icon.

; SAMPLE HOTKEYS: Below aretwo sample hotkeys. The first isWin+Z andit

; launches aweb site in the default browser. The second is Control+Alt+N

; andit launches a newNotepadwindow (or activates an existingone). To

;tryout these hotkeys, runAutoHotkeyagain, which will load this file.

#z::Runwww.autohotkey.com

^!n::

IfWinExistUntitled -Notepad

WinActivate

else

RunNotepad

return

;Note: From nowon wheneveryou runAutoHotkey directly, thisscript

; will be loaded. So feel free to customizeit to suityour needs.

; Please read the QUICK-START TUTORIAL near thetop of the help file.

;It explains how to performcommon automation tasks suchas sending

; keystrokes and mouse clicks.It also explainsmore about hotkeys.

; ! → Alt

; ^ → Control

; + → Shift

;────AutoHotKey.ahk のキーボードリマップ 2011_08_29_

; 変換 = IME ON (日本語)  =>Atok機能で実現

; 無変換 = IME OFF (英語)  =>Atok機能で実現

;カタカナ = F7  =>KeySwapで実現

; CapsLock = F10  =>KeySwapで実現

; 右Alt = Home  =>KeySwapで実現

; 右Ctrl = End   =>KeySwapで実現

; その他はAutoHotKey機能で実現。

;vk1D::return ;無変換キー単体で動かないようにする

;RShift::^z ;右Shift で Ctrl+z

;SC07B & Space::send,{Blind}{Enter} ;無変換+Space で Enter

;SC07B & j::send,{Blind}{Home} ;無変換+j で Home

;SC07B & k::send,{Blind}{End} ;無変換+k で End

;SC07B & h::send,{Blind}^{Home} ;無変換+h で Ctr+Home

;SC07B & l::send,{Blind}^{End} ;無変換+l で Ctr+End

;SC07B & u::send,{Blind}{} ;無変換+u で

;SC07B & i::send,{Blind}{} ;無変換+i で

;SC07B & LButton::send,{Blind}{Home} ;無変換 + LButton でHome

;SC07B & RButton::send,{Blind}{End} ;無変換 + RButton でEnd  =>Ctrlと組み合わせ可。

;SC07B & y::send,{Blind}^{ } ;無変換+y で Ctr+

;SC07B & o::send,{Blind}^{ } ;無変換+o で Ctr+

;SC07B & w::send,{Blind}{Home} ;無変換+w で Home

;SC07B & r::send,{Blind}{End} ;無変換+r で End

;SC07B & e::send,{Blind}{Up} ;無変換+e で Up

;SC07B & d::send,{Blind}{Down} ;無変換+d で Down

;SC07B & f::send,{Blind}{Right} ;無変換+f で Right

;SC07B & s::send,{Blind}{Left} ;無変換+s で Left

1::+1 ;1 を Shift+1 に(記号にする)

2::+2 ;2 を Shift+2 に

3::+3 ;3 を Shift+3 に

4::+4 ;4 を Shift+4 に

5::+5 ;5 を Shift+5 に

6::+6 ;6 を Shift+6 に

7::+7 ;7 を Shift+7 に

8::+8 ;8 を Shift+8 に

9::+9 ;9 を Shift+9 に

0::+- ;0 を Shift+- に

\::+\ ;\ を Shift+\ に

;──────────────────── http://nanabit.net/softwares/autohotkey/

; Alt+F6 (例:2011_08_04_)

; Ctrl+F6 (例:03:48)

; Alt+Ctrl+F6 (例:2011_08_04_16:45)

!F6::

Send, %A_YYYY%_%A_MM%_%A_DD%_

return

^F6::

Send, %A_Hour%:%A_Min%

return

!^F6::

Send, %A_YYYY%_%A_MM%_%A_DD%_%A_Hour%:%A_Min%

return

Permalink |記事への反応(0) | 00:06

このエントリーをはてなブックマークに追加ツイートシェア

2011-07-04

AutoHotKey.ahk のキーボードリマップ 2011_07_02_

AutoHotKey.ahk のキーボードリマップ 2011_07_02_

; 半角・全角 = カタカナ   =>KeySwapで実現

; 変換  = 半角・全角   =>KeySwapで実現

; CapsLock = F7   =>KeySwapで実現

;カタカナ = F10   =>KeySwapで実現

vk1D::return ;無変換キー単体で動かないようにする

RShift::^z ;右Shift で Ctrl+z

SC07B & Space::send,{Blind}{Enter} ;無変換+Space で Enter

SC07B & h::send,{Blind}{Delete} ;無変換+h で BackSpace

SC07B & k::send,{Blind}{Delete} ;無変換+k で Delete

SC07B & u::send,{Blind}{Home} ;無変換+u で Home

SC07B & i::send,{Blind}{End} ;無変換+i で End

SC07B & w::send,{Blind}{Home} ;無変換+w で Home

SC07B & r::send,{Blind}{End} ;無変換+r で End

SC07B & e::send,{Blind}{Up} ;無変換+e で Up

SC07B & d::send,{Blind}{Down} ;無変換+d で Down

SC07B & f::send,{Blind}{Right} ;無変換+f で Right

SC07B & s::send,{Blind}{Left} ;無変換+s で Left

1::+1 ;1 を Shift+1 に(記号にする)

2::+2 ;2 を Shift+2 に

3::+3 ;3 を Shift+3 に

4::+4 ;4 を Shift+4 に

5::+5 ;5 を Shift+5 に

6::+6 ;6 を Shift+6 に

7::+7 ;7 を Shift+7 に

8::+8 ;8 を Shift+8 に

9::+9 ;9 を Shift+9 に

0::+- ;0 を Shift+- に

\::+\ ;\ を Shift+\ に

Permalink |記事への反応(0) | 18:13

このエントリーをはてなブックマークに追加ツイートシェア

2011-07-01

AutoHotKey.ahk のキーボードリマップ 2011_06_30_

;────AutoHotKey.ahk のキーボードリマップ 2011_06_30_

; 半角・全角 = カタカナ   =>KeySwapで実現

; CapsLock  = 半角・全角   =>KeySwapで実現

;カタカナ = F7   =>KeySwapで実現

; 右ALT = F10   =>KeySwapで実現

; ! → Alt

; ^ → Control

; + → Shift

vk1D::return ;無変換キー単体で動かないようにする

vk1C::^z ;変換 で Ctrl+z

SC07B & Space::send,{Blind}{Enter} ;無変換+Space で Enter

SC07B & j::send,{Blind}{BackSpace} ;無変換+j で BackSpace

SC07B & k::send,{Blind}{Delete} ;無変換+k で Delete

SC07B & u::send,{Blind}{Home} ;無変換+u で Home

SC07B & i::send,{Blind}{End} ;無変換+i で End

SC07B & w::send,{Blind}{Home} ;無変換+w で Home

SC07B & r::send,{Blind}{End} ;無変換+r で End

SC07B & e::send,{Blind}{Up} ;無変換+e で Up

SC07B & d::send,{Blind}{Down} ;無変換+d で Down

SC07B & f::send,{Blind}{Right} ;無変換+f で Right

SC07B & s::send,{Blind}{Left} ;無変換+s で Left

1::+1 ;1 を Shift+1 に(記号にする)

2::+2 ;2 を Shift+2 に

3::+3 ;3 を Shift+3 に

4::+4 ;4 を Shift+4 に

5::+5 ;5 を Shift+5 に

6::+6 ;6 を Shift+6 に

7::+7 ;7 を Shift+7 に

8::+8 ;8 を Shift+8 に

9::+9 ;9 を Shift+9 に

0::+- ;0 を Shift+- に

\::+\ ;\ を Shift+\ に

Permalink |記事への反応(0) | 18:29

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2026 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2026 Movatter.jp