Что API Win32 может использоваться для нахождения процесса, который имеет данный открытый файл?

times принимает функцию; аргумент context позволяет вам при необходимости указать значение, на которое ссылается this внутри этой функции.

В вашем примере обратный вызов, переданный в times, вообще не использует this, поэтому он не нужен, но представьте, если обратный вызов зависит от this, ссылающегося на объект:

const obj = {
  count: 3,
  increment: function() {
    this.count++;
    console.log(this.count);
  }
};
obj.increment();
obj.increment();

Функция obj.increment зависит от obj.count. Чтобы это работало в вашей функции times, вам нужно, чтобы this ссылался на obj, поэтому передайте его как второй аргумент в times, чтобы obj передавался как первый параметр в .call:

Number.prototype.times = function(f, context) {
    var n = this.valueOf();
    console.log('repeating ' + n + ' times:');
    for(var i = 0; i < n; i++) f.call(context, i);
};
const obj = {
  count: 3,
  increment: function() {
    this.count++;
    console.log(this.count);
  }
};

(3).times(obj.increment, obj);

Пользовательский this не требуется, если вы передаете другой ] функция для .times, которая сама вызывает obj.increment:

Number.prototype.times = function(f, context) {
    var n = this.valueOf();
    console.log('repeating ' + n + ' times:');
    for(var i = 0; i < n; i++) f.call(context, i);
};
const obj = {
  count: 3,
  increment: function() {
    this.count++;
    console.log(this.count);
  }
};

(3).times(() => obj.increment());

10
задан Shog9 8 October 2008 в 17:44
поделиться

2 ответа

Это, кажется, делает то, что Вы хотите.

очевидно, это использует некоторый скрытый API такой как NtQueryInformationProcess.

2
ответ дан 4 December 2019 в 04:21
поделиться

Программа Дескриптора от SysInternals делает это также, но я не уверен как. Я не думаю, что существует единственный зарегистрированный API, чтобы сделать это. Я думаю, что необходимо выполнить итерации по процессам, перечислить каждый из дескрипторов и затем определить имя файла, связанное с тем дескриптором.

1
ответ дан 4 December 2019 в 04:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: