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.
Détection connexion internet (résolu) Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Détection connexion internet (résolu) Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Détection connexion internet (résolu) Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Détection connexion internet (résolu) Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Détection connexion internet (résolu) Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Détection connexion internet (résolu) Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Détection connexion internet (résolu) Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Détection connexion internet (résolu) Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Détection connexion internet (résolu) Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Détection connexion internet (résolu) Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Détection connexion internet (résolu) Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Détection connexion internet (résolu) Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Détection connexion internet (résolu) Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Détection connexion internet (résolu) Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Détection connexion internet (résolu) 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
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 Détection connexion internet (résolu)

Aller en bas 
3 participants
AuteurMessage
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyDim 23 Juil 2017 - 16:38

Bonjour à tous,
Y a t'il un moyen simple de savoir (par programme) si la connexion internet est active ?

Mon problème:
Je déclenche une connexion internet (Firefox) par programme sur un site particulier.
Je le fais par EXECUTE, et non EXECUTE_WAIT, car je veux que les boutons de mon programme restent actifs pendant la connexion (pour pouvoir faire des 'copier' sur le site et 'coller' par programme de certaines zones du site).
Donc je lance la connexion, et après l'Execute je me mets dans une boucle d'attente de déconnexion  pour exploiter les résultats.

Comment tester si la déconnexion est effective ? j'ai essayé:
- boucle avec lancement de Tasklist, je regarde si Firefox est toujours actif, si oui je relance le test après une pause de 300 ms, ça marche, mais c'est un peu lourd.
- utilisation de la dll wininet.dll, fonction "InternetGetConnectedState", syntaxe:
Code:
DLL_ON: ct% = DLL_CALL2("InternetGetConnectedState",0,0): DLL_OFF
que j'avais dû trouver quelque part sur ce forum. Ca me renvoie bien ct%=1 au moment de la connexion, mais ça reste toujours à 1, même après la fin de connexion (?)

Si quelqu'un a une idée...


Dernière édition par JL35 le Mar 25 Juil 2017 - 18:04, édité 1 fois
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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyDim 23 Juil 2017 - 18:30

Citation :
 utilisation de la dll wininet.dll, fonction "InternetGetConnectedState", syntaxe:

Code:
DLL_ON: ct% = DLL_CALL2("InternetGetConnectedState",0,0): DLL_OFF
que j'avais dû trouver quelque part sur ce forum. Ca me renvoie bien ct%=1 au moment de la connexion, mais ça reste toujours à 1, même après la fin de connexion (?)

C’était moi, et c’était sur    ce poste

Citation :
ça reste toujours à 1, même après la fin de connexion (?)

Si tu  te déconnectes de ton site préféré, cela ne veut pas dire que ton PC est déconnecté d’INTERNET !
Tu restes toujours connecté tant que ta box ou ton modem est allumé.
Je viens d’essayer avec mon code

Code:

rem ============================================================================
rem              Votre PC est-il connecté à INTERNET ?
rem ============================================================================
InternetGetConnectedState()
end
rem ============================================================================
SUB InternetGetConnectedState()
    dim_local connecte
    dll_on "wininet"
    connecte = dll_call2("InternetGetConnectedState",0,0)
    select connecte
        case 0 : message "Votre PC n'est pas connecté à INTERNET"
        case 1 : message "Votre PC est connecté à INTERNET"
    end_select
END_SUB
rem ============================================================================


Dernière édition par papydall le Dim 23 Juil 2017 - 22:31, édité 1 fois
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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyDim 23 Juil 2017 - 19:23

Tu peux faire un PING sur ton serveur préféré en ligne de commande pour savoir si vos deux PC communiquent ensemble.

Code:
Ping  www.wikihow.com

ça donne:

Lisez la première ligne.
La première ligne indique le type de requête et la taille des données transmises.
Par exemple :Envoie d’une requête ‘ping’ sur www.wikihow.com [151.101.113.175] avec 32 octets de données:
Lisez le corps du résultat.
Une requête réussie vous indiquera la durée qu’a mise l’adresse pour répondre. TTL (Time to live) permet d'estimer le nombre de routeurs intermédiaires. Plus le nombre est petit, plus il y a des routeurs intermédiaires. Temps est le temps qu’a duré la connexion en milliseconde
Réponse de 151.101.113.175: octets=32 temps=59 ms TTL=55
Réponse de 151.101.113.175: octets=32 temps=59ms TTL=55
Réponse de 151.101.113.175: octets=32 temps=60ms TTL=55
Réponse de 151.101.113.175: octets=32 temps=58ms TTL=55

Lisez le résumé.
Après la fin de la requête, un résumé de la connexion apparaîtra.
Les paquets perdus veulent dire que la connexion ne s’est pas faite et les données se sont perdues.
Vous aurez aussi la moyenne qu’a duré la connexion.
Statistiques Ping pour 151.101.113.175:
   Paquets: Envoyées = 4, Reçues = 4, Perdues = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 58ms, Maximum = 60ms, Moyenne = 59ms


INFO:
Vous pouvez faire un PING sur votre propre PC :
Code:

Ping 127.0.0.1

Si cela échoue, la configuration du réseau ou la carte réseau (Network Interface Card) est peut-être hors service.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyDim 23 Juil 2017 - 22:49

Merci papydall pour ta réponse.
Pour l'utilisation de wininet, je rends volontiers à César papydall ce qui lui appartient.
En fait, mon pc est toujours connecté à internet via la box, alors dans ce cas la réponse de la sub sera toujours positive, donc ça ne me sert pas à grand chose. Ce que je veux savoir, c'est si je suis connecté à un site (cad navigateur actif).

J'avais bien vu cette histoire de ping, mais ça m'avait paru un peu compliqué.
Et ça se confirme quand je lis ton post, pas facile à appréhender.

Mon problème c'est de faire ça à partir d'un programme, sans intervention manuelle,
je veux que le programme détecte le moment où je me déconnecte (mon pc) de ma box, en fait je veux savoir quand mon navigateur (Firefox) cesse de travailler (fermé manuellement par l'utilisateur... moi).
Je vais essayer de comprendre ta méthode des Pings, mais je pense que je vais en rester à la détection de présence de firefox.exe dans la tasklist, bien que ça mette de longues secondes à se manifester à la fermeture, alors que c'est quasi immédiat à l'activation.

Merci à toi en tout cas, et bonne soirée !

PS
Je viens d'essayer la méthode ping, c'est très long pour détecter la déconnexion, puisqu'il faut attendre la fin du time-out.
De plus, ça semble ne pas marcher sur le site qui m'intéresse, c'est un site bancaire en https avec mot de passe... (c'est un programme pour surveiller ma fortune...)
Revenir en haut Aller en bas
silverman

silverman


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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 11:36

Tu peux essayer avec 2 programmes : un lanceur caché qui "execute_wait" firefox, et dans ton programme pricipal, tu "execute" le lanceur. Ensuite, tu testes la présence du lanceur avec 'handle_form'. Tant que firefox est éxécuté, le lanceur restera ouvert, dès que firefox sera fermé, le lanceur sera automatiquement fermé.
NB : Il n'est pas possible de tester le 'handle_form' de firefox directement car cette application n'a pas de titre.

Ex. de lanceur:
Code:
' lanceur

hide 0
application_title "lanceur_mozilla"
 
' executer firefox, mais pas un raccourci!
execute_wait "C:\Program Files\Mozilla Firefox\firefox.exe|http://panoramic.1fr1.net"  
terminate

Ex. de programme pricipal:
Code:
' programme principal

dim a%

' éxécute le lanceur
execute "C:\Program Files\Panoramic Editor V 0.9.25\sources\demarre_firefox.exe"

' attendre confirmation du lancement du lanceur
repeat
   a%=handle_form("lanceur_mozilla")
until a%>0

' attendre fermeture du lanceur
caption 0,"Lanceur en cours d'exécution..."
repeat
   a%=handle_form("lanceur_mozilla")
until a%=0

caption 0,"Fini!"

C'est très rapide, et en plus, c'est 100% panoramic Very Happy
Revenir en haut Aller en bas
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 13:04

Bonjour silverman,

Effectivement c'est une solution intéressante, et en plus... ça marche !
Et c'est bien plus réactif que de regarder dans la Tasklist.
Et tout en Panoramic, comme j'aime.

Le seul inconvénient est plutôt d'ordre... esthétique je dirais, générer un exécutable de plus de 2 M octets pour 3 lignes de code. Tant qu'on n'a pas de compilateur...

J'ai ajouté une pause de 300 ms dans la boucle repeat/until, pour ne pas surcharger.
Mais sinon c'est la solution que j'adopte, jusqu'à preuve du contraire.

Merci silverman !
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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 16:40

JL35 a écrit:
Mais sinon c'est la solution que j'adopte, jusqu'à preuve du contraire.

Lisez ma prose d'abord !

La commande de l’invite de commande TaskList affiche une liste de processus actuellement en cours sur un ordinateur local ou un ordinateur distant.
On peut rediriger la sortie de cette commande vers un fichier, ou vers le presse-papier ou même vers le vide.
Vers un fichier ou vers le presse-papier, c’est bien pour un éventuel traitement sur cette liste.
Mais la dite liste est souvent très longue.
Pour vous en convaincre, tapez dans une fenêtre de commande, tasklist et observez le résultat.

Or, il se trouve que ces vielles commandes cachent souvent des petits bijoux.
Autant s’en servir (ne dit-on pas que c’est dans les vieilles marmites qu’on fait la bonne soupe ?)
On peut utiliser des filtres pour … filtrer la sortie et obtenir juste ce qu’il faut.
Comme JL35 cherche Firfox.exe , on peut filtrer la sortie pour n’obtenir que la ou les tâches relatives au renard, pardon à FirFox

On code un petit fichier connect.bat par exemple (Vous avez toute la liberté de choisir un autre nom plus parlant pour vous, mais l’extension doit être .bat.
Enregistrez ce fichier dans votre dossier de travail ou ailleurs, puis exécutez le programme Panoramic suivant.
Il vous indiquera si votre navigateur préféré en service ou hors-service.

Personnellement, je préfère le métal à l’animal, c’est pourquoi, vous devez changer chrome.exe par votre navigateur préféré dans les deux codes.
Les deux codes tels qu’ils sont, je les ai testé sous chrome, mais rien, absolument rien ne dit qu’ils ne fonctionnent pas pour un autre navigateur.

Bon, j’ai trop parlé, voici mes deux trésors, je vous les offre.
Testez lorsque votre navigateur est en service, puis fermer votre navigateur et refaites le teste.

Connect.bat

Code:

tasklist /svc /fi "imagename eq chrome.exe" > task.txt
find /c "chrome.exe" list.txt |clip



Code:

execute_wait "c:\users\acer\desktop\connect.bat"
if val(mid$(clipboard_string_paste$,24,1)) > 0
   message "Chrome est en sevice"
else
   message "Chrome est hors-service"
end_if
file_delete "task.txt"


Voila, c'est court, tout juste le SMIG.tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 17:39

Salut papydall,

euh, tes deux lignes de code du haut (le .bat), c'est task.txt ou list.txt, mais pas les deux ???

Ton idée est intéressante, mais ça ne marche pas tel quel chez moi.
Déjà le 'connect.bat', je rectifie:
Code:
@echo off
tasklist /svc /fi "imagename eq firefox.exe" > z:\task.txt
find /c "firefox.exe" z:\task.txt |clip

et dans le programme principal (pour le test uniquement):
Code:
while 2>1
    execute_wait "z:\connect.bat"
    print_locate 0,0
    if right$(trim$(clipboard_string_paste$),1) = "1"
       print "Firefox est en service"
    else
       print "Firefox est hors-service"
    end_if
    file_delete "z:\task.txt"
    pause 300
end_while

(le z:\ à remplacer par tout répertoire de manoeuvre).
J'ai ajouté une temporisation de 300 ms pour donner un peu d'air.

Inconvénient majeur: apparition de la fenêtre noire d'exécution à chaque passage !
(il y a moyen de la supprimer, mais il faut rajouter du code).
Néanmoins l'idée est intéressante, je regarde de plus près.
J'avais bien vu pour les paramètres de tasklist, mais ça me paraissait plutôt obscur...

ET d'ailleurs, pourquoi passer par un programme externe (connect.bat) et ne pas faire tout le boulot dans le programme principal ?
Code:
dim q$: q$ = chr$(34)
WHILE 2>1
  EXECUTE_WAIT "cmd.exe /c tasklist /svc /fi "+q$+"imagename eq firefox.exe"+q$+" | clip"
  PRINT_LOCATE 0,0
  IF INSTR(clipboard_string_paste$,"firefox.exe") > 0
      PRINT "Firefox est en service"
    ELSE
      PRINT "Firefox est hors-service"
    END_IF
    PAUSE 300
END_WHILE
plus de fichiers annexes, y'a plus qu'à retrouver ma petite sub qui permet de supprimer la fenêtre noire d'exécution.
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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 21:34

Hello JL35
Citation :
euh, tes deux lignes de code du haut (le .bat), c'est task.txt ou list.txt, mais pas les deux ???

Tu as tout à fait raison.
J’ai fait un test avec list.txt, puis je me suis dit que list.txt n’est pas très parlant comme nom de fichier ; je l’ai changé en task.txt.
Et puis quand on ne regarde pas bien et qu’on veut vite poster, on donne souvent l’ancienne version.
Bon, tu as tout compris.

Aujourd’hui matin c’est la canicule chez nous : ça devient presque insupportable.
On avoisine les 40 ° C et comme j’étais de retour d’un déplacement vers la ville voisine, j’ai eu l’idée de tasklist et ses différentes possibilités.
De retour, j’ai testé l’idée et je n’avais pas l’envie de rester devant l’ordi.

Citation :
ET d'ailleurs, pourquoi passer par un programme externe (connect.bat) et ne pas faire tout le boulot dans le programme principal ?

C’est tout simplement parce que depuis un certain temps, je n’arrive plus à faire exécuter une ligne de commande par panoramic.
J’obtiens l’erreur suivante.


Détection connexion internet (résolu) Sans_t10

Comme j’ai voulu voir le résultat  de tasklist avec les filtres, je me suis contenté de faire un batch, tout en sachant que tu vas améliorer la chose.

Bref, je pense que la commande tasklist combinée avec  find est intéressante à developper.


Pour terminer : on a eu un petit orage avec quelques goutes de pluie pendant l’après midi, et l’atmosphère est mieux respirable à présent.
Je quitte pour en profiter.
Mais avant de quitter, je t'offre ce cadeau à toi et à tous les panoramiciens.
Voici mon cadeau
A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyLun 24 Juil 2017 - 21:59

Merci pour le cadeau papydall, effectivement la ligne de commande Windows est pleine de ressources et facile à mettre en oeuvre depuis Panoramic.

Dans le cas présent, on peut très bien appeler tasklist (avec les paramètres que tu as donné) depuis le programme principal, dans une boucle avec timer, et tester le résultat (dans le presse-papier) à chaque passage, et sortir de la boucle quand la condition désirée est remplie.

Mon problème c'est que je veux que ces appels se fassent de manière invisible, sans la fenêtre noire qui clignote à la cadence des appels, c'est très inesthétique !

J'avais fait une petite sub pour ça, création et exécution d'un script vbs, je m'en suis servo sans problème jusqu'ici, mais là, en l'occurence, ça ne va mas, quelque chose est incorrect dans le passage des paramètres.
Pour info voici la sub:
Code:
SUB Exprog(pr$)
' Exécution d'un programme externe sans la fenêtre noire Ms-DOS
' - exemple:   Exprog("Cmd.exe /c DIR C:\UTIL >C:\TEMP\Dir.txt")
DIM_LOCAL vb$, q$: vb$ = "C:\Temp\Vb.vbs": q$ = CHR$(34)
FILE_OPEN_WRITE 9, vb$: ' ===== Création du script .vbs =====
  FILE_WRITELN 9,"CreateObject("+q$+"Wscript.Shell"+q$+").Run "+q$+pr$+q$+",0,True"
FILE_CLOSE 9
EXECUTE_WAIT "WSCRIPT.exe "+vb$: ' ===== Exécution du script =====
FILE_DELETE vb$
END_SUB

Je veux lui faire exécuter la commande (que tu as donné là-haut):
Code:
cmd.exe /c tasklist /svc /fi "imagename eq firefox.exe" | clip
mais quelque chose ne plait pas à Vbscript avec ces guillemets intégrés...

En ce qui concerne la canicule, on a eu notre compte ici aussi (mais quand même sans doute moins que chez vous qui êtes plus près des tropiques...), et maintenant on a de violentes averses passagères... et il fait moins chaud. Pour le moment.
En tout cas il faut boire mon ami, et même sans modération !
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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyMar 25 Juil 2017 - 2:50

Ça ne répond pas à ta question, Jl35, mais c’est toujours bon de savoir :
Code:

rem ============================================================================
' Obtenir
' votre système d'exploitation,
' votre résolution d'écran,
' votre adresse IP et
' différentes informations techniques sur les éléments supportés par votre
' navigateur internet
  execute_wait "https://lehollandaisvolant.net/tout/tools/browser/"
rem ============================================================================
' Quel navigateur internet utilisez-vous actuellement
  execute_wait "http://www.whatbrowser.org/"
rem ============================================================================
  execute_wait "http://www.mon-navigateur.com/"
rem ============================================================================

Exécutez successivement les trois execute_wait.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyMar 25 Juil 2017 - 12:55

Je suis entièrement d'accord avec toi papydall, ça ne répond pas à ma question ! Very Happy

Bon, en résumé, quelqu'un saurait-il comment:
- passer le paramètre de tasklist à mon script vbs dans l'exemple ci-dessus (Sub Exprog) ?
- oui, plus généralement, comment exécuter une commande en mode transparent, sans apparition de la fenêtre noire ?
J'ai trouvé plusieurs solutions sur le web, en général en faisant appel à une ressource externe (cmdow, hstart, quiet, etc.), mais j'aime autant pas, c'est moins universel. Et il y a souvent le script vbs, qui marche bien pour un paramètre simple, mais dans mon cas il contient des guillemets et ça ne marche plus.

Problème réglé:
Pour info, je n'ai pas réussi à passer les paramètres du tasklist à mon script vbs (problème de guillemets multiples).
Du coup je crée un .bat contenant l'appel au tasklist, et c'est ce .bat que je fais exécuter par le script, et... ça marche, en panoramic et sans ressources externes.

A tout hasard, la sub qui permet d'exécuter une commande sans affichage:
Code:
SUB Exprog(pr$)
  ' Exécution d'un programme externe sans la fenêtre noire Ms-DOS
  ' - exemple:   Exprog("Cmd.exe /c DIR C:\UTIL >C:\TEMP\Dir.txt")
  DIM_LOCAL vb$,vt$,q$
  vb$ = "Z:\Vb.vbs": vt$ = "Z:\Tmp.bat": q$ = CHR$(34)
  IF UPPER$(FILE_EXTRACT_EXTENSION$(pr$))<>".BAT"
      FILE_OPEN_WRITE 9,vt$
          FILE_WRITELN 9,"@echo off"
          FILE_WRITELN 9,pr$
      FILE_CLOSE 9: pr$ = vt$
  END_IF
  FILE_OPEN_WRITE 9, vb$: ' ===== Création du script .vbs =====
      FILE_WRITELN 9,"CreateObject("+q$+"Wscript.Shell"+q$+").Run "+q$+pr$+q$+",0,True"
  FILE_CLOSE 9
  EXECUTE_WAIT "WSCRIPT.exe "+vb$: ' ===== Exécution du script =====
  FILE_DELETE vb$: IF FILE_EXISTS(vt$) = 1 THEN FILE_DELETE vt$
END_SUB
(Z: est mon volume de manoeuvre, une partie de la mémoire vive déclarée en disque annexe).

et l'appel à la sub dans mon cas ci-dessus (savoir si Firefox est actif ou non, merci papydall):
Code:
a$ = "tasklist /svc /fi "+q$+"imagename eq firefox.exe"+q$+" | clip"
Exprog(a$)
IF INSTR(CLIPBOARD_STRING_PASTE$,"firefox") > 0
   ' Firefox actif
ELSE
    ' Firefox inactif
END_IF
Revenir en haut Aller en bas
silverman

silverman


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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyMer 26 Juil 2017 - 18:36

@papydall
le pb de ne plus pouvoir exécuter une ligne de commande par panoramic est dû aux espaces dans les paramètres, il me semble. Cela se produit depuis la révision des commandes 'execute' et 'execute_wait', je l'ai signalé à jack et il a propsé un contournement qui ne fonctionne que si ces paramètres sont destinés à la fonction 'param_value'. C'est un bug qui est bloquant pour le cas que tu as proposé. Sad

@jl35
un substitut à la commande execute qui fonctionne, avec l'exemple de tasklist:
Code:
dim File$,Parameters$,Directory$

File$="cmd.exe"
Parameters$="/k tasklist /svc /fi "+chr$(34)+"imagename eq firefox.exe"+chr$(34)+" |clip"
Directory$=""
 
RUN_FILE(File$,Parameters$,Directory$)


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%
 
  '
  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
Revenir en haut Aller en bas
JL35




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

Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) EmptyMer 26 Juil 2017 - 20:59

Bonsoir silverman,
Je viens d'essayer ta solution qui est séduisante a priori, avec la dernière version de Panoramic_Editor (sinon normalement je fonctionne avec une version précédente), mais ça ne marche pas chez moi.

C'est passant (ça rend la main après l'appel à la sub), mais ça ouvre une fenêtre noire qui reste ouverte, et je ne récupère rien dans le presse-papier...

Je crois que je vais en rester à ma solution à moi, certes un peu bestiale, mais qui me fait le boulot.

PS je viens de regarder, pour la fenêtre qui reste ouverte ça doit être le paramètre /K de cmd.
Avec /c la fenêtre se ferme (j'aimerais autant qu'elle ne s'ouvre pas du tout, du moins pas de manière visible), mais toujours rien dans le clipboard.
Revenir en haut Aller en bas
Contenu sponsorisé





Détection connexion internet (résolu) Empty
MessageSujet: Re: Détection connexion internet (résolu)   Détection connexion internet (résolu) Empty

Revenir en haut Aller en bas
 
Détection connexion internet (résolu)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» détection d'erreur
» Problème de connexion Internet.
» Tester votre réseau local et votre connexion Internet
» Appel d'un site sur Internet (résolu)
» [Résolu] Comment ouvrir un fichier depuis internet

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: