FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:48

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 13:46

» a l'aide klaus
par Minibug Aujourd'hui à 11:42

» KGF_dll - nouvelles versions
par Minibug Aujourd'hui à 1:48

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Aujourd'hui à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» API Windows
par Klaus Jeu 7 Déc 2017 - 21:03

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

» j'ai un petit problème
par JL35 Mer 6 Déc 2017 - 21:58

» source vumetre avec delphi
par Klaus Mar 5 Déc 2017 - 23:22

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Récupérer nom fichier sur clic droit menu contextuel Windows

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Dim 30 Oct 2016 - 17:12

C'est bien pour ça que mon code est:
Code:
dim f$
f$ = param_value$(1)
message f$
terminate
pour avoir le premier paramètre.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 30 Oct 2016 - 17:33

Bonjour, bonjour...

Je viens mettre mon petit bordel dans l' histoire.

J' ai créé un dossier "C:\BasToExe".
J' ai placé une copie de KGF.dll dedans.
Puis, j' ai pondu le programme suivant en plaçant sa version exécutable dans le dossier cité au dessus :

Spoiler:
 

Ensuite, j' ai suivi les étapes pour Regedit.exe
en mettant ceci en command :
(zut on peut plus héberger d' images, c' est louche...)
bref la command :
"C:\BasToExe\BasToExe.exe" %1

Mais là affraid  j' ai des résultats variables.


Si mon source *.bas est sur le bureau => cela fonctionne
Si mon source est dans un dossier sur le bureau => cela me lance le source comme si il était dans l' éditeur.
Si le dossier de mon source est sur le bureau et que son est composé avec un espace => param_value$(1) est tronqué


j' ai essayé de modifier la commande mais c' est encore comme cela que le résultat est parfois le bon.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 30 Oct 2016 - 17:39

Ha ! J' oubliais !

Si on se sert de Param_value$(1) pour passer le chemin du source.

Le dossier courant ( dir_current$ ) devient de fait le dossier du source passé en paramètre !

Donc si il vous vient à l' idée de vous basez sur une variable pour les chemin du style :
path$=dir_current$
puis :
kgf$= path$+"KGF.dll"
Laissez tomber, c' est pas la peine.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Dim 30 Oct 2016 - 17:45

Salut ygeronimi !

Merci de participé à nos recherches. Je vois que tu fais avancer le smilblick ! Wink
Bon par contre pour la solution c'est pas gagné...

J'ai l'impression que tout s'embrouille et que les résultats sont différents d'un PC à un autre.
Et surtout d'un emplacement à un autre... scratch drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 30 Oct 2016 - 17:55

Oui, c' est le souk chez bill !

Une autre chose bizarre.
Comme je suis sous w10 pour retrouver regedit, j' ai ouvert un dossier sur C:\ et j' ai tapé regedit dans la zone de recherche
et là, surprise ! 

Le monsieur qui cherche dans windows m' a sorti regedit à 4 emplacement différents !

Plus drôle encore, les 4 n' ont pas la même taille.
rendeer drunken geek jocolor king scratch pale
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 30 Oct 2016 - 19:45

Bon, après redémarrage de mon ordi.

Mon programme agit comme la fonction exécuter de l' éditeur... Crying or Very sad

Pour ce qui est de "command", j' ai fouillé dans le registre et toutes les command sont ainsi avec %1

chemin_du_programme %1 
avec un espace entre le chemin et %


Je ne m' explique pas le pourquoi du comment.
A moins que j' ai fait une bourde dans mon programme...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 2:15

J'ai résolu le problème !

En fait, si un programme Panoramic est lancé par l'explorateur, il tente toujours d'exécuter le fichier qui lui est passé en paramètre, tout comme si ce fichier était exécuté par Panoramic.exe. Donc, s'il s'agit d'un source Panoramic, il sera exécuté. S'il s'agit d'un autre type de fichier, il y aura une erreur de syntaxe en ligne 1 - logique.

Je pense que ceci est un bug dans le code d'initialisation de Panoramic. Mais heureucement, j'ai trouvé le moyen de contourner le problème. Il suffit de faire de sorte que le nom du fichier cliqué soit transmis en deuxième paramètre, et tout marche bien. C'est aussi simple que ça !

Et donc, mon petit programme Panoramic devient:
Code:
' test_right_click.bas
dim f$
f$ = param_value$(2)
message f$
terminate

Et ensuite, il fait créer une clé de registre selon le modèle suivant:


Il faut donc:
1. ouvrir Regedit
2. ouvrir la clé ]HKEY_CLASSES_ROOT]
3. ouvrir la clé ]*] (la première clé)
4. ouvrir la clé ]shell]
5. créer une nouvelle clé
6. lui donner comme nom le libellé de la ligne de menu contextuel à afficher, dans mon cas ]TesterClickDroit]
7. créer une nouvelle clé
8. lui donner comme nom ]Command]
9. double-cliquer sur "Valeur par défaut" dans la partie de droite
10 saisir la ligne de commande suivante dans le champ du bas:
Citation :
"...chemin complet vers l'outil choisi...\test_right_click.exe" nul: "%1"
Ainsi, le "premier" paramètre pour l'explorer devient en réalité de "deuxième" paramètre pour le programme Panoramic, puisque "nul:" prend la place du premier paramètre et RIEN n'est exécuté.

Et tout fonctionne comme par magie, pour tout type de fichier puisqu'un a choisi la clé de type "*" !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 9:31

Bravo Klaus ! cheers

Je viens de tester et tout est OK. Je regarderais plus en détail ce soir.
Comment as tu réussi à comprendre d’où cela venait ? J'avoue que là j'étais totalement dépassé.  drunken
Tu est vraiment très fort. Encore un grand bravo !

Citation :
Je pense que ceci est un bug dans le code d'initialisation de Panoramic.
Il s’agirait donc bien d'un bug alors !

Citation :
Et tout fonctionne comme par magie, pour tout type de fichier puisqu'un a choisi la clé de type "*" !
Mais pourquoi cela ? Quel est l'intérêt puisque ce sont uniquement les fichiers BAS qui nous intéressent !

Je pense qu'il serait sympa de faire un post récapitulatif pour expliqué comment convertir un EXE sans ouvrir l'éditeur Panoramic.
Ça peut faire aussi l'objet d'un petit article dans le MAG.

Qu'en penses tu Klaus ? C'est quand même grâce à toi que cela fonctionne !
Si tu es d'accord je rédigerai tout ça...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 10:20

Citation :
Mais pourquoi cela ? Quel est l'intérêt puisque ce sont uniquement les fichiers BAS qui nous intéressent !
Eh bien, dans ce cas, en phase (3), tu utilises:
Citation :
...
3. ouvrir (ou créer) lacle [.bas]
...
ou toute autre extension que tu souhaites configurer. Je voulais simplement être le plus général possible.

Citation :
Je pense qu'il serait sympa de faire un post récapitulatif pour expliqué comment convertir un EXE sans ouvrir l'éditeur Panoramic.
C'est une bonne idée.

Citation :
Si tu es d'accord je rédigerai tout ça...
Evidemment que je suis d'accord !

Et pour finir:
Citation :
Comment as tu réussi à comprendre d’où cela venait ?
Parce que j'ai horreur de rester bloqué devant un défi technique de cette sorte. J'ai passé des heures à faire des essais avec un programme Panoramic et un autre en Delphi, ce qui m'a permis de mettre en évidence la différence de fonctionnement au niveau de la prise en charge du lancement du programme. J'ai également essayé une bonne vingtaine de logiciels freeware destinés à gérer les menus contextuels de Windows? Aucun n'a pu résoudre ce problème pour Panoramic alors que ça marchaie bien pour Delphi. Et j'en ai conclu que Panoramic traite le premier paramètre de la commande DOS différemment de ce que font les autres programmes. Et j'ai essayé le paramètre 2 pour voir, et bingo !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 11:34

Excellente déduction Sherlock ! Laughing Laughing Laughing

Bon ok pour le post et le tuto.
Là je suis au boulot donc je regarderai ce soir ou demain.
A moins que se soit calme et que j'ai un peu de temps dans la journée...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 11:47

La je vous réponds depuis un téléphone, c est vraiment pas pratique.
J essaie des que mon squatteur me laisse la place.
J ai aussi remarque une chose bizarre avec param_value mais je ferai un post avec mon ordi, la ce serait trop long.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 31 Oct 2016 - 12:17

bounce bounce bounce bounce bounce  J' en ai marre de ce forum qui me déconnecte à chaque fois que je veux valider un post !!!!! bounce bounce bounce bounce

Bon, je recommence !

Le programme que j' ai posté au dessus est censé récupéré en paramètre 1 le chemin du fichier qui lui est transmis
et le passer à la moulinette de la fonction kgf pour en faire un excès.
Ca c' est quand tout va bien... Laughing 


J' ai créé un fichier *.bas avec print param_value$(1).
j' ai envoyé ce fichier au programme au dessus et là, surprise.
Le programme a été exécuté et pas converti (mais apparemment le pb semble se résolver).
A l' exécution de ce fichier *.bas, alors que lui, rien ne lui est passé en paramètre, print affiche sa propre adresse.
scratch scratch scratch

Autre chose, chez moi il existe déjà une clé *.bas
celle qui ouvre un fichier *.bas avec l' editeur.
peut être y avait il un conflit...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 31 Oct 2016 - 12:39

@Klaus,

J' ai essayé ta formule magique.
cheers cheers cheers CA MARCHEEEE !!!!!!!!!!!... cheers cheers cheers
ou plutôt cela fonctionne.

Mon petit programme fonctionne au poil même si je dois le revoir pour les #include

Je vais pouvoir me remettre à mon prog que j' ai laissé de coté.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 606
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 13:16

bjr a tous
je vous redonne le lien du logiciel

ici
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Lun 31 Oct 2016 - 15:59

Merci Pascal10000 !

@ygeronimi :
Moi aussi j'ai parfois des soucis avec le forum. On en parle regulièrement... Suspect

Concernant l'astuce de Klaus, il faut bien indiqué PARAM_VALUE(2) dans ton programme Panoramic car si tu suis bien la démarche, avant il y a un paramétre NUL dans la ligne de commande dans REGEDIT.

Concernant l'extention .BAS dans regedit, si elle existe et est au bon endroit, il suffit de rajouter les infos dans le dossier existant.

Je vais faire un petit tuto pour tout çà et je vais ouvrir un post récapitulatif. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Mar 1 Nov 2016 - 16:56

Au secours Klaus plus rien ne fonctionne !

J'étais en train de préparer l'article et mettre en forme le programme.
Je fais donc plusieurs tests du programme et patatra !!!

voila tout d'abord le code que j'utilise :

Code:

CAPTION 0,"CONVERTISSEUR DE FICHIER EXE" : HIDE 0
MEMO 6 : LEFT 6,400 : TOP 6,300 : HIDE 6

DLL_ON "D:\BASIC\DLLs\KGF.dll"

DIM bas$ , exe$ , res%

bas$=PARAM_VALUE$(2)

MESSAGE bas$

FILE_LOAD 6,bas$

exe$=LEFT$(bas$,LEN(bas$)-3)+"EXE"

MESSAGE exe$

res%=DLL_CALL3("CompilePanoramicToEXE",adr(bas$),handle(6),adr(exe$))

END

Voila le message d'erreur que j'ai après avoir vu mes 2 messages qui donnent un chemin correcte :


et la base de registre :


J'ai rebooter le PC a plusieurs reprises mais rien n'y fait. Je n'y comprends plus rien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Mar 1 Nov 2016 - 18:08

Déjà, premier point: la doc de ma nouvelle fonction dit bien qu'il est important de faire
Code:
bar_both N
avec N étant le numaro du mémo. Sinon, le chargement du source donne n'mporte quoi, du fait des coupures de ligne intempestives.

Ensuite, deuxième mesure: pour tester, ne cache pas le mémo et regarde bien ce que tu récupères après le file_load.

Puis, troisième mesure: corriger le premier paramètre de la fonction ! En effet, tu n'en as pas compris le sens. Le premier paramètre donne le chemin et le nom d'un fichier EXE généré à partir d'un source Panoramic, et cet EXE sert de "source" pour copier l'interpréteur. Pour la facilité, et pour s'assurer d'avoir toujours la même version que celle du programme en train d'exécuter, on prend le programme lui-même. Et c'est
Code:
source$ = param_value$(0)
qui donne cette information.

Et finalement, est-ce que
Code:
MESSAGE exe$
fonctionne et affiche bien le bon chemin et nom du fichier EXE à créer ?

Donc, pour moi, je modifierais ton code comme suit:
Code:

CAPTION 0,"CONVERTISSEUR DE FICHIER EXE" : HIDE 0
MEMO 6 : LEFT 6,400 : TOP 6,300 : HIDE 6

DLL_ON "D:\BASIC\DLLs\KGF.dll"

DIM bas$ , exe$ , res%, source$

source$=PARAM_VALUE$(0)
bas$=PARAM_VALUE$(2)

MESSAGE bas$

FILE_LOAD 6,bas$

exe$=LEFT$(bas$,LEN(bas$)-3)+"EXE"

MESSAGE exe$

res%=DLL_CALL3("CompilePanoramicToEXE",adr(source$),handle(6),adr(exe$))

END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Mar 1 Nov 2016 - 18:34

Ok Klaus c'est bon !

C'est cette histoire de source$ = param_value$(0) qui m'a perturbé.

Je n'avais visiblement pas tout compris dans cette fonction.
Je viens de regarder en détail sur la doc KGF et là effectivement c'est plus clair. drunken

Merci et bonne soirée. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   Mar 1 Nov 2016 - 19:31

Smile Smile Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Récupérer nom fichier sur clic droit menu contextuel Windows   

Revenir en haut Aller en bas
 
Récupérer nom fichier sur clic droit menu contextuel Windows
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Récupérer nom fichier sur clic droit menu contextuel Windows
» comment faire clic droit et mon pseudo apparait
» Vos droits ne sont pas suffisants pour télécharger ce fichier
» probleme avec les cellules d'excel sur la mise en forme
» [Résolu] pble multiples avec avira

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: