-
Notifications
You must be signed in to change notification settings - Fork 0
/
Main.java
59 lines (35 loc) · 1.44 KB
/
Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import com.sun.jna.*;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinUser;
import com.sun.jna.win32.*;
import java.util.function.Consumer;
interface User32 extends StdCallLibrary {
// Method declarations, constant and structure definitions go here
HWND FindWindowA(String lpClassName, String lpWindowName);
boolean SetForegroundWindow(HWND hWnd);
boolean ShowWindow(HWND hWnd, int nCmdShow);
}
public class Main {
static User32 INSTANCE = (User32) Native.load("user32", User32.class);
public static void main(String[] args) throws InterruptedException {
HWND SkypeWindow = INSTANCE.FindWindowA(null, "Skype");
SetInterval(j -> {
try {
RunSkype(j);
} catch (InterruptedException e) {
e.printStackTrace();
}
}, 2000, SkypeWindow);
}
public static void RunSkype(HWND SkypeWindow) throws InterruptedException {
INSTANCE.SetForegroundWindow(SkypeWindow);
INSTANCE.ShowWindow(SkypeWindow, WinUser.SW_RESTORE);
Thread.sleep(1000);
INSTANCE.ShowWindow(SkypeWindow, WinUser.SW_MINIMIZE);
}
public static <T> void SetInterval(Consumer<T> Method, int Time, T Value) throws InterruptedException {
Thread.sleep(Time);
Method.accept(Value);
SetInterval(Method, Time, Value);
}
}