贴几个图吧,没用psexec,该用PAExec了,一样的效果:
以管理员执行 paexec -i -s cmd,右下角就会弹出通知。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| C:\Users\q\Downloads>sc create TrustedInstaller_Test binPath= "c:\windows\system32\cmd.exe /K start" type= userown obj= TrustedInstaller [SC] CreateService SUCCESS C:\Users\q\Downloads>sc qc TrustedInstaller_Test [SC] QueryServiceConfig SUCCESS SERVICE_NAME: TrustedInstaller_Test TYPE : 50 USER_OWN_PROCESS TEMPLATE START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : c:\windows\system32\cmd.exe /K start LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : TrustedInstaller_Test DEPENDENCIES : SERVICE_START_NAME : |
$ python lswin.py PID WinID x,y,w,h [Title] SubTitle ------- ----- --------------------- ------------------------------------------- 169 1956 {0,-38,1280,25 } [Window Server] Backstop Menubar 169 1955 {0,-60,1280,22 } [Window Server] Menubar 169 396 {0,-38,1280,25 } [Window Server] Backstop Menubar 169 395 {0,-60,1280,22 } [Window Server] Menubar 169 6 {0,0,0,0 } [Window Server] Cursor 169 4 {0,22,1280,25 } [Window Server] Backstop Menubar 169 3 {0,0,1280,22 } [Window Server] Menubar 169 2 {0,0,1280,800 } [Window Server] Desktop 262 404 {0,-38,1280,38 } [Google Chrome] 262 393 {0,0,1280,800 } [Google Chrome] 262 380 {100,100,1,1 } [Google Chrome] Focus Proxy 262 351 {1189,45,46,18 } [Google Chrome] 262 51 {0,0,1280,800 } [Google Chrome] sjitech/mac_list_windows_pids 262 50 {0,755,1,1 } [Google Chrome] 262 43 {0,0,1280,22 } [Google Chrome] 262 42 {0,0,1280,22 } [Google Chrome] 266 3294 {0,23,1276,777 } [Sublime Text] README.md — mac_list_windows_pids 266 1954 {0,-38,1280,38 } [Sublime Text] 266 1953 {0,0,1280,800 } [Sublime Text] 266 1952 {0,0,1280,800 } [Sublime Text] 266 345 {529,83,116,56 } [Sublime Text] 266 188 {100,100,1,1 } [Sublime Text] Focus Proxy 266 186 {0,0,1280,22 } [Sublime Text] 266 185 {0,0,1280,22 } [Sublime Text] 266 93 {0,0,1280,800 } [Sublime Text] lswin ... ...
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
| #!/usr/bin/env python import Quartz #wl = Quartz.CGWindowListCopyWindowInfo( Quartz.kCGWindowListOptionOnScreenOnly | Quartz.kCGWindowListExcludeDesktopElements, Quartz.kCGNullWindowID) wl = Quartz.CGWindowListCopyWindowInfo( Quartz.kCGWindowListOptionAll, Quartz.kCGNullWindowID) wl = sorted (wl, key = lambda k: k.valueForKey_( 'kCGWindowOwnerPID' )) #print wl print 'PID' .rjust( 7 ) + ' ' + 'WinID' .rjust( 5 ) + ' ' + 'x,y,w,h' .ljust( 21 ) + ' ' + '\t[Title] SubTitle' print '-' .rjust( 7 , '-' ) + ' ' + '-' .rjust( 5 , '-' ) + ' ' + '-' .ljust( 21 , '-' ) + ' ' + '\t-------------------------------------------' for v in wl: print ( \ str (v.valueForKey_( 'kCGWindowOwnerPID' ) or '?' ).rjust( 7 ) + \ ' ' + str (v.valueForKey_( 'kCGWindowNumber' ) or '?' ).rjust( 5 ) + \ ' {' + (' ' if v.valueForKey_(' kCGWindowBounds') is None else \ ( \ str ( int (v.valueForKey_( 'kCGWindowBounds' ).valueForKey_( 'X' ))) + ',' + \ str ( int (v.valueForKey_( 'kCGWindowBounds' ).valueForKey_( 'Y' ))) + ',' + \ str ( int (v.valueForKey_( 'kCGWindowBounds' ).valueForKey_( 'Width' ))) + ',' + \ str ( int (v.valueForKey_( 'kCGWindowBounds' ).valueForKey_( 'Height' ))) \ ) \ ).ljust( 21 ) + \ '}' + \ '\t[' + ((v.valueForKey_( 'kCGWindowOwnerName' ) or ' ') + ' ]') + \ (' ' if v.valueForKey_(' kCGWindowName ') is None else (' ' + v.valueForKey_(' kCGWindowName ') or ' ')) \ ).encode( 'utf8' )
|