DDE et "Execute"

Répondre
Alain Masson

DDE et "Execute"

Message par Alain Masson » jeu. oct. 30, 2003 7:17 pm

Bonjour à tous,

Je souhaite ouvrir une appli sous Paradox7 Runtime à partir d'une autre application... et ça marche pô! Je suppose que je m'y prends mal. Voici le code que j'ai écri derrière un bouton:

var
ddeVar DDE
endVar

ddeVar.open("PDXWIN32", "C:\\Program Files\\Borland\\PDXWIN32.EXE")

ddeVar.execute("-p d:\\priveBis -q -w d:\\Monappli d:\\Monappli\\Home.fdl")

ddeVar.close()

Message d'erreur: "Utiliser ouvrir".

Quelqu'un peut-il m'aider?

D'avance, un grand merci.

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » sam. nov. 01, 2003 1:06 pm

Salut Alain,

Une idée et un lien :

- Pourquoi ne pas simplement utiliser la commande OPAL execute() donc sans OLE ni DDE pour simplement lancer un fichier raccourci (.lnk sur le bureau de windows par exemple) préalablement crée avec les bons paramètres (-p , -w ,-q etc...) ? Simple et direct. J'ai testé ça marche tout seul !

- Regarde sinon ce lien intéressant (mais en anglais) :
http://prestwood.com/community/paradox/ ... e_ole.html

Alain Masson

DDE et "Execute"

Message par Alain Masson » sam. nov. 01, 2003 3:43 pm

Bonjour Côme et merci,

Cela me paraît effectivement très intéressant, mais j'ai dû raté quelque-chose car chez moi cela ne fonctionne pas.
La ligne de commande des raccourcis est correcte et les applis s'ouvrent comme il faut sur la bonne fiche avec le bon répertoire privé. En revanche depuis l'appli de centralisation il y a un problème:
Message: "Une erreur a eu lieu lors de l'éxécution du programme spécifié"
Le code n'est peut-être pas correct?:

method pushButton(var eventInfo Event)
execute("monAppli.lnk",Yes,ExeShowNormal)
endMethod

J'ai également essayé avec "c:\\Documents and Settings\\Alain\\Bureau\\" devant monAppli.lnk, mais cela ne change rien.
Help!
Merci d'avance.

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » sam. nov. 01, 2003 5:06 pm

Mea culpa j'avais testé dans Windows/Exécuter...
Je tombe sur la même erreur dans Paradox :(
Bon je vais creuser et je reviens vers toi dès que je trouve qq chose.

Alain Masson

DDE et "Execute"

Message par Alain Masson » sam. nov. 01, 2003 5:29 pm

Hourrha!!

Ca y est, j'ai trouvé! Cela fonctionne aussi bien avec Paradox qu'avec le Runtime:

Paradox:
execute("PDXRWN32.EXE -p d:\\privMonAppli -q -w d:\\monAppli d:\\monAppli\\home.fdl")
Runtime:
execute("C:\\Program Files\\Borland\\Paradox Runtime\\PDXRWN32.EXE -p d:\\privMonAppli -q -w d:\\monAppli d:\\monAppli\\home.fdl")

J'ai mis cela derrière des boutons et hop!

Bien content... et merci à Côme pour m'avoir indiqué une piste.

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » sam. nov. 01, 2003 5:46 pm

Bon une réponse possible (testée dans Paradox cette fois sous Win98 SE) avec un appel API à ShellExecute :

Info tiré de l'excellent site de Pascal hutton : http://paradoxtips.free.fr/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Launch the associated program of a file
With this API call you can launch every program you want just by knowing the name of the file you want to open (*.xls, *.doc, *.html ...)

Uses "shell32.dll"
ShellExecute (hwnd clong, lpOperation cptr, lpFile cptr, lpParameters cptr,lpDirectory cptr, nShowCmd clong) clong [stdcall "ShellExecuteA"]
endUses

method pushButton(var eventInfo Event)

var
exec longint
filename string
endvar

filename = "C:\\docs\\index.html"
exec = ShellExecute(0,"open",filename,"","",3)

endMethod

>>>>>>>>>>>>>>>>>>>>>>>>>>

J'ai donc testé avec un point lnk et ça marche très bien
(avec le chemin absolu)

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » sam. nov. 01, 2003 5:48 pm

Ah ba encore mieux comme tu le fais, plus simple !
:lol:

Répondre