- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/28(月) 15:48:16 ID:LAzeYh1N0]
- (テンプレ>>1)
■公式 www.autohotkey.com/ ■解説 AutoHotkeyを流行らせるページ lukewarm.s101.xrea.com/ ■過去スレ 1 pc7.2ch.net/test/read.cgi/software/1098531338/ 2 pc7.2ch.net/test/read.cgi/software/1129836713/ 3 pc11.2ch.net/test/read.cgi/software/1157043396/ 4 pc11.2ch.net/test/read.cgi/software/1184556627/ 関連リンク>>2以降も参照
- 679 名前:名無しさん@お腹いっぱい。 mailto:age [2008/06/10(火) 21:53:49 ID:SOxaqh3l0]
- すみません、文字列の扱いについてお聞きしたいのですが、
どういうときに " "をつけて囲んで文字列と認識させる必要があるのでしょうか? " " で囲まずにMsgBoxで出しても囲んでMsgBoxで出しても同じ結果が返ってくるかと 思いきや、囲んでないと何も出てこない時もあり、混乱しています。 普通C言語やJavaでは文字列は必ず " " で囲む物ですが、AHKではその辺 どうなってるのでしょうか?例えば MsgBox, 文字列 だと「文字列」が出力され、 strValue := 文字列 MsgBox, %strValue% だと空文字・・いやnullなのかな?どっちか分かりませんが「文字列」が出力されずに 何も出てきません・・・。
- 680 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 22:02:45 ID:fQ25LVyb0]
- >>679
× strValue := 文字列 ○ strValue = 文字列 :=は、数値の計算結果を代入するときとかに使う。 よって右が文字の場合は、計算のしようが無いので空白になる
- 681 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 22:35:38 ID:BhGK1USa0]
- := 使いたい時こそ " "で囲め
× strValue := 文字列 ○ strValue := "文字列"
- 682 名前:679 mailto:age [2008/06/11(水) 00:28:19 ID:fVOKMAhU0]
- レスありがとうございます。
なるほど、分かりました〜。
- 683 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 01:01:13 ID:Vk8WnOSz0]
- str=hoge (変数strの中にhogeという文字列がある)として、
a=hoge a:="hoge" a:=str a=%str% 以上のaの中はすべて文字列hogeである また、次のif文もすべて同じ if a=hoge if a=%str% if (a="hoge") if (a=str)
- 684 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 02:12:24 ID:6MnSS32m0]
- 横から見ているだけでも役に立つスレだ
- 685 名前:679 mailto:age [2008/06/11(水) 07:55:51 ID:fVOKMAhU0]
- >>683
おお〜、ありがとうございます〜・・・ なるほど・・・道理で素人の私が混乱するわけですよ・・・ 色々な書き方があるんですねぇ・・・。 if(a == "hoge") みたいな、 =(等しいか?)の変わりに ==(等しいか?)を使っても全く同じですか? だとしたらどうしてこんな演算子があるんだろうかと・・・。 それと自分で試行錯誤して理解したのですが Loop, 5 { でブロック開始しないとLoopは正常に処理されない Loop, 5 { で開始するとなんかmissing "{" とかエラーが出て・・・。 でもif文は if(a == "hoge") { で開始しても if(a == "hoge")
- 686 名前:679 mailto:age [2008/06/11(水) 07:58:36 ID:fVOKMAhU0]
- 途中で書き込んでしまいました。
でもif文は if(a == "hoge") { で開始しても if(a == "hoge") { で開始してもどちらも問題なく動きます。 それとかif(a == str) { と% % で囲まずに変数名指定するだけで中身を見てくれるのに IfWinExist, str { とかだと うまく動作せずに、 IfWinExist, %str% としないとだめのようです。 そしてこの構文も IfWinExist, %str% { ってやるとエラーが出て IfWinExist, %str% { ってやると正常に動作するんですよ・・。正直言語仕様を理解するのが凄く大変です・・・。 どうしてこんなにトリッキーなんだろう・・。普通のJavaやCと同じような感じにしてくれれば・・・
- 687 名前:TpMOPuLyPJNoLl mailto:qzfykuue@vcgqowhp.com [2008/06/11(水) 08:02:18 ID:5Nax1wDx0]
- comment2, <a href="www.titaniuexport.kiev.ua">titanium sheets</a>, [url="www.titaniuexport.kiev.ua"]titanium sheets[/url], www.titaniuexport.kiev.ua titanium sheets, >:PPP,
- 688 名前:yOUAjPuxjrUJV mailto:uvcgwhvk@hgdeslns.com [2008/06/11(水) 08:13:50 ID:+P08aPt30]
- comment6, <a href="doorppcpc.com/dinosaurs/coloring-pictures-of-dinosaurs.html">coloring pictures of dinosaurs
</a>, doorppcpc.com/dinosaurs/coloring-pictures-of-dinosaurs.html coloring pictures of dinosaurs , atbow, <a href="doorppcpc.com/dinosaurs/when-dinosaurs-went-extingged.html">when dinosaurs went extingged </a>, doorppcpc.com/dinosaurs/when-dinosaurs-went-extingged.html when dinosaurs went extingged , =[[, <a href="doorppcpc.com/medicine/humphries-medicine.html">humphries medicine </a>, doorppcpc.com/medicine/humphries-medicine.html humphries medicine , lsj,
- 689 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 09:13:53 ID:FV4NCQQL0]
- >>686
始めは %str% しか使えなかったんだよ わかりにくいからって後から従来言語互換を追加していった結果カオスになった。 ちなみに if(a == "hoge") だと厳密な文字列チェック(大文字小文字区別) if(a = "hoge") はStringCaseSense依存、デフォだと Hoge、HOGE でもOK
- 690 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 09:52:21 ID:1HOSiKnd0]
- 後方互換をちゃんと取ってるのはいいけど、古い仕様はobsoleteで非推奨
ってちゃんとドキュメントに書いてくれたらいいのに
- 691 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 13:47:40 ID:uoudNQeM0]
- そこら辺たしかになんとかして欲しいな。
時々しかスクリプト書かないので 一度覚えてもすぐ忘れて間違えてしまう。
- 692 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 14:20:51 ID:OcZxtXTQ0]
- >>691
わかる。最初AHKでと思うんだけど、すぐに面倒になってHotKey以外の部分は UWSCで書き出す自分…
- 693 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 15:16:17 ID:JuWezgpD0]
- 逆に俺はAHKに慣れすぎてたまにvbsとかjsかくと無意識に変数を%で囲ったりしてる
- 694 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 16:52:35 ID:rC/xuCxH0]
- 俺も変数の使い方の部分で1週間ぐらい悩んだな
今でもたまに間違うし
- 695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 17:20:20 ID:GfcCYN010]
- 覚えるのもあほらしいから
毎回何パターンか試して動いたらおkってことにしてるお
- 696 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 21:16:10 ID:6MnSS32m0]
- 俺は、%で囲う作業すら面倒になったので、
Win+Vを押すと、クリップボードの内容に%〜%をつけて出力するようにした string=%Clipboard% string=`%%string%`%
- 697 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 22:11:00 ID:P7T3f9Wt0]
- お前ら丸暗記しようとするから混乱するんだよ
値で扱うか、式で扱うかだけだよ 値で扱う物は文字列は値となるので、変数を使いたい場合に%%で展開しなければならない。 式で扱う物は文字列は変数になってしまうので、文字列を値で扱う為には""で囲まなければならない。 (値) : (式) コマンド : 関数 = : := if : if() さらに大まかに分けると、:=と()内は式が使えるとだけ覚えればいい
- 698 名前:名無しさん@お腹いっぱい。 [2008/06/12(木) 10:10:17 ID:LFiheMSR0]
- こんにちは。最近AutoHotKeyを使い始めました。
PDF-XChange Viewer にて、以下のように スペースキーを右矢印 シフト+スペースキーを左矢印 に置き換えようとしたのですが、 シフト+スペースキーが効きません。 ; for PDF-XChange Viewer #IfWinActive ahk_class DSUI:PDFXCViewer +Space::Left Space::Right #IfWinActive AutoHotKeyのKey history and script infoでみたいたところ、 Left以外に最初に押したシフトが押されたままになってしまっています。 ところが、PDF-XChange Viewerでは、シフト+右矢印は無効になります。 (右矢印のみは問題ない) シフト+スペースを押したときに、右矢印のみを押すことはできないでしょうか? つまり、シフト+スペース時に、シフトを無効にしたいのですが・・・
- 699 名前:698 [2008/06/12(木) 10:29:25 ID:LFiheMSR0]
- これでいけました!
; for PDF-XChange Viewer #IfWinActive ahk_class DSUI:PDFXCViewer +Space:: Send {Left} return Space::Right #IfWinActive お騒がせしました。ご協力いただきありがとうございました。
- 700 名前:698 [2008/06/12(木) 10:30:33 ID:LFiheMSR0]
- あ、returnは余計でしたね。一行でいけるのか
+Space::Send {Left}
- 701 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 18:08:31 ID:FoxozYwL0]
- マウスをドラッグ中にカーソルを変更したいのですが、
AHKスクリプト内で、マウスカーソルを変更する方法はありますか? 現在のカーソルの種類を読み出すコマンドはあるようですが、 指定する方法は見つけられない状態でして・・・
|

|