Je n'ai pas pu localiser de solution clé en main pour vous, mais vous suggérez la réponse à votre problème dans votre question. user32.dll est accessible depuis node.js/electron en utilisant node-ffi.
Pour installer node-ffi, vous avez besoin de node-gyp et de toutes ses dépendances sur Windows. Voir https://github.com/nodejs/node-gyp#installation
Ensuite, vous devez faire ce qui suit:
npm install ffi
npm install electron-rebuild
.\node_modules\.bin\electron-rebuild.cmd
Ce dernier est pour reconstruire les binaires natifs pour Electron.
Placez le code suivant dans votre application Electron:
var FFI = require('ffi');
function TEXT(text){
return new Buffer(text, 'ucs2').toString('binary');
}
var user32 = new FFI.Library('user32', {
'FindWindowW': ['int', ['string', 'string']],
'ShowWindow': ['int', ['int', 'int']]
});
var handle = user32.FindWindowW(null, TEXT('Untitled - Notepad'));
console.log(handle);
user32.ShowWindow(handle, 0);
Lancez le bloc-notes et assurez-vous que le titre de la fenêtre soit 'Sans titre - Bloc-notes'. Si vous lancez votre application Electron la fenêtre devrait se cacher, mais le processus reste. J'ai publié une vidéo qui montre que cela fonctionne : https://youtu.be/4thydneqtyQ
Quant à la seconde partie de votre question...
Vous devrez identifier de quelle fenêtre vous voulez cacher. Si vous pouvez utiliser le titre de la fenêtre alors la méthode ci-dessus fonctionnera.
Si vous ne le pouvez pas alors vous devrez trouver un autre moyen d'évaluer la fenêtre via l'API Win32 et prendre la décision. Vous pourriez utiliser EnumWindows (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx) via FFI pour obtenir chaque fenêtre et ensuite utiliser d'autres fonctions pour l'inspecter et prendre la décision.
Si vous fournissez exactement comment vous prévoyez de différencier, je verrai si je peux trouver une solution spécifique pour cela. Sinon, ma suggestion est de rechercher comment le faire via user32.dll en utilisant C# ou C++ et ensuite traduire le résultat en Electron en utilisant FFI.