File: ProcessList.cpp

package info (click to toggle)
qnetstatview 1.5.8-2
  • links: PTS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 452 kB
  • sloc: cpp: 1,380; makefile: 4
file content (71 lines) | stat: -rw-r--r-- 2,057 bytes parent folder | download | duplicates (2)
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
60
61
62
63
64
65
66
67
68
69
70
71
#include "ProcessList.h"

#include <QMessageBox>
#include <QSettings>
#include <QDir>
#include <QStandardPaths>

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
#include <signal.h>
#include <sys/wait.h>
#endif

#if defined(Q_OS_WIN)
#include <windows.h>
#include <psapi.h>
#endif

#include <QDebug>

ProcessList::ProcessList(){

}

void ProcessList::killProcess(QString pid){

    if (pid=="" or pid.toInt()==0){
        QMessageBox::critical(nullptr,"KillProcess",QObject::tr("You cannot kill this process"));
        return;
    }

#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
    if (kill(pid.toInt(),SIGTERM)){
        QMessageBox::critical(nullptr,"KillProcess",QObject::tr("Killing of process was not successful"));
    }
#elif defined(Q_OS_WIN)
    HANDLE tmpHandle = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid.toInt());
    if (NULL != tmpHandle){
        TerminateProcess(tmpHandle, 0);
    }
#else
    QMessageBox::critical(nullptr,"KillProcess",QObject::tr("Your OS does not support killProcess"));
#endif

}


void ProcessList::closeConnection(QString from, QString to){
    QSettings conf(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/qnetstatview.ini", QSettings::IniFormat);
    conf.setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath());

    QString utiliteProcKill=conf.value("setup/prockill","").toString();

    if (utiliteProcKill==""){
        QMessageBox::critical(nullptr,"closeConnection",QObject::tr("set utilities for kill connections"));
    }else{
        QStringList fromList = from.split(":");
        QStringList toList = to.split(":");

        utiliteProcKill.replace("%LOCAL_IP%",fromList.at(0));
        utiliteProcKill.replace("%LOCAL_PORT%",fromList.at(1));
        utiliteProcKill.replace("%REMOTE_IP%",toList.at(0));
        utiliteProcKill.replace("%REMOTE_PORT%",toList.at(1));

        system(utiliteProcKill.toStdString().c_str());
    }

}