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
» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

» Problème avec la 3D.
par Jack Jeu 14 Sep 2017 - 18:06

» Test de la 3D.
par mindstorm Mer 13 Sep 2017 - 19:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Nom court et anti fenetre dos

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

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

MessageSujet: Nom court et anti fenetre dos   Dim 18 Juin 2017 - 15: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 : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 18 Juin 2017 - 20:11

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

avatar

Nombre de messages : 465
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 11: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 : 5018
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 11: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 : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 19 Juin 2017 - 15: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 : 5018
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 17: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 : 465
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Lun 19 Juin 2017 - 18: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 : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 19 Juin 2017 - 19: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 : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 20 Juin 2017 - 13: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 : 465
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Nom court et anti fenetre dos   Mar 20 Juin 2017 - 18: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
Voir le sujet précédent Voir le sujet suivant 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
» Test anti-trojans en ligne

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: