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
» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Aujourd'hui à 16:52

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:16

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
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 : 7997
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 : 7997
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 : 471
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 : 5062
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 : 7997
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 : 5062
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 : 471
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 : 7997
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 : 7997
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 : 471
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: