applescript problème script cache l'application

jannold2

Membre confirmé
11 Avril 2007
55
0
39
Bonjour
j'essaye désespérément d'imprimer une page web en pdf, mais je pense avoir à faire ici à un problème plus général.
je dis à safari clique sur le button menu "PDF" de ... de ...
seulement ça ne marche pas. Et une des raisons c'est que c'est pas safari qui est en premier plan mais mon script, et il a l'air de vouloir s'imprimer tout seul (la fenetre de la printer est attachée à la fenetre du script, pas à celle de safari)

mais malgré ça ça n'imprime pas le script non plus

voici le petit bout de code

Bloc de code:
tell application "Safari"
    make new document at end of documents
    set URL of the front document to "http://www.google.fr/"
    my p(front document, "toto.pdf")
    close the front document
end tell


on p(ledoc, theTitle)
    tell application "Safari"
        tell application "System Events"
            tell process "Safari"
                set foremost to true
                keystroke "p" using {command down}
                delay 1
                click menu button "PDF" of sheet 2
                click menu item "Save as PDF…" of menu 1 of menu button "PDF" of sheet 2
                keystroke "my_test.file"
                keystroke return
                delay 10
            end tell
        end tell
    end tell
end p

ça bloque à a ligne button "PDF" of sheet 2.
sachant donc que la fenetre 'imprimer' apparait sur le script et pas sur safari...
et que dans le menu tout en haut à gauche c'est bien le script et pas safari
j'ai essayé d'enregistrer le script en application, mais rien n'y fait

si vous pouviez m'aider... merci beaucoup d'avance,
Thomas
 
Bonjour
j'essaye désespérément d'imprimer une page web en pdf, mais je pense avoir à faire ici à un problème plus général.
je dis à safari clique sur le button menu "PDF" de ... de ...
seulement ça ne marche pas. Et une des raisons c'est que c'est pas safari qui est en premier plan mais mon script, et il a l'air de vouloir s'imprimer tout seul (la fenetre de la printer est attachée à la fenetre du script, pas à celle de safari)
Bonsoir

Tu as testé avec Activate pour passer en premier plan la fenêtre de Safari?

Bloc de code:
tell application "Safari"
	activate
	-- Ton code
end tell

@+
 
merci c'est effectivement ça qu'il faut faire pour ne pas que le script cache l'application !

par contre ça bloque encore. il ne trouve pas le bouton"PDF" of sheet 2 (il ne trouve pas la sheet en fait)
et meme sans "sheet 2" il ne trouve pas le bouton

comment accéder aux boutons d'un 'drawer' qui s'ouvre ?
merci
 
merci c'est effectivement ça qu'il faut faire pour ne pas que le script cache l'application !

par contre ça bloque encore. il ne trouve pas le bouton"PDF" of sheet 2 (il ne trouve pas la sheet en fait)
et meme sans "sheet 2" il ne trouve pas le bouton

comment accéder aux boutons d'un 'drawer' qui s'ouvre ?
merci

Tu as testé d'écrire les commandes en Français (des fois ça marche).

Un exemple (testé avec Léopard 10.5.8):

Ne marche pas chez moi.
Bloc de code:
tell application "Safari" to activate
tell application "System Events"
	tell process "Safari"
		click menu item "New Window" of menu "File" of menu bar 1
	end tell
end tell

Celui-ci fonctionne normalement (et pourtant c'est le même, mais en Français).
Bloc de code:
tell application "Safari" to activate
tell application "System Events"
	tell process "Safari"
		click menu item "Nouvelle fenêtre" of menu "Fichier" of menu bar 1
	end tell
end tell

@+
 
merci pour ta réponse
je commence à en avoir un peu marre de applescript, c'est fait pour gagner du temps et je ne trouve que tellement peu d'exemples que je perds un temps fou là dessus

j'ai laissé tomber le tout applescript, j'ai enregistré mes actions avec automator (qui les traduit bien sûr par click menu PDF, ... exactement comme moi sauf que lui ça marche
j'ai voulu lancer le workflow par applescript (pour qu'il fasse ça sur beaucoup d'URL) et ... ça ne lance rien, bien entendu.
j'ai enregistré le workflow en application et ça ne marche pas non plus (ex : je lance firefox, je vais sur un site, puis je double clique sur mon application automator qui est sensée cliquer sur l'icone du dock de firefox pour ensuite cliquer sur les menus. je vois la souris s'agiter mais firefox n'apparait même pas)

bref si quelqu'un pouvait me tendre le bras à nouveau... je suis au fond d'un gouffre là :)
merci
Thomas
 
J'ai enfin réussi à faire ça, en utilisant Automator
en fait une partie du problème est que mon doc se masque automatiquement, et quand j'enregistrais avec automator ça marchait, mais quand automator s'exécutait ça ne marchait plus... bizarre
Bloc de code:
set listeURL to g()
set l to every paragraph of listeURL
set n to length of l
repeat with i from 1 to 1
    set b to "http://" & item i of l
    do shell script "open -a Firefox " & b
    delay 5
    
    my r()
    delay 15
end repeat


on r()
    tell application "MacBook:Users:Thomas:Desktop:clic.app:Contents:MacOS:clic"
        launch
    end tell
end r

on g()
    return "google.fr
jannaud.free.fr
yahoo.com"
end g
par rapport à la solution que je faisais avant, c'est bizarre parce que automator enregistre exactement la même chose : command + P, clic sur PDF, clic sur Enregistrer sous PDF, ...
sauf que par Applescript ça ne marchait pas

je pense qu'il faut chercher du côté de "of sheet 2" ou "of window 1" ou autre chose, ça doit être au niveau de ça que ça bloque

j'ai mis le code et le code automator sur mon site blog :
http://jannaud.free.fr/lirearticle.php?id=95&maxi=20

pfiouu... ça fait du bien quand c'est fini :)
 
attaque de Wiener:

cassage bof...


il y avait simplement deux choses simples a annoncer:
si le grain est faible
et si inferieur a 256 PUTAIN DE BORDEL DE MERDE LA TAILLE DES CLEFS!!!!!!!!!!

bordel de merde il y a 2 facteurs....

bordel de merde il est ou le graph, nuage .... point qui montre la faiblesse


chose que je ne vois pas du tout:

je t'aurais 5/20 parce que je ne vois pas l'essentiel:

2 facteurs,
ET QUES CE QUE CETTE APPROCHE NOUS APPREND ET POURQUOI C'EST EN QUELQUE SORTE UNE FUMISTERIE


c'est confu....