使用Popen()启动快捷方式,不使用shell = True来获取pid

时间:2018-03-26 20:09:55

标签: python windows python-3.x popen pid

我需要pid(进程ID)来杀死任务。它是我PC上的OneNote文件快捷方式。

如果我从它开始shell = True,那里的pid与任务管理器中的pid不同,所以这不会起作用:

void quickSort(double[] list, int start, int end) {
    int size = end - start + 1;
    // this is the 'classic' pivot
    // double pivotValue = list[start + (end - start) / 2];
    double pivotValue = (list[start] + list[end] + list[start + (size / 2)]) / 3.0;
    int leftPosition = start;
    int rightPosition = end;

    while (leftPosition <= rightPosition) {
        while (list[leftPosition] < pivotValue) {
            leftPosition++;
        }
        while (list[rightPosition] > pivotValue) {
            rightPosition--;
        }

        if (leftPosition <= rightPosition) {
            exchange(list, leftPosition, rightPosition);
            leftPosition++;
            rightPosition--;
        }
    }
    if (start < rightPosition)
        quickSort(list, start, rightPosition);
    if (leftPosition < end)
        quickSort(list, leftPosition, end);
}

void exchange(double[] list, int i, int j) {
    double temp = list[i];
    list[i] = list[j];
    list[j] = temp;
}

所以,首先尝试:

os.chdir("E:\Anyagok\Programozás\Python\projekts\Én projektjeim")
am=subprocess.Popen("cold_turkey.url",shell=True)
os.system("TASKKILL /F /PID {}".format(am.pid)) 
  1. 方法:

    subprocess.Popen(“C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Microsoft Office 2016 \ OneNote 2016.lnk”,                  “E:\ Anyagok \Programozás\ Python \ projekts \Énprojektjeim\ cold_turkey.url”)     回溯(最近一次调用最后一次):

    os.chdir("E:\Anyagok\Programozás\Python\projekts\Én projektjeim")
    subprocess.Popen("E:\Anyagok\Programozás\Python\projekts\Én projektjeim\cold_turkey.url")
    
    Traceback (most recent call last):
    
      File "<ipython-input-236-87374b9d7654>", line 1, in <module>
        subprocess.Popen("E:\Anyagok\Programozás\Python\projekts\Én projektjeim\cold_turkey.url")
    
      File "E:\Download\PROGIK\ANACONDA\lib\site-packages\spyder\utils\site\sitecustomize.py", line 210, in __init__
        super(SubprocessPopen, self).__init__(*args, **kwargs)
    
      File "E:\Download\PROGIK\ANACONDA\lib\subprocess.py", line 709, in __init__
        restore_signals, start_new_session)
    
      File "E:\Download\PROGIK\ANACONDA\lib\subprocess.py", line 997, in _execute_child
        startupinfo)
    I have to open it without shell to get the proper pid, but I just cant open it.
    
    1. method, just the link
    
        subprocess.Popen("E:\Anyagok\Programozás\Python\projekts\Én projektjeim\cold_turkey.url")
        WindowsError: [Error 193] %1 is not a valid Win32 application
    
  2. 如何用Popen()打开它以便我可以拥有pid?

    必须有一种比实际使用This

    更好的方法

0 个答案:

没有答案