• R/O
  • HTTP
  • SSH
  • HTTPS

winautomata: Commit

cygwinからウィンドウズを制御するプログラム群。とりあえず、マウスの制御プログラムのみ開発しました。これからも発展していきます。


Commit MetaInfo

Revision6927f3920ca83b363373f09ca3a008460c2e8277 (tree)
Time2012-12-14 21:28:52
Authorab25cq <ab25cq@gmai...>
Commiterab25cq

Log Message

double click

Change Summary

Incremental Difference

--- a/README
+++ b/README
@@ -14,9 +14,9 @@
1414 1.1 プログラムの解説
1515
1616 enum_windows: ウィンドウの一覧を得ます。フォアグランドのウィンドウにはFORGROUNDと表示されます。
17- click: 現在のカーソル位置でクリックします。-rightで右クリック, -middleで中ボタンクリック。
17+ click: 現在のカーソル位置でクリックします。-rightで右クリック, -middleで中ボタンクリック。-doubleでダブルクリック。
1818 wheel: 引数に数字を指定して、その量だけウィールを動かします。> 0で上方向、 < 0で下方向にスクロール。
1919 cursor_pos: カーソルの位置を返します。引数を指定するとカーソルを移動します。 < 0で現在位置のまま。-1 10だとy方向のみ10に移動します。
2020 window_from_point: カーソルの下にあるウィンドウのクラス名を表示します。
2121 mousehook: STARTボタンを押すとフック開始。ENDでフック終了。現在位置のマウスの座標を表示します。クリック、右クリックを行った場所も表示します。
22- get_dnd: ファイルのドラッグアンドドロップを受け付けます。ウィンドウを閉じると受け取ったファイルの一覧を出力します。
22+ drop: ファイルのドロップを受け付けます。OKボタンを押すと受け取ったファイルの一覧を出力します。
--- a/click.c
+++ b/click.c
@@ -1,9 +1,11 @@
11 #include <windows.h>
2+#include <unistd.h>
23
34 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
45 PSTR lpCmdLine, int nCmdShow)
56 {
67 int button = 0; // 0:left 1:right 2:middle
8+ int double_click = 0; // 0: single 1: double
79
810 char buf[256];
911 char* p2 = buf;
@@ -21,6 +23,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
2123 else if(strcmp(buf, "-middle") == 0) {
2224 button = 2;
2325 }
26+ else if(strcmp(buf, "-double") == 0) {
27+ double_click = 1;
28+ }
2429
2530 if(*p == 0) break;
2631
@@ -97,7 +102,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
97102 inputs[1].mi.dwExtraInfo = 0;
98103 }
99104
100- SendInput(2, inputs, sizeof(INPUT));
105+ if(double_click) {
106+ SendInput(2, inputs, sizeof(INPUT));
107+ usleep(50);
108+ SendInput(2, inputs, sizeof(INPUT));
109+ }
110+ else {
111+ SendInput(2, inputs, sizeof(INPUT));
112+ }
101113
102114 return 0;
103115 }
Show on old repository browser