Erreur de script sous 2K
j'utilise dans un de nos programmes
une fonction d'impression avec IQ
qui genere une erreur sous W2000.
le probleme est le meme avec l'un de vos exemples (sauf 98 et NT).
il suffit d'executer un script dans le fichier IQ/examples\working with IQ-script/working with 2D graph
pour voir apparaitre le message d'erreur ci joint.
Existe t il un correctif ou une parade?
Attachments:
MSG_erreur_IQ.bmp 50 KB
Bonjour,
C'est un problème de droits sur les fichiers installés. Je vous laisse découvrir la note d'application à ce sujet...
http://digital.ni.com/public.nsf/websearch/5300AA5B93A4CC9C86256E360000E955?OpenDocument
Cordialement
Similar Messages
-
Erreurs incompréhensible sous indesign cs 6
Bonjour à tous,
je viens de finir un doc sous indesign cs6 qui est destné à être imprimé. J'ai donc bien fait attention à passer toutes mes photos en CMJN et n'utiliser que ce mode colorimétrique. Mais avant de faire l'assemblage je me rends compte qu'il me trouve prêt d'une centaines d'erreurs en me faisant remarquer que j'utilise du RVB un peu partout !
Alors, je vérifie et je revérifie sur bridge et sur photoshop mais je suis certain de moi, les photos sont bien en CMJN ! la preuve :
Et ben pour celle là (comme pour les autres) monsieur indesign me dit : "problème : fond utilise RVB"
Quelqu'un aurait une idée ?"Cette alerte ne signifie pas que tu utilises des images RVB importées, mais que les fonds des blocs image utilisent une couleur RVB."
[…] comment se fait-il que le fond ne soit pas modifié ? Ou alors ça vient de la couleur de ma page sous indesign ...
De quel fonds parles-tu ? Moi, je te parle des fonds de blocs créés dans InDesign. Rien ne t'empêche, même si ça n'a aucun intérêt, d'importer des images CMJN dans un bloc image dont le fond est en RVB.
Alors là j'apprends un truc ! Je pensais pas que le passage en PDF offset avec les paramétres qui vont bien pouvait modifier le mode colorimétrique de l'ensemble du document
Mais oui ! C'est ce qu'on appelle un flux RVB. De cette manière, tu n'as pas à convertir individuellement chaque image, et surtout, ça permet de convertir au final vers le bon profil, correspondant à tes conditions d'impression.
Ceci dit on peut avoir des surprises avec les modifications de couleur et de nuances post impression d'où l'intéret d'avoir une prévisualisation en quadri.
InDesign te permet une prévisualisation CMJN du fichier, même si les imports sont en RVB (menu Affichage > Format d'épreuve)
Et comme je suis sur un document de 60 pages je devrais surement fournir un fichier natif avec les liens.
Pourquoi ? Pour faire faire des corrections de chromie sur les images ? Là, oui, effectivement.
"D'autre part, tu fais imprimer ce document en Amérique du nord ? Parce que le profil colorimétrique de l'image que tu nous montres en exemple ne correspond pas à des conditions d'impression européennes."
Bon ben j'apprends encore un truc ! A quoi tu vois ça
Je le vois en regardant ta capture d'écran de Bridge qui affiche Profil colorimétrique : Coated Fogra 27. Oups, en me relisant, je m'aperçois que j'ai écrit n'importe quoi ! C'est bien un profil européen que tu utilises, mais néanmoins pas le meilleur, car son taux d'encrage est trop élevé. Si tu ne connais pas le profil qui sera utilisé par ton imprimeur, je te suggère d'utiliser le ISO Coated V2 300 % que tu peux trouver sur le site de l'European Color Intiative
qu'est ce qu'il faudrait que je modifie ?
Si tu disposes d'une version RVB de tes images, tu as tout intérêt à les utiliser dans ta compo InDesign. Sinon, c'est trop tard… Enfin, une conversion d'un profil CMJN vers un autre profil CMJN est une opération un peu délicate. -
Erreur google maps api V3 onion.js
Bonjour,
Voila mon projet est d'afficher google maps dans un web browser dans labview apres des recherche sur intenet j'ai trouver des solutions. il y a donc un fichier HTML qui appelle google maps api et un javascript avec les fonctions.
Bref j'ai reussi a faire marcher mon application tout fonctionné tres bien l'itineraire, l'ajout et la suppression de marker etc...
Pour afficher google maps j'ai donc utiliser un webbrowser dans labview que j'ai creer avec un objet .NET containers dans lequel j'ai ajouter un .NET control qui est "System.windows.forms 4.0.0" et j'ai utiliser le control webbrowser.
Donc tout ceci marcher pour le mieux jusque hier. lors de l'appelle du fichier HTML j'ai un erreur de script.... SAUF que suprise ce script ne vien pas de moi et du coup la map de s'affiche plus dans le webbrowser. L'erreur parle de la propriete display dans l'url "https://maps.gstatic.com/maps-api-v3/api/js/20/0/intl/fr_ALL/onion.js"
je vous joint le code d'erreur ainsi que mon code qui charge mon fichier html
Pouvez vous donc m'aider a trouver comment resoudre cette erreur ou encore si quelqu'un la deja eu...
Merci
Cordialement Florian
Pièces jointes :
erreur_onionjs.PNG 13 KB
code_webbrowser.PNG 22 KBBonjour Florian,
De la lecture de ta problématique je n'ai pas vraiment l'impression que l'erreur est provoquée par LabVIEW. Peux-tu tester ton exemple dans un autre environnement de programmation et voir si cela ne reproduit pas l'erreur? J'imagine que tu as du partir d'un exemple d'un autre langage avant de créer ton programme sous LabVIEW en utilisant les containers .NET?
Bonne journée,
M-Junior -
ENREGISTREMENT PDF sous PHOTOSHOP CC
Bonjour,
voilà avant sur PHOTOSHOP CS6 j'avais un script pour enregistrer directement mon doc en PDF.
Je l'ai migré sur CC mais là problème lors de l'ouverture du PDF sous ACROBAT PRO.
Acrobat Pro m'indique le message "Mémoire insuffisante" mais si je l'ouvre dans aperçu sous mac nickel.
Lorsque j'envoi le fichier à mon client idem pour lui.
J'ai refait le script sous CC entièrement mais idem. Je paume mon latin.
Auriez vous une idée sur ce problème ?
Merci bien.Bonjour Patrice,
Je ne connais pas le plugin mais comme pour tous les autres plugins, c'est vers le support l’éditeur du plugin que tu dois te tourner pour être certain que tu disposes de la dernière mise à jour compatible avec ton OS et la CC2014.
Si le plugin comporte un installateur, par expérience, il vaut mieux l'utiliser plutôt que d'installer manuellement le plugin dans le dossier des Plug-ins.Photoshop.
Bon Week-end.
Andres -
Erreur lors de la création de l'application
Bonjour à tous,
j'ai un petit soucis.
j'ai corrigé un programme, qui a été développé sous Labview 2011 avec labview 2012.
Au moment de re-créer mon application, j'ai un message d'erreur ( voir image jointe).
j'ai donc enlever mes corrections, et re-essayer, mais j'ai toujours la même erreur.
je suis sous Window XP.
Quelqu'un peut-il m'aider ?
Par avance merci
Résolu !
Accéder à la solution.
Pièces jointes :
Pb_application.JPG 85 KBre
Si tu as activé le serveur ActiveX : ton application est serveur activeX
Mais ton exe peut très bien piloter via activeX d'autres serveurs, sans être elle-même serveur. Donc cocher cette option, juste parceque tu pilotes des logiciels en ActiveX est une erreur.
Donc la configuration du builder est (pour moi) juste.
Enable ActiveX server—(Windows) Enables the ActiveX server so the application can respond to requests from ActiveX clients. The functionality of the ActiveX server in the application is a subset of the LabVIEW ActiveX server. When you build an application myapp.exe, Application Builder also creates an ActiveX type library myapp.tlb. The type library defines an application class and a virtual instrument class and exports both Application properties and methods and VI properties and methods. When you distribute the application, include the type library with the executable file. The name of the application that you enter in the ActiveX server name text box uniquely identifies the application in the system registry. After you build the application, run it at least once to enable registry with the system. After the application is registered, ActiveX clients access the server objects using progIDs. For example, if the ActiveX server name is myapp, clients instantiate an application object using the progID myapp.application. If you are packaging the application into an installer build specification, place a checkmark in the Register COM checkbox for the application file on the Source File Settings page of the Installer Propertiesdialog box so the installer registers the ActiveX server.
Note If you enable the ActiveX server, you must save the application build specification after you build the application for the first time.
ActiveX server name—(Windows) Specifies the prefix of the progID for the application. This text box is enabled when you place a checkmark in the Enable ActiveX server checkbox.
Luc Desruelle | Voir mon profil | LabVIEW Code & blog
Co-auteur livre LabVIEW : Programmation et applications
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW -
Slanted rectangle behind text - any chance to automate the process?
Hi there,
I would like to create effect which you can see on this image:
The black and orange rectangles behind the capitals. The source which is pictured above comes from professional studio. They put separate rectangle behind the textframe:
Imagine, that you create a catalog of 500 products. Each product has one black and one color rectangle. There are 20 different color codes for the bottom rectangle (these rectangles vary a bit in length, depending on the size of the text above). I feel putting a square object to the bottom layer like a bit clumsy approach. It is like creating paragraph dividers by Line Tool. Could you recommend some more tidier way for this? I am almost sure, that I will put a thousand of those rectangles to the layout and the client will decide ( a day before print), that "the reversed skew would look more professional"…
The best way for this would be a Paragraph rule, but — what a surprise — no chance to skew the ends.
I tried to create the new stroke preset, but no skew options.
I also skewed the line manually and try to create the Object Style from it. The skew was not inherited by the new Object Style.
Do I really do this manually in the age of spaceflights, cellphones and even electric tea kettles?
Thank you!Hi all,
Marc Autret has confirmed me his OK to unveil this great code.
AjustementMagique.jsx permits a horizontal "scaling", in particular for tables. It works fine with ID CS4 (a very little bug sometimes). Not tested with CS5.
But ... it does not work under ID CS6, CC and CC 2014!
Marc gives his blessing to the heroes who would wish to do the update!
Enjoy!
/* AjustementMagique pour InDesign CS / CS2 -- 18/01/06 */
/* version 2.1b (FR) -- auteur: Marc Autret */
/* Explications : http://marcautret.free.fr/geek/indd/magicfit/ */
/* Installation et Utilisation: */
/* 0) !! Pour InDesign CS2 seulement !! */
/* Renommez le present fichier avec l'extension .jsx */
/* (afin d'activer les fonctions extend script) */
/* 1) Placer le present fichier dans le sous-dossier */
/* Presets/Scripts/ de l'application InDesign */
/* 2) Lancer InDesign, ouvrir un document et selectionner */
/* le(s) elements(s) a ajuster: bloc(s), colonnes(s) */
/* [a defaut, le script ajuste le conteneur du pt d'insertion] */
/* 3) Executer le script par Fenetre>Scripts>Scripts */
/* suivi d'un double-clic sur AjustementMagique.js */
/* (ou affecter au script un raccourci-clavier via */
/* Edition>Raccourcis-clavier>Zone:"scripts") */
/* 4) Un second appel du script sous un delai de 2 secondes */
/* optimise si c'est possible l'ajustement (mode "fluide") */
/* Feedbacks : [email protected] */
// REGLAGES
var LATENCE = 2; // en secondes (defaut: 2)
var PRECISION = 0.5; // en points (defaut:0.5)
var APP_INT_VERSION = parseInt(app.version);
// UTILITAIRES
/*void*/ function exitMessage(/*exception*/ ex)
alert("Erreur:\n" + ex.toString());
exit();
// METHODES DE LA CLASSE DOCUMENT
/*void*/ Document.prototype.setUnitsTo = function(/*units*/ newUnits)
// units est soit une valeur simple (horiz=vert), soit un array(horizUnits, vertUnits)
var arrUnits = (newUnits.length) ? newUnits : new Array(newUnits,newUnits);
this.viewPreferences.horizontalMeasurementUnits = arrUnits[0];
this.viewPreferences.verticalMeasurementUnits = arrUnits[1];
/*arr2*/ Document.prototype.getUnits = function()
return(Array(
this.viewPreferences.horizontalMeasurementUnits,
this.viewPreferences.verticalMeasurementUnits));
/*bool*/ Document.prototype.withinDelay = function()
if (this.label)
return( (Date.parse(Date())-this.label) <= LATENCE*1000 );
return(false);
/*void*/ Document.prototype.storeTimeStamp = function()
this.label = Date.parse(Date()).toString();
// METHODES GENERIQUES (NIVEAU OBJECT)
/*arr*/ Object.prototype.asObjsToFit = function()
// Retourne le(s) "conteneur(s) ajustable(s)" associe(s) a THIS
// Type de retour: array OU collection
// NULL en cas d'echec
switch(this.constructor.name)
case "TextFrame" : // textframe -> singleton this
return(Array(this));
case "Cell" : // cells -> parent columns
var r = new Array();
// !! [CS1] Cell::parentColumn === Cell !!
// !! [CS2] Cell::parentColumn === Column !!
// !! [CS2] Cells::lastItem().parentColumn BUG !!
var c0 = this.cells.firstItem().name.split(":")[0];
var c1 = this.cells.lastItem().name.split(":")[0];
for (var i=c0 ; i<=c1; i++)
r.push(this.parent.columns[i]);
return(r);
case "Table" /*CS2*/ : // table -> columns
return(this.columns);
case "Group" : // group -> textFrames
return((this.textFrames.length>0) ? this.textFrames : null);
case "Text" : // Text ou InsertionPoint
case "InsertionPoint" : // -> travailler sur le conteneur
var textContainer = this.getTextContainer();
return((textContainer) ? textContainer.asObjsToFit() : null);
default:
return(null);
/*obj*/ Object.prototype.getTextContainer = function()
// Renvoie le TextFrame ou la cellule (Cell) contenant THIS
// (Text ou InsertionPoint)
// NULL si echec
try { // try...catch because of CS2 behaviour
if (this.parent.constructor.name == "Cell")
return(this.parent);
if (this.parentTextFrames) // pluriel sous CS2
return(this.parentTextFrames[0]);
if (this.parentTextFrame) // sing. sous CS1
return(this.parentTextFrame);
return(null);
catch(ex) {return(null);}
/*int*/ Object.prototype.computeIncludedObjectsWidth = function()
// Analyse les objets incorpores (tables, PageItems) pour extraire
// la largeur maxi qu'ils occupent
// Le tableau objsNames peut etre etendu pourvu que
// l'objet ajoute fournisse une methode computeWidth()
var objsNames = new Array("pageItems","tables");
var objsWidth = 0;
var w = 0;
for (var j=objsNames.length-1 ; j>=0 ; j--)
for (var i=this[objsNames[j]].length-1 ; i>=0 ; i--)
try
{w = this[objsNames[j]][i].computeWidth({VISIBLE:true});}
catch(ex)
{w=0;}
if (w > objsWidth) objsWidth=w;
return(objsWidth);
/*int*/ Object.prototype.computeWidth = function(/*bool*/ VISIBLE)
// Methode generique pour les composants possedant des Bounds
// VISIBLE true -> largeur EXTERNE
// VISIBLE false -> largeur INTERNE
if (VISIBLE)
if (this.visibleBounds)
return(this.visibleBounds[3]-this.visibleBounds[1]);
else
if (this.geometricBounds)
return(this.geometricBounds[3]-this.geometricBounds[1]);
return(0);
/*int*/ Table.prototype.computeWidth = function()
// Specialise Object::computeWidth dans le cas d'une Table
return(this.width);
/*arr*/ Object.prototype.createLinesSizesArray = function()
// Renvoie sous forme de tabeau la taille (en cars) des lignes de THIS
// Tableau vide si this.lines==NULL OU this.lines.length==0
r = new Array();
if (this.lines)
for (var i=this.lines.length-1; i>=0 ; i--)
r.unshift(this.lines[i].characters.length);
return(r);
/*bool*/ Object.prototype.isoceleLines = function(/*arr*/ arrSizes)
// Indique si THIS.lines[i].characters.length == arrSizes[i] pour tout i
if (this.lines.length != arrSizes.length) return(false);
for (var i=arrSizes.length-1 ; i>=0 ; i--)
if (arrSizes[i] != this.lines[i].characters.length)
return(false);
return(true);
// METHODES SPECIFIQUES A TEXTFRAME
/*bool*/ TextFrame.prototype.isEmpty = function()
return(this.characters.length==0);
/*bool*/ TextFrame.prototype.isOverflowed = function()
return(this.overflows);
/*int*/ TextFrame.prototype.getWidth = function()
return(this.computeWidth({VISIBLE:false}));
/*void*/ TextFrame.prototype.resizeWidthBy = function(/*int*/ widthOffset)
// Redimensionne la largeur de widthOffset (signe)
this.geometricBounds = Array(
this.geometricBounds[0],
this.geometricBounds[1],
this.geometricBounds[2],
this.geometricBounds[3] + widthOffset);
/*int*/ TextFrame.prototype.computeMinWidth = function()
// Renvoie la largeur mini du bloc compte tenu des objets
// incorpores et de l'espacement interne (inner space)
var inSpace = this.textFramePreferences.insetSpacing;
var inWidth = (inSpace.length) ?
inSpace[1] + inSpace[3] : // inspace gauche et droit distincts
2*inSpace; // inspace uniforme
return(this.computeIncludedObjectsWidth() + inWidth);
/*int*/ TextFrame.prototype.getCharsCount = function()
return(this.characters.length);
/*int*/ TextFrame.prototype.getLinesCount = function()
return(this.lines.length);
/*arr*/ TextFrame.prototype.getLinesSizes = function()
return(this.createLinesSizesArray());
/*int*/ TextFrame.prototype.preserveCharsCount = function(/*int*/ charsCount)
// OUI -> -1 , NON -> 1
return( (this.characters.length != charsCount) ? 1 : -1 );
/*int*/ TextFrame.prototype.preserveLinesCount = function(/*int*/ linesCount)
// Indique si:
// - nb de chars = linesCount
// - le bloc NE DEBORDE PAS
// OUI -> -1 , NON -> 1
return( ((this.overflows) || (this.lines.length != linesCount)) ? 1 : -1 );
/*int*/ TextFrame.prototype.preserveLinesSizes = function(/*arr*/ linesSizes)
// Indique si:
// chaque ligne x est isocele a linesSizes[x]
// YES -> -1 , NOT -> 1
return( (this.isoceleLines(linesSizes)) ? -1 : 1 );
// METHODES SPECIFIQUES A COLUMN
/*bool*/ Column.prototype.isEmpty = function()
for (var i=this.cells.length-1; i>=0 ; i--)
if (this.cells[i].characters.length>0) return(false);
return(true);
/*bool*/ Column.prototype.isOverflowed = function()
// Indique si au moins une cellule est saturee
// !! ATTENTION: Column::overflows n'est pas fiable !!
for (var i=this.cells.length-1 ; i>= 0 ; i--)
if (this.cells[i].overflows) return(true);
return(false);
/*int*/ Column.prototype.getWidth = function()
return(this.width);
/*void*/ Column.prototype.resizeWidthBy = function(/*int*/ widthOffset)
// Redimensionne la largeur de colonne de widthOffset (signe)
// !! Il faut RAFRAICHIR l'affichage !!
this.width += widthOffset;
// rafraichissement
if (APP_INT_VERSION > 3)
// CS2+
this.recompose();
else
// CS -- merci a Tilo pour ce hack --
for(var i = this.cells.length - 1 ; i >= 0 ; i-- )
// Ce test stupide provoque le rafraichissement!
if (this.cells[i].contents == null) {}
/*int*/ Column.prototype.computeMinWidth = function()
// Renvoie la largeur mini de la colonne compte tenu des
// objets incorpores et de l'espacement interne
var iCell = null;
var w = 0;
var r = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
iCell = this.cells[i];
w = iCell.computeIncludedObjectsWidth() +
iCell.leftInset + iCell.rightInset;
if (w > r) r = w;
return(r);
/*arr*/ Column.prototype.getCharsCount = function()
// Renvoie (tableau) le nb de cars de chaque cellule
// si la cellule est saturee, le nb de cars est signe negativement
var r = new Array();
var sgn = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
sgn = (this.cells[i].overflows) ? -1 : 1;
r.unshift(sgn * this.cells[i].characters.length);
return(r);
/*arr*/ Column.prototype.getLinesCount = function()
// Renvoie (tableau) le nb de lignes par cellules
var r = new Array();
for (var i=this.cells.length-1 ; i>= 0 ; i--)
r.unshift(this.cells[i].lines.length);
return(r);
/*bi-arr*/ Column.prototype.getLinesSizes = function()
// Renvoie le nb de chars par cellule et par ligne (matrice)
var r = new Array();
for (var i=this.cells.length-1 ; i>= 0 ; i--)
r.unshift(this.cells[i].createLinesSizesArray());
return(r);
/*int*/ Column.prototype.preserveCharsCount = function(/*arr*/ charsCount)
// Indique si:
// le signe de debordement (overflow) de la cellule X egale sgn(charsCount[X])
// OUI -> -1 , NON -> 1
var sgn = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
sgn = (this.cells[i].overflows) ? -1 : 1;
if (sgn * charsCount[i] < 0) return(1);
return(-1);
/*int*/ Column.prototype.preserveLinesCount = function(/*arr*/ linesCount)
// Indique si:
// - le compte de lignes de la cellule x egale linesCount[x]
// - aucune cellule ne deborde
// OUI -> -1 , NON -> 1
for (var i=this.cells.length-1 ; i>= 0 ; i--)
if (this.cells[i].overflows) return(1);
if (this.cells[i].lines.length != linesCount[i]) return(1);
return(-1);
/*int*/ Column.prototype.preserveLinesSizes = function(/*bi-arr*/ linesSizes)
// Indique si:
// - dans chaque cellule x, chaque LIGNE y est isocele a linesSizes[x][y]
// (si une cellule deborde, renvoie 1)
// OUI -> -1 , NON -> 1
for (var i=this.cells.length-1 ; i>= 0 ; i--)
if (this.cells[i].overflows) return(1);
if (this.cells[i].isoceleLines(linesSizes[i]) == false) return(1);
return(-1);
// METHODES CENTRALES
/*void*/ Object.prototype.manageFit = function(/*bool*/ FLUIDFITTING)
// !! Sous CS2, previent un crash sur les "grosses" selections multicolonnes !!
// !! Thx to Tilo for this hack --
if (APP_INT_VERSION>=4)
$.gc();
// ne rien faire si objet vide
if (this.isEmpty()) return;
// largeur mini a preserver
var minWidth = this.computeMinWidth();
// let's go!
this.processFit(FLUIDFITTING, minWidth);
/*void*/ Object.prototype.processFit = function(/*bool*/ FLUIDFITTING, /*int*/ minWidth)
// Ajuste cet objet en largeur
// FLUIDFITTING true -> methode fluide, sinon: methode stricte
// minWidth fixe le seuil minimal
if (FLUIDFITTING)
{ // AJUSTEMENT FLUIDE
if (this.isOverflowed())
{ // NB : les cellules saturees sont "transparentes" (negligees)
var charsCount = this.getCharsCount();
var evalFlag = function(thisObj)
{return(thisObj.preserveCharsCount(charsCount));}
else
var linesCount = this.getLinesCount();
evalFlag = function(thisObj)
{return(thisObj.preserveLinesCount(linesCount));}
else
{ // AJUSTEMENT STRICT
// NB : les colonnes contenant 1 cellule saturee sont inchangees
if ((this.constructor.name=="Column") && (this.isOverflowed()))
return;
var linesSizes = this.getLinesSizes();
var evalFlag = function(thisObj)
{return(thisObj.preserveLinesSizes(linesSizes));}
// BOUCLE DICHOTOMIQUE
var sgnFLAG = -1;
var w = ( this.getWidth() - minWidth ) / 2;
while (w >= PRECISION)
// redim la largeur de +/- w
this.resizeWidthBy(sgnFLAG*w);
// +1 = augmenter | -1 = reduire
sgnFLAG = evalFlag(this);
// diviser le segment
w = w/2;
// sortie avec sgnFLAG==+1 -> annuler la derniere reduction -> +2w
if (sgnFLAG>0) this.resizeWidthBy(2*w);
// PROGRAMME PRINCIPAL
if ( app.documents.length > 0 )
if ( app.activeWindow.selection.length > 0 )
try {
var thisDoc = app.activeDocument;
var FLUIDFLAG = thisDoc.withinDelay();
var memUnits = thisDoc.getUnits();
thisDoc.setUnitsTo(MeasurementUnits.points);
var selObjs = app.activeWindow.selection;
var objsToFit = null;
for (var i=selObjs.length-1 ; i>=0 ; i--)
objsToFit = selObjs[i].asObjsToFit();
if (objsToFit)
for (var j=objsToFit.length-1 ; j>=0 ; j--)
objsToFit[j].manageFit(FLUIDFLAG);
thisDoc.setUnitsTo(memUnits);
thisDoc.storeTimeStamp();
catch(ex)
thisDoc.setUnitsTo(memUnits);
exitMessage(ex);
else
alert("Aucun objet n'est selectionne!");
else
alert("Aucun document n'est ouvert!"); -
Hi,
I have problems when printing the result of processing XML with an XSL that contains locale specific chars.
Here is a sample:
XML :
<?xml version="1.0" encoding="ISO-8859-1"?>
<ListePatients>
<Patient>
<Nom>Zeublouse</Nom>
<NomMarital/>
<Prinom>Agathe</Prinom>
</Patient>
<Patient>
<Nom>Stick</Nom>
<NomMarital>Laiboul</NomMarital>
<Prinom>Ella</Prinom>
</Patient>
<Patient>
<Nom>`ihnotvy</Nom>
<NomMarital/>
<Prinom>Jacques</Prinom>
</Patient>
</ListePatients>
XSL :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
<xsl:template match="/">
<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
<TITLE>Liste de patients</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select='ListePatients'/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='ListePatients'>
<TABLE>
<xsl:for-each select='Patient'>
<xsl:sort select='Nom' order='ascending' data-type='text'/>
<TR TITLE='`ihnotvy'>
<TD> <xsl:value-of select='Nom'/> </TD>
<TD> <xsl:value-of select='NomMarital'/> </TD>
<TD> <xsl:value-of select='Prinom'/> </TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
Test program (from Oracle sample) :
import java.net.URL;
import java.io.*;
import oracle.xml.parser.v2.DOMParser;
import oracle.xml.parser.v2.XMLDocument;
import oracle.xml.parser.v2.XMLDocumentFragment;
import oracle.xml.parser.v2.XSLStylesheet;
import oracle.xml.parser.v2.XSLProcessor;
public class XSLSampleOTN
* Transforms an xml document using a stylesheet
* @param args input xml and xml documents
public static void main (String args[]) throws Exception
DOMParser parser;
XMLDocument xmldoc, xsldoc, out;
URL xslURL;
URL xmlURL;
try
if (args.length != 2)
// Must pass in the names of the XSL and XML files
System.err.println("Usage: java XSLSampleOTN xslfile xmlfile");
System.exit(1);
// Parse xsl and xml documents
parser = new DOMParser();
parser.setPreserveWhitespace(true);
// parser input XSL file
xslURL = DemoUtil.createURL(args[0]);
parser.parse(xslURL);
xsldoc = parser.getDocument();
// parser input XML file
xmlURL = DemoUtil.createURL(args[1]);
parser.parse(xmlURL);
xmldoc = parser.getDocument();
// instantiate a stylesheet
XSLStylesheet xslSS = new XSLStylesheet(xsldoc, xslURL);
XSLProcessor processor = new XSLProcessor();
// display any warnings that may occur
processor.showWarnings(true);
processor.setErrorStream(System.err);
// Process XSL
XMLDocumentFragment result = processor.processXSL(xslSS, xmldoc);
// print the transformed document
result.print(System.out);
// an other way to print, it doesn't print the same !!!!
processor.processXSL(xslSS, xmldoc, System.out);
catch (Exception e)
e.printStackTrace();
When printing the transformed document with DocumentFragment.print() it work fine but when using processXSL(xslSS, xmldoc, System.out) it don't works for locale specific chars and a second <META> balise appears, Why ?
with DocumentFragment.print(), it's Ok :
<HTML>
<HEAD>
<META http-equiv="Content-Type"
content="text/html; charset=iso-8859-1"/>
<TITLE>Liste de patients</TITLE>
</HEAD>
<BODY>
<TABLE>
<TR TITLE="`ihnotvy">
<TD>`ihnotvy</TD>
<TD/>
<TD>Jacques</TD>
</TR >
<TR TITLE="`ihnotvy">
<TD>Stick</TD>
<TD>Laiboul</TD>
<TD>Ella</TD>
</TR>
<TR TITLE="`ihnotvy">
<TD>Zeublouse
</TD>
<TD/>
<TD>Agathe</TD>
</TR>
</TABLE>
</BODY>
</HTML>
With processXSL(xslSS, xmldoc, System.out), it's not Ok :
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html">
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Liste de patients</TITLE>
</HEAD>
<BODY>
<TABLE>
<TR TITLE="C C)C(C.C/C4C6C9">
<TD>C C)C(C.C/C4C6C9</TD>
<TD></TD>
<TD>Jacques</TD>
</TR>
<TR TITLE="C C)C(C.C/C4C6C9">
<TD>Stick</TD>
<TD>Laiboul</TD>
<TD>Ella</TD>
</TR>
<TR TITLE="C C)C(C.C/C4C6C9">
<TD>Zeublouse</TD>
<TD></TD>
<TD>Agathe</TD>
</TR>
</TABLE>
</BODY>
</HTML>
TIA
Didier
nullTwo other problems with XSL and print:
first one :
XSL :
<SCRIPT langage="Javascript" type="text/javascript" src="scripts/erreur.js"></SCRIPT>
DocumentFragment.print() produce :
<SCRIPT langage="Javascript" type="text/javascript" src="scripts/erreur.js"/>
=> IE5.5 don't load the file !!, it required syntaxe like <SCRIPT ...></SCRIPT> to load.
the second one :
XSL:
<TD><IMG src="images/menuleft.gif"/></TD>
DocumentFragment.print() produce :
<TD>
<IMG src="images/menuleft.gif">
</TD>
processXSL(xslSS, xmldoc, System.out) produce :
<TD><IMG src="images/menuleft.gif">
</TD>
Why a cariage return ?? it cause prisentation failure when you want to specifie the size off the cell !!
TIA
Didier
null -
[JS] app.menuActions on XMLElement
Hi,
I'm trying to apply italics using xml rules and this method : http://forums.adobe.com/thread/744713
function Italique() {
this.name = "Italique";
this.xpath = "//hi[@rend='italic']";
this.apply = function(myElement, myRuleProcessor){
with(myElement){
app.select(myElement);
app.menuActions.itemByID(119611).invoke();
return true;
myElement is an XMLElement who contains exactly what I want but at :
app.menuActions.itemByID(119611).invoke();
a javascript error occurs : n° 54 at line 78 of the "glue code.jsx" file.
"Exception Javascript non interceptée : Erreur : Le script n'est pas activé"
In English : the script isn't activated.
I don't know what to do.
Help me please!Hi,
I figured it out by myself : I wasn't selecting the good object.
With
myElement.texts.item(0).select();it works fine! -
I want to create an inventory spreadsheet of my artwork jpeg files.
How do I import into Numbers just the file names of a folder full of jpg files?
I would like the file name to be one column and the extension another column because I also have .mov and .pdf files and would like to sort them later.
ThanksHere is a script doing the entire trick.
--[SCRIPT insertFolderContents]
Enregistrer le script en tant que Script : insertFolderContents.scpt
déplacer le fichier ainsi créé dans le dossier
<VolumeDeDémarrage>:Users:<votreCompte>:Library:Scripts:Applications:Numbers:
Il vous faudra peut-être créer le dossier Numbers et peut-être même le dossier Applications.
Sélectionner la cellule où devra être inséré le premier nom de fichier.
menu Scripts > Numbers > insertFolderContents
Naviguer jusqu'au dossier à examiner.
Les noms de fichiers et leurs éventuelles extensions sont collées dans la table.
Rien n'est collé si le dossier est vide.
Il est également possible d'enregistrer le script sous forme de Progiciel (Application sous 10.6).
Dans ce cas il peut être activé par un double clic ou par glisser-déposé d'un dossier sur son icône.
--=====
L'aide du Finder explique:
L'Utilitaire AppleScript permet d'activer le Menu des scripts :
Ouvrez l'Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
Cochez la case "Afficher le menu des scripts dans la barre de menus".
--=====
Save the script as a Script: insertFolderContents.scpt
Move the newly created file into the folder:
<startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:Numbers:
Maybe you would have to create the folder Numbers and even the folder Applications by yourself.
Select the cell where filenames must be inserted.
menu Scripts > Numbers > insertFolderContents
Navigate to the folder to scan.
The file names and the extension names (if they exist) are pasted in the table.
If the folder is empty, nothing is pasted.
Alternatively, the script may be saved as an Application package (Application under 10.6).
In this case, it may be triggered by double click on by drag & drop of a folder on its icon.
--=====
The Finder's Help explains:
To make the Script menu appear:
Open the AppleScript utility located in Applications/AppleScript.
Select the "Show Script Menu in menu bar" checkbox.
--=====
Yvan KOENIG (VALLAURIS, France)
2010/04/18
--=====
on run
set dossier to choose folder
--tell application "System Events" to set dossier to choose folder
dans un bloc System Events pour avoir un titre de dialogue "localisé"
• in a System Events block to get a localized dialog title. *)
my main({dossier})
end run
--=====
on open sel
my main(sel)
end open
--=====
on main(sel)
my activateGUIscripting()
set {dName, sName, tName, rname, rowNum1, colNum1, rowNum2, colNum2} to my getSelParams()
set dossier to quoted form of POSIX path of (item 1 of sel as text)
set lesNoms to paragraphs of (do shell script "ls " & dossier)
if lesNoms is not {} then
repeat with i from 1 to count of lesNoms
set n to item i of lesNoms
if n contains "." then
set item i of lesNoms to n & tab & last item of my decoupe(n, ".")
end if
end repeat
set the clipboard to my recolle(lesNoms, return)
my shortcut("Numbers", "v", "cas")
end if
end main
--=====
set { dName, sName, tName, rname, rowNum1, colNum1, rowNum2, colNum2} to my getSelParams()
on getSelParams()
local r_Name, t_Name, s_Name, d_Name, col_Num1, row_Num1, col_Num2, row_Num2
set {d_Name, s_Name, t_Name, r_Name} to my getSelection()
if r_Name is missing value then
if my parleAnglais() then
error "No selected cells"
else
error "Il n'y a pas de cellule sélectionnée !"
end if
end if
set two_Names to my decoupe(r_Name, ":")
set {row_Num1, col_Num1} to my decipher(item 1 of two_Names, d_Name, s_Name, t_Name)
if item 2 of two_Names = item 1 of two_Names then
set {row_Num2, col_Num2} to {row_Num1, col_Num1}
else
set {row_Num2, col_Num2} to my decipher(item 2 of two_Names, d_Name, s_Name, t_Name)
end if
return {d_Name, s_Name, t_Name, r_Name, row_Num1, col_Num1, row_Num2, col_Num2}
end getSelParams
--=====
set {rowNumber, columnNumber} to my decipher(cellRef,docName,sheetName,tableName)
apply to named row or named column !
on decipher(n, d, s, t)
tell application "Numbers" to tell document d to tell sheet s to tell table t to return {address of row of cell n, address of column of cell n}
end decipher
--=====
set { d_Name, s_Name, t_Name, r_Name} to my getSelection()
on getSelection()
local _, theRange, theTable, theSheet, theDoc, errMsg, errNum
tell application "Numbers" to tell document 1
repeat with i from 1 to the count of sheets
tell sheet i
set x to the count of tables
if x > 0 then
repeat with y from 1 to x
try
(selection range of table y) as text
on error errMsg number errNum
set {_, theRange, _, theTable, _, theSheet, _, theDoc} to my decoupe(errMsg, quote)
return {theDoc, theSheet, theTable, theRange}
end try
end repeat -- y
end if -- x>0
end tell -- sheet
end repeat -- i
end tell -- document
return {missing value, missing value, missing value, missing value}
end getSelection
--=====
on parleAnglais()
local z
try
tell application "Numbers" to set z to localized string "Cancel"
on error
set z to "Cancel"
end try
return (z is not "Annuler")
end parleAnglais
--=====
on decoupe(t, d)
local l
set AppleScript's text item delimiters to d
set l to text items of t
set AppleScript's text item delimiters to ""
return l
end decoupe
--=====
on recolle(l, d)
local t
set AppleScript's text item delimiters to d
set t to l as text
set AppleScript's text item delimiters to ""
return t
end recolle
--=====
on activateGUIscripting()
tell application "System Events"
if not (UI elements enabled) then set (UI elements enabled) to true (* to be sure than GUI scripting will be active *)
end tell
end activateGUIscripting
--=====
==== Uses GUIscripting ====
This handler may be used to 'type' text, invisible characters if the third parameter is an empty string.
It may be used to 'type' keyboard shortcuts if the third parameter describe the required modifier keys.
on shortcut(a, t, d)
local k
tell application a to activate
tell application "System Events" to tell application process a
set frontmost to true
try
t * 1
if d is "" then
key code t
else if d is "c" then
key code t using {command down}
else if d is "a" then
key code t using {option down}
else if d is "k" then
key code t using {control down}
else if d is "s" then
key code t using {shift down}
else if d is in {"ac", "ca"} then
key code t using {command down, option down}
else if d is in {"as", "sa"} then
key code t using {shift down, option down}
else if d is in {"sc", "cs"} then
key code t using {command down, shift down}
else if d is in {"kc", "ck"} then
key code t using {command down, control down}
else if d is in {"ks", "sk"} then
key code t using {shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "k" then
key code t using {command down, shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "a" then
key code t using {command down, shift down, option down}
end if
on error
repeat with k in t
if d is "" then
keystroke (k as text)
else if d is "c" then
keystroke (k as text) using {command down}
else if d is "a" then
keystroke k using {option down}
else if d is "k" then
keystroke (k as text) using {control down}
else if d is "s" then
keystroke k using {shift down}
else if d is in {"ac", "ca"} then
keystroke (k as text) using {command down, option down}
else if d is in {"as", "sa"} then
keystroke (k as text) using {shift down, option down}
else if d is in {"sc", "cs"} then
keystroke (k as text) using {command down, shift down}
else if d is in {"kc", "ck"} then
keystroke (k as text) using {command down, control down}
else if d is in {"ks", "sk"} then
keystroke (k as text) using {shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "k" then
keystroke (k as text) using {command down, shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "a" then
keystroke (k as text) using {command down, shift down, option down}
end if
end repeat
end try
end tell
end shortcut
--=====
--[/SCRIPT]
Yvan KOENIG (VALLAURIS, France) dimanche 18 avril 2010 11:08:09 -
Bonjour,
Nous avons développé des applications mêlant des acquisitions et des calculs statistiques. Les acquisitions et les calculs sont pseudo-temps réel (acquisition/analyse/sauvegarde/affichage en moins d'une seconde).
Jusqu'à présent, nous passons par une DLL C mais nous aimerions utiliser un logiciel "stat" pour simplifier nos futurs travaux.
Nous avons entendu parlé du logiciel R. Est-ce possible de lancer un script sous R via LabVIEW et de récupérer les résultats des calculs dans l'appli LabVIEW?
Si oui, comment et est-ce assez rapide?
Sinon, avez-vous déjà utilisé Scilab et/ou MatLAB? Qu'en pensez-vous?
Merci pour votre aide.Bonjour,
Merci pour cette réponse.
Nous n'aimons pas trop ActiveX car il est un peu trop "Microsoft dépendant". Nous avons eu déjà des problèmes avec une de nos applis en changeant de Word (par exemple): le service informatique ne demande pas notre accord pour installer telles ou telles mises à jour sur un poste...
Pour le script (Matlab, Scilab), nous avons effectivement vu ces techniques mais cela ne convient pas à l'usage que nous voulons en faire, à savoir:
- nous recherchons puis validons un protocole statistique avec un logiciel "spécialisé" et plus adapté
- nous intégrons ces calculs statistiques dans notre appli LabVIEW en minimisant leur requalification.
En important un script dans un code LabVIEW, rien ne garantit que personne n'a touché par mégarde au code Matlab/Scilab donc nous sommes obligés de revalider les calculs statistiques une fois le programme LV terminé.
Avec un code compilé, nous pouvons garantir que le code statistique, une fois validé, ne peut être modifié. D'autre part, cela nous permettrait de corriger/modifier éventuellement les calculs sans avoir à requalifier toute l'appli.
Nous voulons bien "séparer" les 2 parties pour:
1 - minimiser les étapes de qualification
2 - simplifier les mises à jour
Nous cherchons donc un logiciel statistique qui puisse générer un code compilé ou utiliser un protocole de com compatible avec LabVIEW. Nous connaissons bien LabVIEW et ses possibilités mais au niveau logiciel mathématique compatible, nous n'y connaissons rien.
Des statisticiens nous ont parlé de R mais n'étant pas des programmateurs ni des experts R, ils ne pouvaient pas nous dire s'il pouvait générer des codes compilés et/ou "dialoguer" avec LabVIEW.
Matlab pourrait, nous a-t-on dit, générer des DLL/EXE mais de là à pouvoir les exploiter sous LabVIEW, nous n'en savons rien.
Nous continuons à chercher. Encore merci. -
Applescripts & automation tasks: Pages '09 + PDFs
I've been searching for an answer to this for quite some time. I've searched discussions and everything on all these mac forum websites...
Hopefully someone that has knowledge with automator or scripts or command line will have an answer for me...
I have an 80-some odd page pdf that contains a conflation of several organic chemistry lectures that were important throughout the semester. Due to the fact that I am a student, poor as can be, I cannot spend my money on Adobe acrobat (unless someone has $150-200 they would like to send me). If you've been in my situation before, _*you know don't have the time*_ to sit at your computer and copy, PAGE BY PAGE, the thumbnails in Preview.app into the said Pages.app or Word.app document (or .jpeg, png, etc...). I plan on using the 80-some page lecture (already in pdf form) as a background for each succeeding document page either in Pages.app or Word.app. This will make it extremely easy for me to free-write, annotate and make links within the document as I please.
Yes, I do realize that it is entirely possible to do some of these annotations in Preview.app but I assure you, this would be a lot easier to present or review if I could add these pdf pages as backgrounds in a pages/word.app document. I do not have the original powerpoints these came from.
(Oh, I apologize if I sound redundant; I'm just trying to articulate my issue by the best means possible to avoid confusion... even though - I'm sure I did)I tested pdfsam-2.0.0 under 10.6.3.
The app evolved to version 2.2.0 but this version is not online at this time and only the very old 1.2.0 is reachable.
So I uploaded temporarily version 2.0 on my iDisk :
<http://public.me.com/koenigyvan>
Download :
pdfsam-2.0.0.app.dmg.zip
Under 10.5, look at :
http://gephi.org/users/install-java-6-mac-os-x-leopard/
to learn how to activate the required java 6 (but it would perhaps be easier to use the PDFLab app)
This app did its job flawlessly.
For me, the boring point was to understand the way to use the tool.
So, now that I was able to do, I will try to explain.
Of course,
step 1 : print or export the Pages document in a PDF file.
step 2 : create a folder in which will be stored the splitted pages.
step 3 : run pdfsam
step 4 : click the 'button' split
step 5 : click the button Add
navigate to the PDF file to split
step 6 : click the buttons _Choose a folder_ and Browse
navigate to the destination folder
step 7 : click the button Run
Let's do it .
When the task is finished, use this script :
--[SCRIPT pdfs2Pages]
Enregistrer le script en tant que Script : pdfs2Pages.scpt
déplacer le fichier ainsi créé dans le dossier
<VolumeDeDémarrage>:Users:<votreCompte>:Library:Scripts:Applications:Numbers:
Il vous faudra peut-être créer le dossier Numbers et peut-être même le dossier Applications.
menu Scripts > Numbers > pdfs2Pages
Naviguer jusqu'au dossier contenant les pages PDFs à insérer.
Il est également possible d'enregistrer le script sous forme de Progiciel (Application sous 10.6).
Dans ce cas il peut être activé par un double clic ou par glisser-déposé d'un dossier sur son icône.
--=====
L'aide du Finder explique:
L'Utilitaire AppleScript permet d'activer le Menu des scripts :
Ouvrez l'Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
Cochez la case "Afficher le menu des scripts dans la barre de menus".
--=====
Save the script as a Script: pdfs2Pages.scpt
Move the newly created file into the folder:
<startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:Numbers:
Maybe you would have to create the folder Numbers and even the folder Applications by yourself.
menu Scripts > Numbers > pdfs2Pages
Navigate to the folder containing the PDFs pages to insert.
Alternatively, the script may be saved as an Application package (Application under 10.6).
In this case, it may be triggered by double click on by drag & drop of a folder on its icon.
--=====
The Finder's Help explains:
To make the Script menu appear:
Open the AppleScript utility located in Applications/AppleScript.
Select the "Show Script Menu in menu bar" checkbox.
--=====
Yvan KOENIG (VALLAURIS, France)
2010/04/19
--=====
on run
set dossier to choose folder "Choose a folder containing PDFs files"
my main(dossier)
end run
--=====
on open sel
my main(item 1 of sel as alias)
end open
--=====
on main(theFolder)
my activateGUIscripting()
set pagesDoc to my makeAnIworkDoc("Pages")
tell application "Finder"
open folder theFolder
set ref1 to a reference to window 1
tell ref1
set lesIcones to get items
repeat with i from 1 to count of lesIcones
if my getTypeId((item i of lesIcones) as alias) is "com.adobe.pdf" then
select item i of lesIcones
my copyPaste2Pages(pagesDoc)
end if
end repeat
end tell
end tell
end main
--=====
on copyPaste2Pages(d)
my shortcut("Finder", "c", "c") (* Copy *)
my shortcut("Pages", "v", "c") (* Paste *)
tell application "Pages" to tell document d to insert page break of body text
end copyPaste2Pages
--=====
on getTypeId(f)
set t_id to type identifier of (info for f)
return t_id
end getTypeId
--=====
Creates a new iWork document from the Blank template and returns its name.
example:
set myNewDoc to my makeAnIworkDoc(theApp)
on makeAnIworkDoc(theApp)
local t, n
if theApp is "Pages" then
set t to ((path to applications folder as text) & "iWork '09:Pages.app:Contents:Resources:Templates:Blank.template:") as alias
else if theApp is "Numbers" then
set t to ((path to applications folder as text) & "iWork '09:Numbers.app:Contents:Resources:Templates:Blank.nmbtemplate:") as alias
else
if my parleAnglais(theApp) then
error "The application “" & a & "“ is not accepted !"
else
error "l’application « " & a & " » n’est pas gérée !"
end if
end if
tell application theApp
set n to count of documents
open t
repeat
if (count of documents) > n then
exit repeat
else
delay 0.1
end if
end repeat
set n to name of document 1
end tell -- theApp
return n
end makeAnIworkDoc
--=====
on activateGUIscripting()
tell application "System Events"
if not (UI elements enabled) then set (UI elements enabled) to true (* to be sure than GUI scripting will be active *)
end tell
end activateGUIscripting
--=====
==== Uses GUIscripting ====
This handler may be used to 'type' text, invisible characters if the third parameter is an empty string.
It may be used to 'type' keyboard shortcuts if the third parameter describe the required modifier keys.
on shortcut(a, t, d)
local k
tell application a to activate
tell application "System Events" to tell application process a
set frontmost to true
try
t * 1
if d is "" then
key code t
else if d is "c" then
key code t using {command down}
else if d is "a" then
key code t using {option down}
else if d is "k" then
key code t using {control down}
else if d is "s" then
key code t using {shift down}
else if d is in {"ac", "ca"} then
key code t using {command down, option down}
else if d is in {"as", "sa"} then
key code t using {shift down, option down}
else if d is in {"sc", "cs"} then
key code t using {command down, shift down}
else if d is in {"kc", "ck"} then
key code t using {command down, control down}
else if d is in {"ks", "sk"} then
key code t using {shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "k" then
key code t using {command down, shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "a" then
key code t using {command down, shift down, option down}
end if
on error
repeat with k in t
if d is "" then
keystroke (k as text)
else if d is "c" then
keystroke (k as text) using {command down}
else if d is "a" then
keystroke k using {option down}
else if d is "k" then
keystroke (k as text) using {control down}
else if d is "s" then
keystroke k using {shift down}
else if d is in {"ac", "ca"} then
keystroke (k as text) using {command down, option down}
else if d is in {"as", "sa"} then
keystroke (k as text) using {shift down, option down}
else if d is in {"sc", "cs"} then
keystroke (k as text) using {command down, shift down}
else if d is in {"kc", "ck"} then
keystroke (k as text) using {command down, control down}
else if d is in {"ks", "sk"} then
keystroke (k as text) using {shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "k" then
keystroke (k as text) using {command down, shift down, control down}
else if (d contains "c") and (d contains "s") and d contains "a" then
keystroke (k as text) using {command down, shift down, option down}
end if
end repeat
end try
end tell
end shortcut
--=====
--[/SCRIPT]
As with most of my scripts, explanations are given at the beginning in French then in English.
Yvan KOENIG (VALLAURIS, France) lundi 19 avril 2010 15:45:58 -
Erreur lors de la création d'un executable sous LabVIEW SP1
Bonjour,
Je travaille actuellement sur un projet relativement imposant sous LabVIEW 2010 SP1.
Le projet étant assez imposant,j'ai voulu en faire un exécutable.
J'ai alors la fenêtre suivante qui apparaît (voir piéce jointe):
"Une erreur est survenue lors de l'appel de l'éditeur des régles de construction. Veuillez vérifier si les VIs sont brisés dans le répertoire du gestionnaire correspondant."
Mon Vi fonctionne trés bien lorsque je l'éxecute, donc je ne comprends pas. De plus j'ai déja créer d'autres exécutables sans probléme jusqu'a présent.
Quelqu'un aurait-il une idée pour solutionner ce probleme?
Merci d'avance.
Résolu !
Accéder à la solution.
Pièces jointes :
erreur.JPG 11 KB@Ramses:
Je pense que Julien utilise une option du menu Outils (je ne sais plus son nom, et elle n'apparait pas sur mon PC car je n'ai pas l'application builder), qui permet de préparer son VI pour un exécutable. A ce moment, cela va créer automatiquement un projet avec une spécification de construction.
Cependant, je suis de l'avis de Ramses. Il est préférable de se créer son projet et de travailler dedans, puis de créer les spécifications de construction par la suite...
Et désolé, mais je n'ai pas d'explication à votre problème, à part éventuellement des dépendances particulières. Lorsque vous ouvrez votre VI, LabVIEW vous demande-t-il de charger des fichiers particuliers?
Cordialement
Olivier L. | Certified LabVIEW Developer -
Lors du chargement d'Adobe Player sous Windows 7 le chargement se fait jusqu'à 97% et affiche le message d'erreur suivant: Erreur lors de l’application du programme correctif au fichier C : \ Config.Msi\PTF6DD.tmp. Il a sans doute été mis à jour de manière différente et ne peut plus être modifié par ce programme correctif. Pour obtenir des informations complémentaires, contactez le revendeur de votre programme correctif. Que faut-il faire.
Uninstall using http://labs.adobe.com/downloads/acrobatcleaner.html
then reinstall from http://get.adobe.com/reader/enterprise/ -
Bonjour, j'ai enregfistré un fichier sous photoshop CS5 extended . impossible de l'ouvrir ensuite. j'ai un message d'erreur : on m'indique que la version n'est pas la bonne pour lire le fichier. Je n'ai fait aucune MAJ sur photoshop pourtant . je suis sur Pc et je m'arrache les cheveux. Merci de m'aider
Avez-vous la possibilité de partager ce fichier (s'il est lourd, via wetransfer / Dropbox, Adobe Send now…) ?
-
Bonjour,
J'ai un message d'erreur: Impossible d'enregistrer "Sans titre-2 sous un nouveau nom. Le fichier "DBTmp9264992478591057" est endommagé (code erreur 3)Bonjour.
De quel logiciel parlez-vous ?
Sur quel support essayez-vous d'enregistrer (réseau ? clé USB ? …)
Maybe you are looking for
-
SQL Help -- Need help with pivoting the columns to rows
I have a requierement to split the columns into multiple rows. For example: EMP_DEPT rowid empid1 ename1 dept1 empid2 ename2 dep2 empid2 ename2 dep3 empid4 ename4 dept4 100001 1 'SCOTT' 10 2 'DAVE' 20 3 'MILLER' 10 4 SMITH 20 100002 1 'SCOTT
-
Busy wheel in organizer and editor
I am running PSE 13 and am having a problem that the coloured busy wheel seems to take forever between tasks. I am shooting in raw, select a photo in organizer, convert to editor so I can process the raw file, then convert fro a jpeg for a photo boo
-
No Text being written to burnt CD's
I have just burnt a CD and I selected to have the CD text included, but when I play the CD with any other software packeage, it doesent show the titles of the songs, I just get Track01, Track02 etc etc. Is there any way I can get the titles of the so
-
We are trying to write a JCA adpater to connect to a mail server. Can anybody please forward any links pertaining to this? Also how do we test an adapter in JDev? And does Jdev provide for any help in developing a JCA adapter? Thanks in advance.
-
Hi, how can I do validation before user can do an action on my task. for example when user click on "accept" i want that do a validation to see whether the payload is set correctly or not. Thanks