Page 1 sur 1

Script d'appel de module externe

Posté : 29 juil. 2019, 16:43
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

Re: Script d'appel de module externe

Posté : 27 août 2019, 14:03
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 PSP 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.

Re: Script d'appel de module externe

Posté : 03 sept. 2019, 14:49
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...

Re: Script d'appel de module externe

Posté : 04 sept. 2019, 22:00
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 ?

Re: Script d'appel de module externe

Posté : 06 sept. 2019, 20:30
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: