3
3
namespace Craftpip \ProcessHandler \Drivers ;
4
4
5
5
use Craftpip \ProcessHandler \Exception \ProcessHandlerException ;
6
+ use Craftpip \ProcessHandler \Process as Process2 ;
6
7
use Symfony \Component \Process \Process ;
7
8
8
9
class Windows implements DriversInterface {
10
+
11
+ /**
12
+ * @return \Craftpip\ProcessHandler\Process[]
13
+ */
9
14
function getAllProcesses () {
10
15
$ command = "tasklist /V " ;
11
16
$ process = new Process ($ command );
@@ -15,6 +20,11 @@ function getAllProcesses () {
15
20
return $ this ->parseOutput ($ op );
16
21
}
17
22
23
+ /**
24
+ * @param $pid
25
+ *
26
+ * @return \Craftpip\ProcessHandler\Process[]
27
+ */
18
28
function getProcessByPid ($ pid ) {
19
29
$ command = "tasklist /V /fi \"pid eq $ pid \"" ;
20
30
$ process = new Process ($ command );
@@ -24,6 +34,11 @@ function getProcessByPid ($pid) {
24
34
return $ this ->parseOutput ($ op );
25
35
}
26
36
37
+ /**
38
+ * @param $processName
39
+ *
40
+ * @return \Craftpip\ProcessHandler\Process[]
41
+ */
27
42
function getProcessByProcessName ($ processName ) {
28
43
$ command = "tasklist /V /fi \"imagename eq $ processName \"" ;
29
44
$ process = new Process ($ command );
@@ -33,6 +48,11 @@ function getProcessByProcessName ($processName) {
33
48
return $ this ->parseOutput ($ op );
34
49
}
35
50
51
+ /**
52
+ * @param $output
53
+ *
54
+ * @return \Craftpip\ProcessHandler\Process[]
55
+ */
36
56
private function parseOutput ($ output ) {
37
57
$ op = explode ("\n" , $ output );
38
58
if (count ($ op ) == 1 ) {
@@ -49,7 +69,7 @@ private function parseOutput ($output) {
49
69
if ($ k < 2 )
50
70
continue ;
51
71
52
- $ processes [] = [
72
+ $ p = [
53
73
'name ' => trim (substr ($ o , 0 , $ cs [0 ] + 1 )),
54
74
'pid ' => trim (substr ($ o , $ cs [0 ] + 1 , $ cs [1 ] + 1 )),
55
75
'session_name ' => trim (substr ($ o , $ cs [0 ] + $ cs [1 ] + 2 , $ cs [2 ] + 1 )),
@@ -60,6 +80,9 @@ private function parseOutput ($output) {
60
80
'cpu_time ' => trim (substr ($ o , $ cs [0 ] + $ cs [1 ] + $ cs [2 ] + $ cs [3 ] + $ cs [4 ] + $ cs [5 ] + $ cs [6 ] + 7 , $ cs [7 ] + 1 )),
61
81
'window_title ' => trim (substr ($ o , $ cs [0 ] + $ cs [1 ] + $ cs [2 ] + $ cs [3 ] + $ cs [4 ] + $ cs [5 ] + $ cs [6 ] + $ cs [7 ] + 8 , $ cs [8 ] + 1 )),
62
82
];
83
+
84
+ $ processes [] = new Process2 ($ p ['name ' ], $ p ['pid ' ], $ p ['session_name ' ], $ p ['session ' ], $ p ['mem_used ' ], $ p ['status ' ],
85
+ $ p ['username ' ], $ p ['cpu_time ' ], $ p ['window_title ' ]);
63
86
}
64
87
65
88
return $ processes ;
0 commit comments