drawing on the other two answers received, this technique seems like a reasonable way to accomplish the stated goal..
# specify executable file
exe.file <- "C:\Users\AnthonyD\AppData\Local\Google\Chrome\Application\chrome.exe"
# capture the result of a `tasklist` system call
before.win.tasklist <- system2( 'tasklist' , stdout = TRUE )
# store all pids before running the process
before.pids <- substr( before.win.tasklist[ -(1:3) ] , 27 , 35 )
# run the process
shell.exec( exe.file )
# capture the result of a `tasklist` system call
after.win.tasklist <- system2( 'tasklist' , stdout = TRUE )
# store all tasks after running the process
after.tasks <- substr( after.win.tasklist[ -(1:3) ] , 1 , 25 )
# store all pids after running the process
after.pids <- substr( after.win.tasklist[ -(1:3) ] , 27 , 35 )
# store the number in the task list containing the PIDs you've just initiated
initiated.pid.positions <- which( !( after.pids %in% before.pids ) )
# remove whitespace
after.tasks <- gsub( " " , "" , after.tasks )
# find the pid position that matches the executable file name
correct.pid.position <-
intersect(
which( after.tasks %in% basename( exe.file ) ) ,
initiated.pid.positions
)
# remove whitespace
correct.pid <- gsub( " " , "" , after.pids[ correct.pid.position ] )
# write the taskkill command line
taskkill.cmd <- paste( "taskkill" , "/PID" , correct.pid )
# wait thirty seconds (so the program fully loads)
Sys.sleep( 30 )
# kill the same process that was loaded
system( taskkill.cmd )
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…