obtenez tous les processus en cours d'info à l'aide de QProcess
quelques jours, j'ai posé la question de comment obtenir tous les processus en cours d'exécution dans le système à l'aide de QProcess.
j'ai trouvé une ligne de commande de sortie de tous les processus dans un fichier:
C:\WINDOWS\system32\wbem\wmic.exe" /OUTPUT:C:\ProcessList.txt PROCESSUS de Légende
cela va créer C:\ProcessList.txt fichier contient tous les processus en cours d'exécution dans le système.
je me demande comment puis-je exécuter à l'aide de QProcess et prendre la sortie à une variable.
il me semble qu'à chaque fois que j'essaie de l'exécuter et de le lire rien ne se passe:
QString program = "C:\\WINDOWS\\system32\\wbem\\wmic.exe";
QStringList arguments;
arguments << "/OUTPUT:C:\\ProcessList.txt" <<"PROCESS"<< "get"<< "Caption";
process->setStandardOutputFile("process.txt");
process->start(program,arguments);
QByteArray result = process->readAll();
je préfère ne pas créer de process.txt à tous et à prendre toutes les données de sortie à une variable...
- Kaycee -- j'ai voté pour fermer pensant que ce n'était pas une question, mais un examen plus lire, je vois qu'il est réellement. Mon mauvais.
- Vous avez
wmic
l'envoi de la sortie dec:\ProcessList.txt
et vous redirigerwmic
's la sortie standardprocess.txt
. La sortie qui sont que vous essayez de stocker dans une variable? - je voudrais stocker tous les fichiers de sortie permet de dire que dans une carte... fichier de sortie est le suivant: services.exe C:\Windows\system32\services services2.exe C:\Windows\system32\services services3.exe C:\Windows\system32\services . . . mais pour une raison que seule la première ligne est sauvé...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez l'exécuter wmic.exe avec "/SORTIE:STDOUT" switch pour imprimer les informations de processus directement sur la sortie standard stdout. Cependant, j'ai été incapable de lire cette info par le biais de QProcess de l'API et de l'enregistrer dans une variable. Voici le code que j'ai utilisé:
Ce code reflète la sortie de "cmd.exe /C echo test", mais ne fonctionne pas sur wmic.exe. Il semble que le processus de wmic.exe n'est jamais fini, et je suppose que c'est stdout n'est jamais vidé afin de ne pas recevoir quoi que ce soit à travers QProcess::readAll().
C'est toute l'aide que je puisse vous donner. Peut-être que vous, ou un autre de SORTE que l'utilisateur va trouver un bug dans l'extrait ci-dessus.
Essayer ce qu'il va bien travailler.