PB à toute heure et à tout moment. (à parcourir avec modération)

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 20-04-2007 13:03:25

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Nom de l'executable

Comment pourrais-je récupérer le nom de l'executable?

Hors ligne

 

#2 20-04-2007 13:10:38

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Nom de l'executable

regarde de ce coté  la

Hors ligne

 

#3 20-04-2007 13:15:48

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: Nom de l'executable

En PB pur et dur, pas possible.
Il faut utiliser la fonction getModuleFileName de l'API Windows.
Bien sûr ça ne fonctionnera qu'avec un executable, pas depuis PB.


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

Hors ligne

 

#4 20-04-2007 13:22:47

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

Oui, c'est vrai j'ai oublié de dire bonjour, mille excuses: ....
BONJOUR A TOUS !!!!!!!!

Hors ligne

 

#5 20-04-2007 13:25:14

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

Voilà mon code, mais le problème je pense, vient du handle ...

Code: pb

[PB external function declaration]

FUNCTION int GetModuleFileNameA(&
           ulong hinstModule, &
           REF string lpszPath, &
           ulong cchPath) LIBRARY "kernel32.dll"

 
[Powerscript]

string ls_Path
unsignedlong lul_handle

 
ls_Path = space(1024)
lul_handle = Handle(GetApplication())
GetModuleFilenameA(lul_handle, ls_Path, 1024)
MESSAGEBOX("CURRENT APPLICATION PATH", LS_PATH)



Dernière modification par poche (20-04-2007 13:51:18)

Hors ligne

 

#6 20-04-2007 13:47:42

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: Nom de l'executable

Bonjour poche.

Et ceci, ça ne pourrait pas t'aider?

Code: pb

string ls_name

ls_name = GetApplication ().appname


Evidemment, il faut avoir saisi appname dans la DBParam avant de se connecter
à la BDD.

Mais peut-être ai-je mal compris ta question...

Dernière modification par foon (20-04-2007 13:50:27)


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

Hors ligne

 

#7 20-04-2007 13:53:18

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

Code: pb

string ls_name

ls_name = getapplication ().appname

Ce code sert à récupérer le nom de l'application et non le nom de l'executable...
En faite,  je veux récupérer par exemple : test.exe

Hors ligne

 

#8 20-04-2007 14:20: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: Nom de l'executable

Bon, j'aurais dû m'en douter...
Ton API getmodulefilenamea retourne quelle valeur?
Et le handle est correct?


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

Hors ligne

 

#9 20-04-2007 14:26:04

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: Nom de l'executable

Au fait, pour tester tes codes retours:

When you ask for the handle of the application, Handle returns 0 when you are using the PowerBuilder Run command. As far as Windows is concerned, your application does not have a handle when it is run from PowerBuilder. When you build and run an executable version of your application, the Handle function returns a valid handle for the application.

Tu ne peux donc tester ton appli qu'en executable... Comme l'a dit plus haut Shahin

Donc il va falloir mettre des messagebox partout pour tester le handle et le code retour
de l'API et générer un exe afin de détecter ce qui cloche...

Dernière modification par foon (20-04-2007 14:31:57)


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

Hors ligne

 

#10 20-04-2007 14:30:32

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

Mon handle me revoi 0 et le getmodulefilename me renvoi 16

Hors ligne

 

#11 20-04-2007 14:31:50

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

Oui je sais, lorsque je test, je recrais un executable et je met des messagebox pour vérifier les  différentes valeurs...

Hors ligne

 

#12 20-04-2007 14:51:29

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

Re: Nom de l'executable

poche a écrit:

Oui je sais, lorsque je test, je recrais un executable et je met des messagebox pour vérifier les  différentes valeurs...

ou alors tu écris les infos de debug dans un fichier log


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

Hors ligne

 

#13 20-04-2007 14:52:30

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: Nom de l'executable

La définition de l'API par l'ami Pick:

Code: pb

function ulong getmodulefilename(ulong hmodule,ref string lpfilename,ulong 
      nsize) library "kernel32.dll" alias for "GetModuleFileNameA"


Apparemment, ce n'est pas tout à fait la même que celle que tu utilises, mais bon...
Si le handle n'est pas bon, je doute que ça marche...


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

Hors ligne

 

#14 20-04-2007 15:04:08

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: Nom de l'executable

foon a écrit:

La définition de l'API par l'ami Pick:

Code: pb

function ulong getmodulefilename(ulong hmodule,ref string lpfilename,ulong 
      nsize) library "kernel32.dll" alias for "GetModuleFileNameA"


Apparemment, ce n'est pas tout à fait la même que celle que tu utilises, mais bon...
Si le handle n'est pas bon, je doute que ça marche...

Je m'étais trompé, le handle est égal à : 268435456
Et sinon, j'ai essayé avec ton code et ça fonctionne toujours pas
à la place du nom de l'executable, j'ai des petits carrés...

Dernière modification par poche (20-04-2007 15:04:43)

Hors ligne

 

#15 20-04-2007 15:28:05

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

Re: Nom de l'executable

petit problème d'encodage peut-être ? as-tu essayé :

Code: pb

function ulong getmodulefilename(ulong hmodule,ref string lpfilename,ulong nsize) 
library "kernel32.dll" alias for "GetModuleFileNameA;ansi"

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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22