CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Fermer un processus Windows ?

[Key]Board
[Key]Board
Niveau 10
16 novembre 2016 à 18:13:54

Salut :ok:

Je suis en train de me faire un petit réveil en Python (à telle heure il ouvre une playlist, et doit la fermer quand j'appuie sur une touche).
Bon, j'ai pas encore trouvé comment faire pour détecter que j'appuie sur la "n'importe quelle touche" https://image.noelshack.com/fichiers/2016/46/1479316008-homer-simpson-any-key.jpg https://image.noelshack.com/fichiers/2016/46/1479316019-press-any-key-to-continue-cant-find-the-any-key.jpg
Mais j'ai pas encore cherché non plus :noel:

Là ce qui m'embête le plus c'est que j'arrive pas à fermer un processus (en l'occurrence foobar2000.exe).

Pour lancer ma playlist je fais
os.startfile("playlist.fpl")
et ça fonctionne bien comme il faut.

Mais pour le ferme, je trouve pas...
J'ai rien trouvé avec Python, mais j'ai trouvé quelque chose avec le CMD directement :
tskill nom_du_processus

J'ai donc essayé dans le CMD directement :
tskill foobar2000
et ça fonctionne également très bien

Donc j'ai cherché un moyen d'exécuter une commande CMD avec Python et j'ai trouvé ça :
os.system(command)

Sauf que là.... Bah ça marche pas... J'ai une fenêtre CMD qui s'ouvre et se referme en moins d'une seconde, et le processus n'est pas fermé.
Donc dans mon programme Python, j'ai mis ça :
os.system('tskill foobar2000')
J'ai essayé avec et sans quotes, que ce soit des simples ou doubles quotes, ça fonctionne pas...

Que puis-je faire pour fermer un processus avec python ?

:merci:

PS : Je suis sous Windows 7 et j'utilise Python 3.5.2

Message édité le 16 novembre 2016 à 18:14:21 par [Key]Board
[Key]Board
[Key]Board
Niveau 10
16 novembre 2016 à 19:24:53

Bon alors j'ai trouvé :

os.system("taskkill /f /im foobar2000.exe")

Fonctionne bien.
Solution trouvée ici : http://www.developpez.net/forums/d1263687/autres-langages/python-zope/general-python/l-inverse-os-startfile/

Je suis sur le fameux "press any key".

J'ai pas trouvé de réponse à cette question, pourtant je suis presque sûr que c'est possible...

Pour le moment j'ai fait ça :

os.system("pause")
os.system("taskkill /f /im foobar2000.exe")

Qui fonctionne quand j'appuie sur "entrée", c'est déjà ça.

Si vous aviez une meilleure solution...

:merci:

[Key]Board
[Key]Board
Niveau 10
16 novembre 2016 à 20:06:17

Bon en fait je suis con, le fameux
os.system("pause")
fonctionne très bien pour n'importe quelle touche :noel:

Donc, si ça intéresse quelqu'un, voici le code complet :

import os
import time

while 1 : 
    h = int(input("heure : "))
    m = int(input("minute : "))
    s = int(input("seconde : "))
    while 1:
        heure = time.localtime()
        if (heure.tm_hour == h and heure.tm_min == m and heure.tm_sec == s):
            os.startfile("playlist")
            time.sleep(1)
            os.system("pause")
            os.system("taskkill /f /im foobar2000.exe")
            break
        else :
            time.sleep(1)

Bon le while 1... C'est parce que je vais jamais éteindre le PC quoi :hap:

par contre, pour "optimiser" un peu le code, y'a moyen de faire mieux ?
Histoire que le CPU chauffe un peu moins (c'est un Atom monocore 1.1 GHz... :noel: ).
Est-ce que le time.sleep est utile voire nécessaire dans le "else" ?

(il l'est dans le if avant la pause, pour s'assurer que la fenêtre de pause est bien au premier plan, ce qui n'est pas toujours le cas dans le cas contraire)

Message édité le 16 novembre 2016 à 20:10:55 par [Key]Board
Candystand
Candystand
Niveau 10
16 novembre 2016 à 23:02:48

Ça aurait été plus simple de laisser un simple input("Press any key") je pense

[Key]Board
[Key]Board
Niveau 10
16 novembre 2016 à 23:45:11

Le 16 novembre 2016 à 23:02:48 Candystand a écrit :
Ça aurait été plus simple de laisser un simple input("Press any key") je pense

Ben non, puisqu'après avoir appuyé sur une touche, je suis obligé de faire "entrée" :(

Candystand
Candystand
Niveau 10
16 novembre 2016 à 23:55:21

Effectivement c'est un détail qui m'a totalement échappé :rire:

f0c300
f0c300
Niveau 10
17 novembre 2016 à 09:29:25

par contre, pour "optimiser" un peu le code, y'a moyen de faire mieux ?

Histoire que le CPU chauffe un peu moins (c'est un Atom monocore 1.1 GHz... :noel: ).
Est-ce que le time.sleep est utile voire nécessaire dans le "else" ?

Tu peux essayer d'utiliser autre chose que foobar pour la musique, par exemple mpd, qui fonctionne comme un serveur et a qui tu peux envoyer tes commandes (pause/play) depuis un client sans avoir a te soucier de fenetres qui soient au premier plan ou non.

EDIT : il y a meme une librairie python pour ecrire un client facilement : https://pypi.python.org/pypi/python-mpd2

Message édité le 17 novembre 2016 à 09:30:25 par f0c300
Elmohe
Elmohe
Niveau 9
21 novembre 2016 à 19:13:50

Pour le "Appuyer sur une touche au pif" tu as ça :
a = system.popen("pause")
b = a.read()

Si tu ne veux pas que le "Appuyer sur une touche pour continuer..." s'affiche :ok:

[Key]Board
[Key]Board
Niveau 10
31 août 2017 à 18:26:01

Bonjour,

Je up le topic car je suis revenu sur mon code que j'avais comme qui dirait un peu abandonné [[sticker:p/1kki]]

Voici mon problème :
Lorsque le programme ouvre foobar2000, il le met en premier plan.
Ce qui amène la console python au second plan... Donc pas super pratique pour appuyer sur n'importe quelle touche si faut faire un alt+tab avant :noel:

J'ai cherché un peu à droite à gauche et j'ai pas tellement trouvé de solutions, ou quand il semblait y en avoir une je ne la comprenais pas :(

:merci:

PS : le code : https://pastebin.com/zQwK8txk

El_Camino
El_Camino
Niveau 10
31 août 2017 à 19:32:25

C'est drôle je viens justement de faire il y a quelques jour un réveil en Python + Raspberry Pi https://image.noelshack.com/fichiers/2016/30/1469541952-risitas182.png

Pour la musique j'ai utilisé Pygame, plus simple selon moi :ok:

[Key]Board
[Key]Board
Niveau 10
31 août 2017 à 19:48:00

Le 31 août 2017 à 19:32:25 El_Camino a écrit :
C'est drôle je viens justement de faire il y a quelques jour un réveil en Python + Raspberry Pi https://image.noelshack.com/fichiers/2016/30/1469541952-risitas182.png

Pour la musique j'ai utilisé Pygame, plus simple selon moi :ok:

Comment ça utilisé Pygame ? :doute:
Envoie ton code ?

El_Camino
El_Camino
Niveau 10
31 août 2017 à 19:51:35

Le 31 août 2017 à 19:48:00 [Key]board a écrit :

Le 31 août 2017 à 19:32:25 El_Camino a écrit :
C'est drôle je viens justement de faire il y a quelques jour un réveil en Python + Raspberry Pi https://image.noelshack.com/fichiers/2016/30/1469541952-risitas182.png

Pour la musique j'ai utilisé Pygame, plus simple selon moi :ok:

Comment ça utilisé Pygame ? :doute:
Envoie ton code ?

https://pastebin.com/Av9TcmXU
C'est juste pour gérer la musique

EDIT : Je viens de penser que la musique ne recommence pas à zéro https://image.noelshack.com/fichiers/2016/48/1480464158-1474824966-1474551493-1474308964-1473610653-picsart-09-11-06-13-46.png

Message édité le 31 août 2017 à 19:52:53 par El_Camino
Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment