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
» Gestion d'un système client-serveur.
Panoramic et les scripts vbs. Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Panoramic et les scripts vbs. Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Panoramic et les scripts vbs. Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Panoramic et les scripts vbs. Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Panoramic et les scripts vbs. Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Panoramic et les scripts vbs. Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Panoramic et les scripts vbs. Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Panoramic et les scripts vbs. Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Panoramic et les scripts vbs. Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Panoramic et les scripts vbs. Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Panoramic et les scripts vbs. Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Panoramic et les scripts vbs. Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Panoramic et les scripts vbs. Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Panoramic et les scripts vbs. Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Panoramic et les scripts vbs. Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
ETB Pokémon Fable Nébuleuse : où ...
Voir le deal

 

 Panoramic et les scripts vbs.

Aller en bas 
4 participants
AuteurMessage
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyLun 2 Mar 2020 - 8:32

Bonjour.

Certains utilisateurs de mon logiciel me signalent un blocage au lancement, dû à Windows Script Host.

Existe-t-il un moyen de déterminer la quantité de RAM installée, sans créer obligatoirement un script vbs ?

Code:
Windows script host est une fonction incluse dans Windows qui
est très peu utilisée mais qui est requis pour l'exécution de
certains programmes. Malheureusement depuis quelques années
cette fonction est le plus souvent utilisée par des programmes
malveillants pour infecter les ordinateurs: Virus, ransomware et autres.
Il est donc fortement recommandé de désactiver cette fonction, ce
qui est conseillé par tous les sites web sérieux qui traitent du sujet.
Pour le désactiver et le réactiver au besoin, j'utilise un logiciel portable
du nom de Marmiton qu'on ne trouve plus malheureusement sur le web.
Pour ceux que ça intéresse utilisez le lien qui suit pour le télécharger.
Il sera disponible pour quelques jours.

https://send.firefox.com/download/70a0 ... e/#zmPM09DSsq_-At1y-mTU0A

Pour en revenir à ton logiciel, à chaque exécution, il affiche un message
qui dit que le Windows script host est désactivé. (Voir image jointe)
Ce qui me paraît bizarre c'est qu'aucun script ne semble s'exécuter car
Marmiton ne me signale aucun blocage, ce qu'il fait habituellement
pour permettre de placer l'exécutable en liste blanche si il est légitime.
Pourquoi ton programme déclenche cette vérification? Aucune idée.
Il t'appartient de le découvrir. Bonne chance.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyLun 2 Mar 2020 - 16:23

Quelques infos, pour utilisation en ligne de commande:
https://www.windows-commandline.com/find-memory-size/

Pour moi le plus simple et efficace est: wmic memorychip get capacity
Code:
EXECUTE_WAIT "cmd.exe|/c wmic memorychip get capacity | clip"
message clipboard_string_paste$
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyLun 2 Mar 2020 - 18:17

Cela fonctionne, mais je n'ai jamais testé sur un PC autre que le mien:
Code:
dim s$
dim null%,hwnd%,Operation$,lp_Operation%,File$,lp_File%,Parameters$,lp_Parameters%,Directory$,lp_Directory%,ShowCmd%

peek_reverse

File$="test.bat"
file_open_write 1,File$
file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory | clip"
file_close 1

clipboard_string_copy " "
   '
   hwnd%=0
   '
   Operation$="open" : lp_Operation%=peek32(adr(Operation$))
   '
   lp_File%=peek32(adr(File$))
   '
   Parameters$="" : lp_Parameters% = peek32(adr(Parameters$))
   '
   Directory$="" : lp_Directory% = peek32(adr(Directory$))
   '
   ShowCmd%=0   :' fenètre dos caché
   '
   dll_on "shell32"
      null%=dll_call6("ShellExecuteA",hwnd%,lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%,ShowCmd%)
   dll_off

repeat  
   s$ = clipboard_string_paste$
   pause 20
until s$<>" "

message s$

end
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyLun 2 Mar 2020 - 18:49

Bonjour.

Merci Silverman.

Désolé, mais le code ne fonctionne plus à partir de la seconde exécution.

Merci de la suite.
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyLun 2 Mar 2020 - 19:54

Si cette nouvelle version ne fonctionne pas après plusieurs éxécution, c'est que le pb vient peut être du presse-papier:
Code:
dim s$
dim null%,hwnd%,Operation$,File$,Parameters$,Directory$,ShowCmd%
label test

peek_reverse

gosub test
gosub test

end
test:

clipboard_string_copy " "
   '
   hwnd%=0
   '
   Operation$="open"
   '
   File$="test.bat"
   if file_exists(file$)=1 then file_delete File$
   file_open_write 1,File$
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory | clip"
   file_close 1
   '
   Parameters$=""
   '
   Directory$=""
   '
   ShowCmd%=0   :' fenêtre dos caché
   '
   dll_on "shell32"
      null%=dll_call6("ShellExecuteA",hwnd%,peek32(adr(Operation$)),peek32(adr(File$)),peek32(adr(Parameters$)),peek32(adr(Directory$)),ShowCmd%)
   dll_off

repeat  
   s$ = clipboard_string_paste$
   pause 20
until s$<>" "

message s$

return
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMar 3 Mar 2020 - 3:12

J’ai retrouvé un code que j’ai posté sur le forum en 2018 et qui permettait d’identifier les composants matériels de l’ordinateur.
Le revoilà !

Code:

rem ============================================================================
rem          Identifier les composants matériels de l’ordinateur
rem   À l’aide du WMIC (Windows Management Instrumentation Command-line)
rem                     Papydall le 06 / 11 / 2018
rem ============================================================================
label choix
dim command$,i
width 0,1000 : height 0,600
top 0,(screen_y - height_client(0))/2 : left 0,(screen_x - width_client(0))/2
main_menu 10
   sub_menu 11 : parent 11,10 : caption 11,"Système d'exploitation"
   sub_menu 12 : parent 12,10 : caption 12,"   BIOS   "
   sub_menu 13 : parent 13,10 : caption 13,"Carte mère"
   sub_menu 14 : parent 14,10 : caption 14,"   CPU   "
   sub_menu 15 : parent 15,10 : caption 15,"Mémoire RAM"
   sub_menu 16 : parent 16,10 : caption 16,"Carte réseau"
   sub_menu 17 : parent 17,10 : caption 17,"Carte graphique"
   sub_menu 18 : parent 18,10 : caption 18,"Moniteur"
   sub_menu 19 : parent 19,10 : caption 19,"Disques de Stockage"
   sub_menu 20 : parent 20,10 : caption 20,"SystemInfo"
   sub_menu 21 : parent 21,10 : caption 21,"Quitter"
  
for i = 11 to 21 : on_click i,choix : next i
memo 100 : full_space 100
font_bold 100 : font_color 100,0,0,255 : bar_both 100
font_name 100,"consolas" : font_size 100,14
caption 0,"Identifier les composants matériels de l’ordinateur"
end
rem ============================================================================
Choix:
    select number_click
        case 11 : OS()
        case 12 : BIOS()
        case 13 : Carte_Mere()
        case 14 : CPU()
        case 15 : RAM()
        case 16 : Carte_Reseau()
        case 17 : Carte_Graphique()
        case 18 : Moniteur()
        case 19 : Disques_Stockage()
        case 20 : SystemInfo()()      
        case 21 : terminate
        
    end_select
return
rem ============================================================================
' Identifier le système d'exploitation (OS)
SUB OS()
    command$ = "wmic path Win32_OperatingSystem get CSDVersion,Manufacturer,Name,OperatingSystemSKU,OSArchitecture,Version /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_OperatingSystem"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier le BIOS
SUB BIOS()
    command$ = "wmic path Win32_BIOS get BIOSVersion,Manufacturer,Name /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_BIOS"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier la carte mère
SUB Carte_Mere()
    command$ = "wmic path Win32_BaseBoard get Manufacturer,Product,Version /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_BaseBoard"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier le processeur (CPU)
SUB CPU()
    command$ = "wmic path Win32_Processor get Manufacturer,Name,SocketDesignation /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_Processor"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier la mémoire RAM
SUB RAM()
    command$ = "wmic path Win32_PhysicalMemory get Capacity,FormFactor,Manufacturer,PartNumber,SerialNumber /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_PhysicalMemory"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier la carte réseau
SUB Carte_Reseau()
    dim_local q$
    q$ = chr$(34)
    command$ = "wmic path Win32_NetworkAdapter where "+q$+"MACAddress is not Null"+q$+" get Description,ServiceName /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_NetworkAdapter"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier la carte graphique (IGP ou GPU)
SUB Carte_Graphique()
    command$ = "wmic path Win32_VideoController get Name /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_VideoController"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier le moniteur
SUB Moniteur()
    command$ = "wmic path Win32_DesktopMonitor get MonitorManufacturer,MonitorType,Name /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_DesktopMonitor"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Identifier les disques de stockages (internes ou externes)
SUB Disques_Stockage()
    command$ = "wmic path Win32_DiskDrive get InterfaceType,Manufacturer,MediaType,Model,SerialNumber,Size /value"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"Classe : Win32_DiskDrive"
    item_add 100,"=============================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"=============================="
END_SUB
rem ============================================================================
' Générer un résumé de la configuration matérielle et logicielle d'un ordinateur.
' Veuillez patienter ... Le traitement peut durer un certain temps !
SUB SystemInfo()
    command$ = "systeminfo"
    execute_wait "cmd.exe |/c " + command$ + " | clip"
    clear 100
    item_add 100,"« systeminfo » donne une longue liste d’informations sur le système."
    item_add 100,"==================================================================================="
    item_add 100, CLIPBOARD_STRING_PASTE$
    item_add 100,"==================================================================================="
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMar 3 Mar 2020 - 19:07

Pedro a écrit:
Existe-t-il un moyen de déterminer la quantité de RAM installée, sans créer obligatoirement un script vbs ?

Oui.
La simple commande MEM de l’invite de commande peut faire l’affaire.

Code:

rem ============================================================================
rem         Afficher la mémoire utilisée et libre sur votre système
rem ============================================================================
memo 10 : full_space 10
font_bold 10 : font_color 10,0,0,255 : bar_both 10
font_name 10,"consolas" : font_size 10,14
execute_wait "cmd.exe |/c mem | clip"
item_add 10,string$(50,"*")
item_add 10, "Mémoire utilisée et libre sur votre système"
item_add 10, CLIPBOARD_STRING_PASTE$
item_add 10,string$(50,"*")
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Déterminer la quantité de RAM.   Panoramic et les scripts vbs. EmptyMar 3 Mar 2020 - 20:13

Bonsoir.

Désolé, mais la commande Dos mem n'existe plus sous Windows 10.

Je l'ai remplacé par la commande systeminfo, mais dans ce cas, la fenêtre DOS apparaît, ce qui n'est pas le top !
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMar 3 Mar 2020 - 20:43

@JL35
"wmic memorychip get capacity" ne fonctionne pas sur un systême ancien comme Windows XP.

@papydall
mem ne retourne pas une valeur correcte avec Windows XP.
Pour la quantité de RAM installée c'est toi qui apporte la solution avec le code que tu as retrouvé.(Et hop, archivé!)
Quant à "get TotalPhysicalMemory", ça retourne la taille de la mémoire vive disponible, que j'ai repris d'un code de Klaus ici

@pedro
Dans le sujet Déterminer la quantité de RAM, tu effectues un execute_wait dans une boucle while? Ca ne remplit pas la mémoire de faire comme ça?
Sinon, note que dans mon code, la fenêtre DOS n'apparaît pas. L'appel à "ShellExecuteA" du shell32 est équivalent à WinExec("test.bat", SW_HIDE).
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMar 3 Mar 2020 - 20:50

Bonsoir.

Je remarque qu'en portant à 250 la boucle d'attente, au lieu de 20, le code fonctionne correctement maintenant.
Je vais donc l'adopter.

Merci.

Ah, c'était trop beau !

Il semblerait que la commande peek32 ne soit pas reconnue par le compilateur.
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 10:31

Pedro a écrit:
Je remarque qu'en portant à 250 la boucle d'attente, au lieu de 20, le code fonctionne correctement maintenant.
Ca, ça signifie que le presse-papier met du temps à se remplir. J'ai trouvé une parade à ce pb, tu n'as plus besoin de modifier cette valeur. Pour peek32, je ne savais pas que cette commande n'existe pas pour le compilateur, mais ce n'est pas un pb, c'est remplaçable.
Nouvelle version:
Code:
dim s$
dim null%,hwnd%,Operation$,File_CTPM$,File_CTPM_tmp$,Parameters$,Directory$,ShowCmd%
label test

gosub test

END
test:

' clipboard_string_copy " "
   '
   hwnd%=0
   '
   Operation$="open"
   '
   File_CTPM$="CheckTotalPhysicalMemory.bat"
   File_CTPM_tmp$="CheckTotalPhysicalMemory.tmp"
   if file_exists(File_CTPM$)=1 then file_delete File_CTPM$
   if file_exists(File_CTPM_tmp$)=1 then file_delete File_CTPM_tmp$
   file_open_write 1,File_CTPM$
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory | clip"
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory > " + File_CTPM_tmp$ :' cré un fichier tmp
      file_writeln 1,"del " + File_CTPM_tmp$                                           :' supprime le fichier tmp
   file_close 1
   '
   Parameters$=""
   '
   Directory$=""
   '
   ShowCmd%=0   :' fenêtre dos caché
   '
   dll_on "shell32"
      null%=dll_call6("ShellExecuteA",hwnd%,StrPtr(adr(Operation$)),StrPtr(adr(File_CTPM$)),StrPtr(adr(Parameters$)),StrPtr(adr(Directory$)),ShowCmd%)
   dll_off

repeat : pause 20 : until file_exists(File_CTPM_tmp$)=1 :' vérifie la présence d'un fichier tmp --> le presse-papier a été rempli
repeat : pause 20 : until file_exists(File_CTPM_tmp$)=0 :' vérifie l'effacement du fichier tmp --> le .bat est fini

s$ = clipboard_string_paste$
message s$

file_delete File_CTPM$ :' supprime le fichier .bat

return

' équivalent peek32() pour le compilateur
fnc StrPtr(StrPtr_adr_source%)
 dim_local StrPtr_adr_destination%
' retrouve l'adresse du pointeur
   StrPtr_adr_destination% = peek(StrPtr_adr_source%)
   StrPtr_adr_destination% = StrPtr_adr_destination% + peek(StrPtr_adr_source%+1)*256
   StrPtr_adr_destination% = StrPtr_adr_destination% + peek(StrPtr_adr_source%+2)*65536
   StrPtr_adr_destination% = StrPtr_adr_destination% + peek(StrPtr_adr_source%+3)*16777216
   '
   result StrPtr_adr_destination%
end_fnc

(Si FNC n'est pas reconnu par le compilateur, c'est pas bloquant car j'ai un ancien SUB qui fera l'affaire)
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 10:36

Bonjour.

@Silverman.

Ton nouveau code interprété fonctionne correctement.

Malheureusement, il ne compile pas, la commande peek n'étant pas reconnue non plus.

Merci de la suite.
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 12:28

D'accord. Je vais essayer de remplacer la fonction PEEK.
Peux tu me dire si ce code fonctionne sans pb avec le compilateur ?
Code:
dim a,b,c%,d%,ch1$,ch2$,chp%,tmp%,null%

a=123
b=0
c%=456
d%=0
ch1$="zzz"
ch2$="aaa"

dll_on "kernel32"
 null%=dll_call3("RtlMoveMemory",adr(b),adr(a),8)
 null%=dll_call3("RtlMoveMemory",adr(d%),adr(c%),4)
 null%=dll_call3("RtlMoveMemory",adr(tmp%),adr(ch1$),4)
 null%=dll_call3("RtlMoveMemory",adr(ch1$),adr(ch2$),4)
 null%=dll_call3("RtlMoveMemory",adr(ch2$),adr(tmp%),4)
dll_off

print a
print b
print c%
print d%
print ch1$
print ch2$
tu dois obtenir:
123
123
456
456
aaa
zzz
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 12:59

Bonjour.

Tout est OK avec ce nouveau code compilé.
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 13:21

Alors cette dernière version devrait fonctionner:
Code:
' Déterminer la taille de la mémoire vive disponible
' version sans PEEK(), pour le compilateur
'
dim presse_papier$
dim null%,hwnd%,Operation$,F_Operation%,File_CTPM$,F_File_CTPM%,File_CTPM_tmp$,Parameters$,F_Parameters%,Directory$,F_Directory%,ShowCmd%
label test

gosub test

END
test:
   '
   hwnd%=0
   '
   Operation$="open"
   '
   File_CTPM$="CheckTotalPhysicalMemory.bat"
   File_CTPM_tmp$="CheckTotalPhysicalMemory.tmp"
   if file_exists(File_CTPM$)=1 then file_delete File_CTPM$
   if file_exists(File_CTPM_tmp$)=1 then file_delete File_CTPM_tmp$
   file_open_write 1,File_CTPM$
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory | clip"
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory > " + File_CTPM_tmp$ :' cré un fichier tmp
      file_writeln 1,"del " + File_CTPM_tmp$                                           :' supprime le fichier tmp
   file_close 1
   '
   Parameters$=""
   '
   Directory$=""
   '
   ShowCmd%=0   :' fenêtre dos caché
   '
   dll_on "kernel32"
    null%=dll_call3("RtlMoveMemory",adr(F_Operation%),adr(Operation$),4)   :' adresse de Operation$ --> F_Operation%
    null%=dll_call3("RtlMoveMemory",adr(F_File_CTPM%),adr(File_CTPM$),4)   :' adresse de File_CTPM$ --> F_File_CTPM%
    null%=dll_call3("RtlMoveMemory",adr(F_Parameters%),adr(Parameters$),4) :' adresse de Parameters$ --> F_Parameters%
    null%=dll_call3("RtlMoveMemory",adr(F_Directory%),adr(Directory$),4)   :' adresse de Directory$ --> F_Directory%
   dll_off
   '
   dll_on "shell32"
      null%=dll_call6("ShellExecuteA",hwnd%,F_Operation%,F_File_CTPM%,F_Parameters%,F_Directory%,ShowCmd%)
   dll_off
   '
   repeat : pause 20 : until file_exists(File_CTPM_tmp$)=1 :' vérifie la présence d'un fichier tmp --> le presse-papier a été rempli
   repeat : pause 20 : until file_exists(File_CTPM_tmp$)=0 :' vérifie l'effacement du fichier tmp --> le .bat est fini
   '
   presse_papier$ = clipboard_string_paste$
   message presse_papier$
   '
   file_delete File_CTPM$ :' supprime le fichier .bat
   '
return
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 15:08

Bonjour.

A la compilation, j'obtiens le message d'erreur suivant:

Error in generated line 111.
error 60: illegal inside functions


Mais comme ces erreurs proviennent du compilateur, je n'ai pas la solution !!
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 15:43

Là, je vois pas trop. Peut être la commande "file_writeln" qui n'aime pas le mélange chaîne de caractères + variables.
Si c'est ça, ce code ne doit pas fonctionner avec le compilateur:
Code:
dim File_CTPM$,File_CTPM_tmp$
   File_CTPM$="CheckTotalPhysicalMemory.bat"
   File_CTPM_tmp$="CheckTotalPhysicalMemory.tmp"
   if file_exists(File_CTPM$)=1 then file_delete File_CTPM$
   if file_exists(File_CTPM_tmp$)=1 then file_delete File_CTPM_tmp$
   file_open_write 1,File_CTPM$
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory | clip"
      file_writeln 1,"wmic ComputerSystem get TotalPhysicalMemory > " + File_CTPM_tmp$ :' cré un fichier tmp
      file_writeln 1,"del " + File_CTPM_tmp$                                           :' supprime le fichier tmp
   file_close 1
  
   print "ok"

Après, je ne sais pas, je n'utilise pas le compilateur. Place des REM devant des lignes jusqu'à trouver celle(s) qui provoque(nt) l'erreur.
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 16:02

Bonjour.

Je viens de trouver l'origine du problème.
Le compilateur n'apprécie pas trop les gosub.

J'ai donc remplacé le gosub par un appel de sub, et la compilation se déroule correctement.
Revenir en haut Aller en bas
silverman

silverman


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

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 18:11

super! Very Happy
Vu que ça ne fait pas appel à Windows Script Host, ton pb devrait être résolu maintenant cheers
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1561
Date d'inscription : 19/01/2014

Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. EmptyMer 4 Mar 2020 - 19:34

Oui, je confirme, tout fonctionne correctement maintenant.

SUPER !
Revenir en haut Aller en bas
Contenu sponsorisé





Panoramic et les scripts vbs. Empty
MessageSujet: Re: Panoramic et les scripts vbs.   Panoramic et les scripts vbs. Empty

Revenir en haut Aller en bas
 
Panoramic et les scripts vbs.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouveauté: des scripts en Panoramic !
» Exécution de scripts VBS sous Panoramic
» Exécution de scripts VBS
» Scripts en formules dynamiques
» Bug de Panoramic ?

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: