FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
Nom court et anti fenetre dos Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
Nom court et anti fenetre dos Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Nom court et anti fenetre dos Emptypar Marc Hier à 11:42

» Bataille navale SM
Nom court et anti fenetre dos Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
Nom court et anti fenetre dos Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Nom court et anti fenetre dos Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Nom court et anti fenetre dos Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nom court et anti fenetre dos Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Nom court et anti fenetre dos Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Nom court et anti fenetre dos Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Nom court et anti fenetre dos Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Nom court et anti fenetre dos Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Nom court et anti fenetre dos Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Nom court et anti fenetre dos Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Nom court et anti fenetre dos Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

 

 Nom court et anti fenetre dos

Aller en bas 
3 participants
AuteurMessage
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Nom court et anti fenetre dos Empty
MessageSujet: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyDim 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
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Nom court et anti fenetre dos Empty
MessageSujet: re   Nom court et anti fenetre dos EmptyDim 18 Juin 2017 - 19:11

Personne ne voit rien ?...
Sad
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyLun 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
Jean Claude

Jean Claude


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

Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyLun 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
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Nom court et anti fenetre dos Empty
MessageSujet: re   Nom court et anti fenetre dos EmptyLun 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
Jean Claude

Jean Claude


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

Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyLun 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
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyLun 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
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Nom court et anti fenetre dos Empty
MessageSujet: re   Nom court et anti fenetre dos EmptyLun 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
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Nom court et anti fenetre dos Empty
MessageSujet: re   Nom court et anti fenetre dos EmptyMar 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
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos EmptyMar 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
Contenu sponsorisé





Nom court et anti fenetre dos Empty
MessageSujet: Re: Nom court et anti fenetre dos   Nom court et anti fenetre dos Empty

Revenir en haut Aller en bas
 
Nom court et anti fenetre dos
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» anti fenetre dos
» quel décision - anti-virus -
» Outil pour déterminer le nom court d'un fichier
» Conversion chemin long/chemin court (8.3)
» Bordure de Fenêtre

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: