# Programme pour simuler l'appui d'une touche



## Anonyme (20 Février 2005)

Bonjour,

je cherche a creer un programme qui tourne en tache de fond, et qui simule l'appui de Ctrl+C sans cesse. En fait je veux que cette combinaison serve pour un aute programme.

merci @+


----------



## ntx (20 Février 2005)

Tu peux écrire un script shell qui envoit la commande kill. Un petit "man kill" pour avoir les détails.


----------



## Anonyme (20 Février 2005)

totoffe a dit:
			
		

> Je cherche a creer un programme qui tourne en tache de fond, et qui simule l'appui de Ctrl+C sans cesse. En fait je veux que cette combinaison serve pour un aute programme.



Sous Mac OS X 10.3 et supérieur (1), tu peux utiliser AppleScript pour réaliser cette opération.
Il te suffit de copier le script ci-après dans l'éditeur de script (ou de cliquer ici), de l'adapter à ton utilisation en remplaçant l'expression "Mon application" par le nom de l'application cible, et de l'enregistrer comme application autonome fonctionnant en arrière-plan (voir copie d'écran).

Cette méthode a l'avantage de la simplicité, mais elle suppose que l'application cible soit toujours au premier plan lors de l'exécution du raccourci clavier. Par ailleurs, l'utilisation de la commande "delay" (fixant ici un délai d'une seconde) est indispensable : en son absence, la boucle se répète si vite qu'il devient proprement impossible de reprendre le contrôle de l'ordinateur.

on run
activate application "Mon application"
tell application "System Events"
tell application process "Mon application"
repeat
keystroke "c" using control down
delay 1​end repeat​end tell​end tell​end run







(1) Il faut que l'option "Activer l'accès pour les périphériques d'aide" soit sélectionnée dans le panneau "Accès universel" des Préférences Système.


----------



## zolive12 (9 Juin 2005)

bonjour... 
est il possible de faire le meme script pour faire un copier coller? genre "pomme A", "pomme C", "pomme V"   
J'ai plusieurs documents TextEdit dont je voudrai coller le contenu dans un seul tableaux excel... 
Sinon, est ce possible avec automator? j'ai pas trouvé, ou alors, je suis null...  
merci d'avance. 
Olivier.


----------



## lapinou85 (7 Juillet 2008)

Bonjour, j'ai réussi grâce à ce post à simuler l'appui sur une touche mais je voudrai maintenant rajouter 2 "fonctions" supplémentaires.

- Il faudrait que le script simule l'appui d'une touche au hasard parmi 4 (a, b, c, d)
- et il faudrait également que le delay soit un temps en secondes au hasard aussi.

Pour l'instant mon script ressemble à ça :

```
on run
    activate application "TextEdit"
    tell application "System Events"
        tell application process "TextEdit"
            repeat
                keystroke "a"
                delay 5
            end repeat
        end tell
    end tell
end run
```

Comment je peux faire ça ?

Je connais vraiment pas beaucoup et j'ai beaucoup de mal a trouver de la doc sur applescript, sur le site d'apple on me renvoi vers une page qui n'existe plus alors si vous avez un bon site ou je peux me renseigner 

Merci


----------



## ceslinstinct (7 Juillet 2008)

lapinou85 a dit:


> Bonjour, j'ai réussi grâce à ce post à simuler l'appui sur une touche mais je voudrai maintenant rajouter 2 "fonctions" supplémentaires.
> 
> - Il faudrait que le script simule l'appui d'une touche au hasard parmi 4 (a, b, c, d)
> - et il faudrait également que le delay soit un temps en secondes au hasard aussi.
> ...


Bonjour

Il faut savoir quelles commandes keystroke tu veut utiliser avec TextEdit?
Le temps maximum à utiliser?

@+


----------



## lapinou85 (7 Juillet 2008)

je veux qu'il me tape une lettre au hasard (a, b, c ou d) et pour le temps max, 45 secondes.

merci pour ta réponse si rapide


----------



## ceslinstinct (7 Juillet 2008)

lapinou85 a dit:


> je veux qu'il me tape une lettre au hasard (a, b, c ou d) et pour le temps max, 45 secondes.
> 
> merci pour ta réponse si rapide


Bonsoir

Une version pour comprendre le fonctionnement.

```
on run
	activate application "TextEdit"
	tell application "System Events"
		tell application process "TextEdit"
			repeat
				set commande_ to (random number from 1 to 4)
				set temps_ to (random number from 1 to 45)
				if commande_ is 1 then
					keystroke "a"
				else if commande_ is 2 then
					keystroke "b"
				else if commande_ is 3 then
					keystroke "c"
				else if commande_ is 4 then
					keystroke "d"
				end if
				delay temps_
			end repeat
		end tell
	end tell
end run
```

Ma version simplifié

```
on run
	set x to {"A", "B", "C", "D"}
	activate application "TextEdit"
	tell application "System Events"
		tell application process "TextEdit"
			repeat
				set car to item (random number from 1 to 4) of x as string
				keystroke car
				keystroke " " -- En option l'espace
				delay (random number from 1 to 45)
			end repeat
		end tell
	end tell
end run
```

Testé avec Leopard.

C'est ça que tu cherche?

@+


----------



## lapinou85 (7 Juillet 2008)

c'est parfait, ca marche impec !!! merci beaucoup !


----------



## ceslinstinct (7 Juillet 2008)

lapinou85 a dit:


> c'est parfait, ca marche impec !!! merci beaucoup !


Bonsoir

Content que tu es trouvé une solution à ton problème.

Apple publie ça sur internet et en Français sur AppleScript.

http://docs.info.apple.com/help/guide.html?path=AppleScript/2.1/fr/

@+


----------

