এটি কোনও ক্রিয়াকলাপের জন্য আমার কোড যা কাজগুলি পায় এবং তাদের নাম পায়, এছাড়াও তালিকা থেকে অ্যাক্সেস করার জন্য তাদের তালিকায় যুক্ত করে। এটি ডেটা সহ অস্থায়ী ফাইল তৈরি করে, ফাইলগুলি পড়ে এবং .exe প্রত্যয় সহ টাস্কের নাম পায় এবং প্রোগ্রামটি সিস্টেম.এক্সিট (0) এর সাথে উপস্থিত হয়ে গেলে ফাইলগুলি মুছে ফেলার ব্যবস্থা করে, এটি ব্যবহৃত প্রক্রিয়াগুলিও আড়াল করে কার্যগুলি পান এবং জাভা.এক্সেও পাবেন যাতে ব্যবহারকারী দুর্ঘটনাক্রমে সমস্ত প্রক্রিয়াটি একসাথে চালিত প্রক্রিয়াটিকে হত্যা করতে না পারে।
private static final DefaultListModel tasks = new DefaultListModel();
public static void getTasks()
{
new Thread()
{
@Override
public void run()
{
try
{
File batchFile = File.createTempFile("batchFile", ".bat");
File logFile = File.createTempFile("log", ".txt");
String logFilePath = logFile.getAbsolutePath();
try (PrintWriter fileCreator = new PrintWriter(batchFile))
{
String[] linesToPrint = {"@echo off", "tasklist.exe >>" + logFilePath, "exit"};
for(String string:linesToPrint)
{
fileCreator.println(string);
}
fileCreator.close();
}
int task = Runtime.getRuntime().exec(batchFile.getAbsolutePath()).waitFor();
if(task == 0)
{
FileReader fileOpener = new FileReader(logFile);
try (BufferedReader reader = new BufferedReader(fileOpener))
{
String line;
while(true)
{
line = reader.readLine();
if(line != null)
{
if(line.endsWith("K"))
{
if(line.contains(".exe"))
{
int index = line.lastIndexOf(".exe", line.length());
String taskName = line.substring(0, index + 4);
if(! taskName.equals("tasklist.exe") && ! taskName.equals("cmd.exe") && ! taskName.equals("java.exe"))
{
tasks.addElement(taskName);
}
}
}
}
else
{
reader.close();
break;
}
}
}
}
batchFile.deleteOnExit();
logFile.deleteOnExit();
}
catch (FileNotFoundException ex)
{
Logger.getLogger(Functions.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException | InterruptedException ex)
{
Logger.getLogger(Functions.class.getName()).log(Level.SEVERE, null, ex);
}
catch (NullPointerException ex)
{
}
}
}.start();
}
public static void killTask(String taskName)
{
new Thread()
{
@Override
public void run()
{
try
{
Runtime.getRuntime().exec("taskkill.exe /IM " + taskName);
}
catch (IOException ex)
{
Logger.getLogger(Functions.class.getName()).log(Level.SEVERE, null, ex);
}
}
}.start();
}