uwscとなでしこの話 | かめきちの遊戯王日記

かめきちの遊戯王日記

主に遊戯王、デッキレシピやアニメを紹介しようと思ってます。
更新頻度は3日に1回以上を目標としています。

気軽にコメント、読者登録、アメンバーよろしくお願いします

※基本ペタは返しません


テーマ:
えー、久しぶりです
アクセス数ってこんなに落ちるものなんですね、驚きです
最近、遊戯王やってないんで遊戯王的な話題は滅多に書かないと思います

今日はプログラミングの話です
興味無い方が大半だと思いますのでブラウザを閉じていただいて結構です



最近流行りのlineをuwscで荒らしていました
いやー楽しいものですね

uwscとはマウスやキーボードの動きを記録して再生するソフトです
それだけでなく動きを編集できるんです、だから高速化したり繰り返させたりできます
pc版のlineを使ってuwscを実行させるという方法です

While 1
KBD(VK_CTRL,DOWN,1)
KBD(VK_V,CLICK,1)
KBD(VK_CTRL,UP,1)
KBD(VK_RETURN,CLICK,1)
wend


これはクリップボードにある文章を貼り付けてenterを押すプログラムです
理論上4ミリ秒に一回のペースです
無限ループなので止めるのが面倒ですが、カウンタをつけてループ一回毎にカウンタに+1してカウンタが100以上になったら止めるとかいう処理は処理速度が遅くなる気がしたのでつけませんでした


そしてこのプログラムを改良したのがこれ
While 1
saikoro =random(10) +1
SELECT saikoro
CASE 1
message ="うんこ"
CASE 2
message ="うんこ"
CASE 3
message ="うんこ"
CASE 4
message ="うんこ"
CASE 5
message ="ちんこ"
CASE 6
message ="( ゚∀゚)o彡°おっぱい!おっぱい!"
CASE 7
message ="wwwwwwwwwwwwwwwwwwwwww"
CASE 8
message =" ( ^ω^)"
CASE 9
message =" ( ^ω^)"
CASE 10
message ="\デェェェェェン/"
SELEND

SendStr(0, message)

KBD(VK_CTRL,DOWN,1)
KBD(VK_V,CLICK,1)
KBD(VK_CTRL,UP,1)
KBD(VK_RETURN,CLICK,1)

wend



ループ毎にさいころを振らせてさいころの出目によって文章が変わります
sendstr(0, はクリップボードに送るという意味です
sendstrで直接送ることができなかったためクリップボードを介しています、メモ帳ならできたのに

見ての通りうんこの確率が高いですねはい
1つめのは同じ言葉しか言えなかったのにずいぶんとバラエティに富んでいますね


uwscの話は以上



久しぶりにプログラミングというものをやって面白さに目覚めて一番最初に出会った日本語プログラミング言語なでしこを引っ張り出してみた
そしたら三年前に作った1000行という膨大な量のソースが書いてあるブラウザが、初めて作った作品が、
動かない
原因不明のエラーを吐きまくり死亡
なでしこ側の仕様が変わったのかな?
ドンマイ!私っ!(そうえば車輪の国やったのも三年前ぐらいだったっけな)
ブラウザのソース見てたら面白そうなものをやってるじゃないか、winapiを使うとは
これもうなでしこの意味無いんじゃと思う

やることないしwinapiの紹介でもしようか
値とかすぐ忘れないようにメモも兼ねて


!母艦設計=「母艦の可視はオフ」

MessageBoxA((母艦の、ハンドル),「私と付き合いますか?」,「質問」,$24)
もし、それが6ならば
MessageBoxA((母艦の、ハンドル),「ありがとうございます。」,「回答」,$0)
もし、それが7ならば
MessageBoxA((母艦の、ハンドル),「そうですか…」,「回答」,$0)

終了


●MessageBoxA(hWnd,lpText,lpCaption,uType) =DLL("user32.dll",
"int MessageBoxA(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType
)")



messageboxを使うことによってwindowsっぽいメッセージボックスを出すことができるのだ!
ただそれだけ、なでしこ標準の言うとかでもいいんだけどさ、見た目カッコいいじゃん

自作関数の部分はwindowsapi利用支援を使って
int MessageBoxA(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType
);
これを変えたもの


そして今回一番忘れたくないのが$24のところ第四因数です

このリンク先に書いてあります
あ、でも消えた場合のためにこっちにも書いとくか



UINT uType
メッセージボックスの種類を,次のような値により指定します。ボタンとアイコンはビット毎の論理和で組み合せることができます。
定数 値 意味
MB_OK 0x00000000L [OK]
MB_OKCANCEL 0x00000001L [OK],[キャンセル]
MB_ABORTRETRYIGNORE 0x00000002L [中止],[再試行],[無視]
MB_YESNOCANCEL 0x00000003L [はい],[いいえ],[キャンセル]
MB_YESNO 0x00000004L [はい],[いいえ]
MB_ICONHAND 0x00000010L エラー
MB_ICONQUESTION 0x00000020L 問合せ
MB_ICONEXCLAMATION 0x00000030L 警告
MB_ICONINFORMATION 0x00000040L 情報
int 返り値
メッセージボックスのどのボタンが押されたかを返します。
定数 値 意味
IDOK 1 [OK]
IDCANCEL 2 [キャンセル]
IDYES 6 [はい]
IDNO 7 [いいえ]




転載失礼しました

つまり24の場合はアイコンはMB_ICONQUESTIONで選択肢はMB_YESNOということになる
なんで数字使うんだよと思うと思うが、普通に記述したらできなかったから数字にした
それだけ


調べてて知ったけど戻り値はそれに勝手に代入してくれるんだね
条件分岐できることに初めて知った
なでしこすごいぞ

なでしこの最大の良さはセミコロン付けなくていいところだね;
さようなら;

かめきちさんをフォロー

ブログの更新情報が受け取れて、アクセスが簡単になります

Ameba人気のブログ

Amebaトピックス