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
» Problème mathématique en 3D
par papydall Aujourd'hui à 2:59

» Reprise du développement et de la documentation
par Yannick Aujourd'hui à 1:21

» Une copie de Panoramic Editeur
par Jean Claude Mar 22 Mai 2018 - 21:03

» Objet 3D_PLANE, réalisation d'un dé en 3D
par Marc Mar 22 Mai 2018 - 0:33

» Cacher la barre des tâches
par Klaus Lun 21 Mai 2018 - 21:27

» Une "base de connaissance" - pour jouer ou plus si affinité
par Minibug Lun 21 Mai 2018 - 10:29

» quel est ce comportement de Panoramic_editor
par Oscaribout Lun 21 Mai 2018 - 0:22

» Des FORM(s) Colorés
par Jean Claude Dim 20 Mai 2018 - 20:58

» Recherches dans un fichier texte
par JL35 Dim 20 Mai 2018 - 20:18

» Problème d'affichage des pages du forum (Résolu)
par Jean Claude Dim 20 Mai 2018 - 20:00

» Créer une application *.exe
par Yannick Ven 18 Mai 2018 - 20:01

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par papydall Ven 18 Mai 2018 - 18:22

» Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
par Jean Claude Jeu 17 Mai 2018 - 8:37

» [Résolu] Récuperer les fonctions systeme de Panoramic
par Minibug Mar 15 Mai 2018 - 23:21

» Est-ce qu'un fichier est inclus dans l'application ?
par Yannick Mar 15 Mai 2018 - 12:04

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Nom court et anti fenetre dos

Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Nom court et anti fenetre dos   Dim 18 Juin 2017 - 14:56

Pourquoi si je fais ceci :
Code:
execute_wait "cmd /c for %I in ("+chr$(34)+f$+chr$(34)+") do echo.%~sI |clip"
message clipboard_string_paste$
j' ai un résultat et correct

et si je fais ceci :
Code:
sub ShortName(f$)
   dim_local a$
   a$="cmd /c for %I in ("+chr$(34)+f$+chr$(34)+") do echo.%~sI |clip"
   Exec_Prog(a$)
   message clipboard_string_paste$
end_sub

sub Exec_Prog(prog$)
 DIM_LOCAL scr$, bat$, axp$
 if dir_exists("c:\temp") <> 1 then dir_make "c:\temp"
 scr$ = "C:\temp\Vbscript.vbs": bat$ = "C:\temp\Bat.bat"
 ' Création du fichier .bat
 FILE_OPEN_WRITE F_OW%, bat$: FILE_WRITELN F_OW%, prog$: FILE_CLOSE F_OW%
 ' Création du script .vbs
 axp$ = "CreateObject("+CHR$(34)+"Wscript.Shell"+CHR$(34)+").Run "
 axp$ = axp$ + CHR$(34) + bat$ + CHR$(34) + ", 0, True"
 FILE_OPEN_WRITE F_OW%, scr$: FILE_WRITELN F_OW%, axp$: FILE_CLOSE F_OW%
 ' Exécution du script
 EXECUTE_WAIT "WSCRIPT.exe "+ scr$
 FILE_DELETE bat$: FILE_DELETE scr$
end_sub
le résultat est incorrect.
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 18 Juin 2017 - 19:11

Personne ne voit rien ?...
Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 614
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 10:10

Moi j'ai windows XP, cette syntaxe n'est pas compatible sous cet OS.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5360
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 10:38

De mon coté, je ne fais pas le poids. Sad
Désolé de ne pouvoir t'aider, Yannick.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 19 Juin 2017 - 14:22

Je ne sais pas si cela ne vient pas du bug de Execute / Execute_wait.
Je vais patienter pour laisser le temps à Jack de faire ce qu' il doit faire.
Ce n' est pas grave, cela attendra, je vais essayer de bidouiller autre chose.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5360
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 16:07

En attendant, Yannick regarde ce code de Papydall, tu pourrais bien y trouver la solution de ton problème.
Rectifies la ligne ligne 5, suivant ton besoin.

Code:
rem ============================================================================
rem          Nom_Court        Papydall
rem ============================================================================
dim fcourt$
Nom_Court("C:\Users\Jean Claude\Desktop\DSC05026.JPG") : ' chemin à adapter
message fcourt$
if fcourt$ <> "" then execute_wait fcourt$
end
rem ============================================================================
SUB Nom_Court(f$)
    if file_exists(f$) > 0
      execute_wait "cmd /c for %i in ("+chr$(34)+f$+chr$(34)+") do echo.%~sfi |clip"
      fcourt$ = clipboard_string_paste$
    else
      message "Ce fichier n'existe pas!" + chr$(13)+"Vérifier votre chemin"
    END_IF
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 614
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 17:29

Un équivalent de 'exécute'(API windows) sans les pb associés:
Code:
' plus de détails, en anglais:
' https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx


dir_change "C:" :' impose 'dir_current$' au répertoire racine, par exemple.

dim File_dir$, File$, Parameters_dir$, Parameters$, Directory$

'
Directory$ = "C:\Program Files\Panoramic Editor V 0.9.25"
'
' par rapport à dir_current$ si Directory$ = ""
File$ = "panoramic0927.exe"
'
' par rapport à dir_current$ si Directory$ = ""
' 'Parameter$' représente le(s) parametre(s) passé(s) à 'File$', ce n'est pas forcément un fichier
Parameters$ = "sources\test.bas"
CHECK_FILE_EXIST(Parameters$,Directory$) :' optionnel :  comme dans cet exemple 'Parameters$' est un fichier, vérifier s'il existe


' lance un programme source
 RUN_FILE(File$,Parameters$,Directory$)
 
' émuler execute_wait' : TODO: trouver une méthode fiable pour récupérer le nom du processus
dim k,process$
process$="panoramic v 0.9.27"
while handle_form(process$)=0 : end_while :' attendre que le processus soit démarré
while handle_form(process$)>0 : end_while :' attendre que le processus soit terminé
'
' vérifier que ça marche
for k=1 to 60
   caption 0,str$(k)
   pause 20
next k
END



sub RUN_FILE(File$,Parameters$,Directory$)
'
' équivalent de EXECUTE en panoramic
'
' File$ : fichier éxécutable. Le fichier est recherché dans: 'Directory$'(si <>""), sinon 'dir_current$'
' Parameters$ : paramètre(s) à passer
' Directory$ : chemin par défaut
'
   if variable("shell32%")=0
      ' commande : copie de mémoire
      dim kernel32%
      kernel32%=3
      LIBRARY kernel32%,"kernel32"
      command "copy_memory","RtlMoveMemory",kernel32%,"III","stdcall"
      ' ex.: copy_memory adr(destination), adr(source), taille_en_octet%


      ' commande : shell
      dim shell32%
      shell32%=5
      LIBRARY shell32%,"shell32"
      command "run","ShellExecuteA",shell32%,"IIIIII","stdcall"
      ' ex.: run hwnd%,adr(Operation$), adr(File$),adr(Parameters$), adr(Directory$), ShowCmd%
   end_if

   '
   dim_local null%
   dim_local hwnd%,Operation$,ShowCmd%   :' ,File$,Parameters$,Directory$
   dim_local lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%
  
   ' vérifier si File$ existe
   dim_local path$
   if Directory$=""
      path$=dir_current$
   else
      path$=Directory$
   end_if
   if right$(trim$(path$),1)<>""
      path$=path$ + ""
   end_if
   if file_exists(path$+File$)=0
      message path$+File$+" pas trouvé!"
      end
   end_if
  
   '
   hwnd%=0
   Operation$="open" : copy_memory adr(lp_Operation%),adr(Operation$),4
   ' File$="panoramic0927.exe" :
   copy_memory adr(lp_File%),adr(File$),4
   ' Parameters$="test.bas" :
   copy_memory adr(lp_Parameters%),adr(Parameters$),4
   ' Directory$="C:\Program Files\Panoramic Editor V 0.9.25" :
   copy_memory adr(lp_Directory%),adr(Directory$),4
   ShowCmd%=10

   run hwnd%,lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%,ShowCmd%
end_sub


sub CHECK_FILE_EXIST(File$,Directory$)
 dim_local path$
   if Directory$=""
      path$=dir_current$
   else
      path$=Directory$
   end_if
   if right$(trim$(path$),1)<>""
      path$=path$ + ""
   end_if
   if file_exists(path$+File$)=0
      message path$+File$+" pas trouvé!"
      end
   end_if
end_sub

Je pense qu'il doit y avoir la même chose dans KGF.
Ne tient pas compte de la fin du code(à partir de émuler 'execute_wait'), c'est juste un essai pour moi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 19 Juin 2017 - 18:35

Merci les gars !
je vais regarder tout çà de près, de très près... study

En attendant, j' avais pris le parti d' un fichier temp boite aux lettres.
Le programme appelant crée un fichier temp *.tmp du nom du programme appelé, ex :
"C:\Temp\PanoColorSelect.tmp" pour PanoColorSelect.exe
avant de lancer ce programme.
Une fois lancé, le programme recherche ce fichier, récupère les paramètres puis le détruit.
Et là je peux passer des milliers de paramètres sans souci.

Le plus gros problème est l' histoire des noms courts en passant par cmd si je veux utiliser l' anti fenêtre dos
celui ci utilise execute_wait avec passage de paramètres et là....
affraid

Alors vos idées viennent à point. Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 20 Juin 2017 - 12:03

J' ai testé ta formule Silverman.
Elle fonctionne très bien.
cheers

Par contre, et comme je suis un garcon qui ne manque pas de questions :
Cette formule sera t elle valable sur Mac  scratch
La formule de Papydallsera t elle aussi valable sur Mac  scratch
Comment sont gérés les noms longs/noms courts sur Mac  scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 614
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Mar 20 Juin 2017 - 17:31

La sub fait appel à l'API windows, donc ça ne marchera pas sur d'autre OS
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Nom court et anti fenetre dos   

Revenir en haut Aller en bas
 
Nom court et anti fenetre dos
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Promo : Mamutu (anti-malware) gratuit !
» depart dans le sens anti horaire
» probleme avec rafraichissement fenetre mtasc
» fenêtres publicitaires
» [COURT]Archetype par Aaron Sims

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: