Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 01-07-2010 08:17:38

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

[RESOLU] Ouvrir un document Word au premier plan

Bonjour à tous,

Je viens tout juste de migrer une application PB 5.0 en PB 12.0.

Je suis confronté au problème suivant :

Lors de l'ouverture d'un document Word, l'application PowerBuilder reste au premier plan.
Sous PB 5.0 le document Word était bien au premier plan. J'ai donc essayé d'utiliser les fonctions SetForegroundWindow et FindWindowA mais c'est toujours le même résultat. L'application est toujours au premier plan.
A l'ouverture de ce document Word une macro est exécutée. Cette macro ouvre des MessageBox de saisie.

Outils : PowerBuilder 12.0 sous Windows Seven et Microsoft Word 2003.

Merci pour votre aide.

Dernière modification par Damien (06-12-2012 10:55:53)

Hors ligne

 

#2 01-07-2010 09:12:31

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Ouvrir un document Word au premier plan

Tu ouvres comment ton doc word ? Avec Run ?
Personellement j'évite Run, car aucun contrôle sur l'applie lancée, au profit d'ole.

Code: pb

OleObject    lol_word
lol_word = Create OleObject
lol_word.ConnectToObject( "C:\...\foobar.doc")
lol_word.Application.visible = true
lol_word.Application.Activate

never let people work on more than one thing at once.

Hors ligne

 

#3 01-07-2010 09:30:22

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Oui je l'ouvre via :

Code: pb

ole.object.application.documents.open(...doc)


Édit : code=pb

Dernière modification par Damien (06-12-2012 10:53:21)

Hors ligne

 

#4 01-07-2010 09:45:29

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Ouvrir un document Word au premier plan

Merci d'avance


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 01-07-2010 12:16:42

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Ouvrir un document Word au premier plan

Nickel Damien, t'as essayé d'ajouter le .activate ?


never let people work on more than one thing at once.

Hors ligne

 

#6 01-07-2010 12:58:07

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Oui, même résultat. Une information en plus : quand la fenêtre de saisie s'ouvre sous Word je ne peux plus rien faire sous mon application PB (sablier)

Hors ligne

 

#7 01-07-2010 14:10:15

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Ouvrir un document Word au premier plan

Donc le ".activate" n'est pas exécuté.

Si tu n'exécute pas la macro, ça fonctionne ?
Dans ce cas, ne pas lancer la macro à l'ouverture du coument, mais la déclencher depuis ton application (après le .activate)


never let people work on more than one thing at once.

Hors ligne

 

#8 02-07-2010 06:54:07

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Alors pour que ce soit plus clair voici le code :

Code: pb

string ls_version
boolean lb_readonly

SetPointer( HourGlass! )

is_document = as_document

// crée une instance Word
IF ole.insertclass( "word.application" ) < 0 THEN
  RETURN -901  // impossible d'ouvrir Word
END IF

// Affiche la fenêtre de Word et maximize l'écran 
ole.object.application.visible = TRUE
ole.object.application.WindowState = 1

// Ouvre le document
lb_readonly = ab_readonly
ole.object.application.StatusBar = "1. Veuillez patienter quelques instants...Ouverture du document en cours. "

ole.object.application.documents.open(is_path_modeles + "\" + as_document + is_extension,false, lb_readonly)
IF ib_inError THEN 
  ib_inError = FALSE
  return -903
END IF

// ajoute le fichier de macros dans les compléments de macro du document
ole.object.application.AddIns.Add(is_path_modeles + "\" + as_modele_macro, True )
IF ib_inError THEN 
  ib_inError = FALSE
  return -904
END IF

ole.object.application.StatusBar = "2. Veuillez patienter quelques instants...Création du document en cours. "
IF ib_inError THEN 
  ib_inError = FALSE
  return -905
END IF

ole.object.system.cursor = 0
IF ib_inError THEN 
  ib_inError = FALSE
  return -906
END IF

ole.object.application.activate

// Exécute la macro
ole.object.application.run( as_macro  + as_parametre)
IF ib_inError THEN 
  ib_inError = FALSE
  return -907
END IF

RETURN 0


Je préfère mettre tout le code, peut être que vous verrez le truc qui fait que ça fonctionne pas.

Dernière modification par Damien (06-12-2012 10:54:53)

Hors ligne

 

#9 02-07-2010 07:03:55

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Si je mets en commentaire cette partie de code :

Code: pb

// Exécute la macro
ole.object.application.run( as_macro  + as_parametre)
IF ib_inError THEN 
  ib_inError = FALSE
  return -907
END IF


Le document Word n'est toujours pas au premier plan.

Dernière modification par Damien (06-12-2012 10:55:18)

Hors ligne

 

#10 07-07-2010 07:48:47

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Je ne trouve toujours pas de solution, avez vous des idées ? des remarques ?

Edit :

En fait, j'ouvre un document Word. Ensuite j'exécute la macro. Cette macro ouvre un deuxième document Word avec des MessageBox de saisie. C'est ce dernier document Word (+ MessageBox de saisie) que je n'arrive pas à mettre au premier plan.

Dernière modification par Damien (07-07-2010 07:52:32)

Hors ligne

 

#11 07-07-2010 08:25:13

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Ouvrir un document Word au premier plan

Du coup c'est à la macro qui ouvre le 2ème doc de faire le boulot en VBA :

Code: vb

ton_doc.Application.Activate

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#12 22-09-2010 18:17:31

Allin  
Membre Geek
Lieu: Canada
Date d'inscription: 17-09-2008
Messages: 43
Pépites: 1,192
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Essaie de faire tout ton traitement avec excel invisible et de le rendre visible uniquement à la fin complètement. J'ai déjà eu ce problème avec excel et c'est ce que j'ai fait.

Hors ligne

 

#13 06-12-2012 10:53:08

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Merci Erasorz, le .activate m'a mis sur la piste !

Hors ligne

 

#14 06-12-2012 14:15:27

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

Déterrage de topic level 100


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#15 06-12-2012 14:19:02

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Ouvrir un document Word au premier plan

rincevent a écrit:

Déterrage de topic level 100

Archeologist achievement unlocked !


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#16 06-12-2012 16:12:06

Damien  
Membre Geek
Date d'inscription: 30-06-2010
Messages: 32
Pépites: 142
Banque: 0

Re: [RESOLU] Ouvrir un document Word au premier plan

N'empêche que le problème était toujours d'actualité il y a encore deux jours ... ;)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22