Script d'appel de module externe

Scripts et tutoriels concernant les scripts
Règles du forum
Techniques pour gagner du temps ou automatiser des tâches
Répondre
Avatar du membre
fs999
entraideur expérimenté
entraideur expérimenté
Messages : 346
Enregistré le : sept. 2015
Sexe : Homme
Localisation : Luxembourg
OS : Windows 10
OS 64 bits : Oui
Version PSP : 2023 64 bits
Contact :

Script d'appel de module externe

Message par fs999 »

Bonjour,

J'ai créé un script qui ouvre un nouveau calque, puis j'appelle le module concerné.

Seulement si l'on clique sur abandon, le script demande si l'on veut continuer le script ou pas.

Je voudrais intercepter cela, donc sans message, et supprimer ce calque.

J'ai essayé de voir ce que renvois le module mais j'ai l'erreur de script : TypeError: cannot concatenate 'str' and 'NoneType' objects
.

Code : Tout sélectionner

from PSPApp import *
import PSPUtils

def ScriptProperties():
    return {
        'Author': u'F. Schneider',
        'Copyright': u'\u00A9 2013-19 by F. Schneider',
        'Description': u'Adjust 5.2',
        'Host': u'PaintShop Pro',
        'Host Version': u'16.00'
        }



def Do(Environment):
    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default,
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((15,0,0),1)
                }
            })

    # LayerDuplicate
    App.Do( Environment, 'LayerDuplicate', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default,
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((17,0,0),1)
                }
            })

    # Propriétés de calque
    App.Do( Environment, 'LayerProperties', {
            'General': {
                'Opacity': None,
                'Name': u'Topaz Adjust',
                'IsVisible': None,
                'IsTransparencyLocked': None,
                'LinkSet': None,
                'UseHighlight': None,
                'PaletteHighlightColor': None,
                'GroupLink': None,
                'BlendMode': None
                },
            'BlendRanges': None,
            'Path': (0,0,[],False),
            'ArtMediaTexture': None,
            'Effects': None,
            'BrightnessContrast': None,
            'ChannelMixer': None,
            'ColorBalance': None,
            'CurveParams': None,
            'HSL': None,
            'Threshold': None,
            'Levels': None,
            'Posterize': None,
            'Vibrancy': None,
            'Overlay': None,
            'LocalToneMapping': None,
            'Invert': None,
            'HistogramAdjustment': None,
            'FillLightClarity': None,
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent,
                'AutoActionMode': App.Constants.AutoActionMode.Default,
                'Version': ((18,0,0),1)
                }
            })

    # Topaz Labs_Topaz Adjust 5
    res = App.Do( Environment, 'Topaz Labs_Topaz Adjust 5', {
               'GeneralSettings': {
                  'ExecutionMode': App.Constants.ExecutionMode.Interactive,
                  'Version': ((15,0,0),1)
                  }
              })

    if res == App.Constants.Boolean.false:
      # DeleteLayer
      App.Do( Environment, 'DeleteLayer', {
              'Path': None,
              'MergeMask': True,
              'WorkingMode': 1,
              'GeneralSettings': {
                  'ExecutionMode': App.Constants.ExecutionMode.Silent,
                  'AutoActionMode': App.Constants.AutoActionMode.Match,
                  'Version': ((21,0,0),1)
                  }
              })
Je ne sais pas si on peut intercepter un abandon...

Frédéric
Avatar du membre
spitfrog
entraideur amiral
entraideur amiral
Messages : 3705
Enregistré le : juil. 2015
Sexe : Homme
Localisation : Normandie
OS : Windows 10
OS 64 bits : Oui
Version PSP : X4

Re: Script d'appel de module externe

Message par spitfrog »

Salut Frédéric,
J'ai vu ton intervention sur le forum Corel et la réponse de LeviFiction.
Je vais peut-être dire une bêtise, mais les nouvelles versions de PaintShop Pro ne peuvent-elles pas lancer plusieurs scripts à la suite ?
Dans ce cas, pourquoi ne faire la partie qui vient après l'appel du plugin Topaz dans un second script, comme ça, quoiqu'il se produise dans le premier, il se termine, le second se lance et vérifie si un calque existe et s'il est vide, puis le supprime si c'est vrai.
Avatar du membre
fs999
entraideur expérimenté
entraideur expérimenté
Messages : 346
Enregistré le : sept. 2015
Sexe : Homme
Localisation : Luxembourg
OS : Windows 10
OS 64 bits : Oui
Version PSP : 2023 64 bits
Contact :

Re: Script d'appel de module externe

Message par fs999 »

Salut,
Mais si tu abandonne le second script n'est pas exécuté, donc le calque reste...
Je n'ai pas encore eu le temps de me pencher sur la solution de LeviFiction.
Mais je te dirai si ça marche...
Avatar du membre
spitfrog
entraideur amiral
entraideur amiral
Messages : 3705
Enregistré le : juil. 2015
Sexe : Homme
Localisation : Normandie
OS : Windows 10
OS 64 bits : Oui
Version PSP : X4

Re: Script d'appel de module externe

Message par spitfrog »

fs999 a écrit : 03 sept. 2019, 14:49 Mais si tu abandonnes le second script n'est pas exécuté, donc le calque reste...
On parle bien de fichier > traitement groupé ?
et si tu "casses" le premier de la liste, les autres ne s'exécutent pas ? Ce n'est pas très normal comme comportement, il faudrait demander à Corel de prévoir une option du genre "En cas d'échec d'un script, continuer l'exécution des autres scripts : oui non"
Je ne crois pas que tu l'aies expliqué, mais pourquoi sors-tu du script ? L’application de l'effet Topaz est trop long ?
Avatar du membre
fs999
entraideur expérimenté
entraideur expérimenté
Messages : 346
Enregistré le : sept. 2015
Sexe : Homme
Localisation : Luxembourg
OS : Windows 10
OS 64 bits : Oui
Version PSP : 2023 64 bits
Contact :

Re: Script d'appel de module externe

Message par fs999 »

spitfrog a écrit : 04 sept. 2019, 22:00 Je ne crois pas que tu l'aies expliqué, mais pourquoi sors-tu du script ? L’application de l'effet Topaz est trop long ?
Non mais parfois je change d'avis ou j'ai cliqué sur le mauvais module :lol:
Répondre