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
» Logiciel de planétarium.
Récupérer le numéro d'instance d'un programme Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Récupérer le numéro d'instance d'un programme Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Récupérer le numéro d'instance d'un programme Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Récupérer le numéro d'instance d'un programme Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Récupérer le numéro d'instance d'un programme Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Récupérer le numéro d'instance d'un programme Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Récupérer le numéro d'instance d'un programme Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Récupérer le numéro d'instance d'un programme Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Récupérer le numéro d'instance d'un programme Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Récupérer le numéro d'instance d'un programme Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Récupérer le numéro d'instance d'un programme Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Récupérer le numéro d'instance d'un programme Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Récupérer le numéro d'instance d'un programme Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Récupérer le numéro d'instance d'un programme Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Récupérer le numéro d'instance d'un programme Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

 

 Récupérer le numéro d'instance d'un programme

Aller en bas 
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Récupérer le numéro d'instance d'un programme Empty
MessageSujet: Récupérer le numéro d'instance d'un programme   Récupérer le numéro d'instance d'un programme EmptyLun 27 Juin 2011 - 1:29

Pour mon programme, je suis en train de bidouiller un peu les DLL des API, mais je calle sur un truc que vous avez déjà dû résoudre avec Klaus, mais je ne vois pas la solution de mon côté.

Je n'arrive pas à récupérer le numéro d'instance du programme pour le passer en paramètre des appels. J'ai essayé de fouillé du côté des DLL de Klaus, mais je calle.

Je vous mets le code du programme en dessous:
Le but étant de faire les appels au DLL après surtout
En fait, je cherche donc l'équivalent d'un Me.Hndl en VB ou de la fonction Instance() en Windev pour initialiser hInst%

Code:
REM DLL: USER32.DLL; Commandes GetDC, DrawIcon et DestroyIcon
REM ExtractIcon extrait un icône unique depuis un fichier. Ce fichier peut être un exécutable (.exe), une bibliothèque dynamique (.dll)
REM ou un fichier icône. Alternativement, la fonction peut aussi déterminer combien d'icônes sont stockées dans un fichier.
REM L'icône générée par cette fonction doit être détruite en utilisant DestroyIcon après que le programme ait terminé de l'utiliser.
REM Si la fonction faillit parce que le fichier n'a pas été trouvé, elle retourne 1.
REM Si la fonction faillit parce que l'icône requis n'existe pas, elle renvoie 0.
REM Si la fonction réussit et que le nombre d'icônes a été demandé, elle renvoie ce nombre.
REM Si la fonction réussit et que l'icône a été spécifiée, elle retourne un handle de l'extraction.
REM DLL: shell32  Syntaxe: hIcon% = DLL_CALL3("ExtractIconA", hInst%, adr(FileName$), nIconIndex%)
REM  * hInst%:    Le handle de l'instance de l'application appelant la fonction.
REM  * FileName$:  Le nom du fichier dont il faut extraire l'icône.
REM  * nIconIndex: Si ce paramètre est à -1, la fonction retourne le nombre d'icônes stocké dans le fichier
REM                Si ce paramètre est un nombre positif, la fonction extrait l'icône en utilisant un index sur une base zéro
REM                (le 0 identifie le premier icône, le 1 le deuxième, etc.).
REM  Affichons dans une fenêtre quelconque, l'icône de la calculatrice
REM  D'après un code disponible sur Beaussier en ligne

DIM obj%, hWnd%, hInst%, hDC%, x%, y%, Fic$
DIM MaxX%, MaxY%, RetourDLL%, Boutton%, hIcon%, nIconIndex%, i%
DIM rep$, Fichier_principal$, var$(4), val_var$(4), aff_fonction$, var_resultat$, val_var_resultat$

LABEL Prepare_Ecran, Retour, Quitter, Extrait, DrawIcon, DestroyIcon
LABEL Affiche_avant_call, Affiche_apres_call

obj% = 0 : hWnd% = Handle(0)

Fic$ = "C:\WINDOWS\system32\calc.exe"
MaxY% = 390 : MaxX% = 950

REM Initialisation de la fenêtre principale
Height 0, MaxY% : Width 0, MaxX% : obj%=0 : Caption 0,"Test-ExtractIconA, DrawIcon & DestroyIcon"

REM récupération du nom du fichier principal
 rep$ = dir_current$ : IF right$(rep$,10)="\Prog_test" THEN rep$=LEFT$(rep$,len(rep$)-10)
 obj%=obj% + 1 : FILE_OPEN_READ obj% , rep$ + "\Options.def"
 FILE_READLN obj% , Fichier_principal$  :' Pas besoin du fichier ini
 FILE_READLN obj% , Fichier_principal$  :' Pas besoin du chemin
 FILE_READLN obj% , Fichier_principal$  :' On garde ça, c'est le nom du programme principal
 FILE_CLOSE  obj%

dll_on "User32.dll"
hDC% = DLL_CALL1("GetDC", hWnd%)  : REM Récupération du contexte de la fenêtre
dll_off

 GOSUB Prepare_Ecran
 obj%=obj% + 1: button obj% : top obj%,MaxY% - 63 : left obj%,5  : width obj%,130 : caption obj%,"Extrait l'icône Calculatrice"  : on_click obj%, Extrait : Boutton%=obj%
 obj%=obj% + 1: button obj% : top obj%,MaxY% - 63 : left obj%,140 : width obj%,85  : caption obj%,"Retour au menu"  : on_click obj%, Retour
 obj%=obj% + 1: button obj% : top obj%,MaxY% - 63 : left obj%,230 : width obj%,88  : caption obj%,"Quitter"        : on_click obj%, Quitter

end

Extrait:

 INACTIVE Boutton%
 dll_on "shell32.dll"
 nIconIndex% = 0
 var$(1)="hInst%":var$(2)="Fic$": var$(3)="nIconIndex%":var$(4)=""
 val_var$(1) = STR$(hInst%)
 val_var$(2) = Fic$
 val_var$(3) = STR$(nIconIndex%):val_var$(4)=""
 gosub Affiche_avant_call

 hIcon% = DLL_CALL3("ExtractIconA", hInst%, adr(Fic$), nIconIndex%)

 aff_fonction$="retourDLL% = DLL_Call3(" + CHR$(34) + "ExtractIconA" + CHR$(34) + ", hInst%, adr(Fic$), nIconIndex%)"
 val_var$(1)=STR$(hInst%):val_var$(2)=Fic$:val_var$(3)=STR$(nIconIndex%):val_var$(4)=""
 var_resultat$="hIcon%":val_var_resultat$=str$(hIcon%)
 gosub Affiche_apres_call
 dll_off
 CAPTION Boutton%, "Affiche l'iône Calcultarice": on_click Boutton%, DrawIcon : ACTIVE Boutton%

RETURN

DrawIcon:

 INACTIVE Boutton%
 dll_on "user32.dll"
 x% = 50: y% = 50
 var$(1)="hDC%":var$(2)="x%": var$(3)="y%":var$(4)="hIcon%"
 val_var$(1)=STR$(hDC%):val_var$(2)=STR$(x%):val_var$(3)=STR$(y%):val_var$(4)=STR$(hIcon%)
 gosub Affiche_avant_call

 retourDLL% = DLL_Call4("DrawIcon", hDC%, x%, y%, hIcon% )

 aff_fonction$="retourDLL% = DLL_Call4(" + CHR$(34) + "DrawIcon" + CHR$(34) + ", hDC%, x%, y%, hIcon% )"
 val_var$(1)=STR$(hDC%):val_var$(2)=STR$(x%):val_var$(3)=STR$(y%):val_var$(4)=STR$(hIcon%)
 var_resultat$="retourDLL%":val_var_resultat$=str$(retourDLL%)
 gosub Affiche_apres_call
 dll_off
 CAPTION Boutton%, "Suppr. l'iône Calcultarice": on_click Boutton%, DestroyIcon : ACTIVE Boutton%

RETURN

DestroyIcon:

 INACTIVE Boutton%
 dll_on "user32.dll"
 x% = 50: y% = 50
 var$(1)="":var$(2)="hIcon%": var$(3)="":var$(4)=""
 val_var$(1)="":val_var$(2)=STR$(hIcon%):val_var$(3)="" : val_var$(4)=""
 gosub Affiche_avant_call

 retourDLL% = DLL_Call1("DestroyIcon", hIcon% )

 aff_fonction$="retourDLL% = DLL_Call1(" + CHR$(34) + "DesytoyIcon" + CHR$(34) + ", hIcon% )"
 val_var$(1)="":val_var$(2)=STR$(hIcon%):val_var$(3)="" : val_var$(4)=""
 var_resultat$="retourDLL%":val_var_resultat$=str$(retourDLL%)
 gosub Affiche_apres_call
 dll_off
 CAPTION Boutton%, "Extrait l'icône Calculatrice": on_click Boutton%, Extrait : ACTIVE Boutton%

RETURN

Affiche_avant_call:
  FOR i% = 1 to 4
    CAPTION 110+i%, var$(i%)
    CAPTION 90 +i%, val_var$(i%)
  NEXT i%
RETURN

Affiche_apres_call:
  FOR i% = 1 to 4
    CAPTION 120 +i%, var$(i%)
    CAPTION 130 +i%, val_var$(i%)
  NEXT i%
  CAPTION 142,aff_fonction$
  CAPTION 98, var_resultat$
  CAPTION 99, val_var_resultat$
  WAIT 1
RETURN

Prepare_Ecran:

 CONTAINER 105 : LEFT 105,330 : TOP 105,5  : WIDTH 105,600 : HEIGHT 105,30 : INACTIVE 105
 ALPHA 106 : PARENT 106,105: LEFT 106,10  : TOP 106,7 : WIDTH 106,590 : HEIGHT 106, 15 : FONT_BOLD 106 : FONT_NAME 106,"Tahoma":FONT_SIZE 106,12 : CAPTION 106,"Test de la DLL: gdi32.dll"

 CONTAINER 107 : LEFT 107,330 : TOP 107,35 : WIDTH 107,600 : HEIGHT 107,104 : INACTIVE 107

 ALPHA 81 : PARENT 81,107 : LEFT 81,10 : TOP 81,8  : WIDTH 81,590 : HEIGHT 81, 10 : FONT_SIZE 81,9 : CAPTION 81,""
 ALPHA 82 : PARENT 82,107 : LEFT 82,10 : TOP 82,21 : WIDTH 82,590 : HEIGHT 82, 10 : FONT_SIZE 82,9 : CAPTION 82,"SetPixel change la couleur du pixel à la coordonnée spécifiée avec la couleur spécifiée."
 ALPHA 83 : PARENT 83,107 : LEFT 83,10 : TOP 83,34 : WIDTH 83,590 : HEIGHT 83, 10 : FONT_SIZE 83,9 : CAPTION 83,"Le programme affiche une trame de points de couleur rouge vif"
 ALPHA 84 : PARENT 84,107 : LEFT 84,10 : TOP 84,47 : WIDTH 84,590 : HEIGHT 84, 10 : FONT_SIZE 84,9 : CAPTION 84,"    *  hDC% :    Identifie le contexte objet (device context)."
 ALPHA 85 : PARENT 85,107 : LEFT 85,10 : TOP 85,60 : WIDTH 85,590 : HEIGHT 85, 10 : FONT_SIZE 85,9 : CAPTION 85,"    *  x% :      Précise la coordonnée en x en unité logique du point à changer."
 ALPHA 86 : PARENT 86,107 : LEFT 86,10 : TOP 86,73 : WIDTH 86,590 : HEIGHT 86, 10 : FONT_SIZE 86,9 : CAPTION 86,"    *  y% :      Précise la coordonnée en y en unité logique du point à changer."
 ALPHA 87 : PARENT 87,107 : LEFT 87,10 : TOP 87,86 : WIDTH 87,590 : HEIGHT 87, 10 : FONT_SIZE 87,9 : CAPTION 87,"    *  crColor%: Spécifie la couleur à utiliser pour peindre le point."

 CONTAINER 100: LEFT 100,330 : TOP 100,139 : WIDTH 100, 600 : HEIGHT 100, 43: INACTIVE 100
 ALPHA 141 : PARENT 141,100 : LEFT 141,10 : TOP 141,8  : WIDTH 141,590 : HEIGHT 141, 12 : FONT_BOLD 141 : FONT_NAME 141,"Tahoma":FONT_SIZE 141,9 : CAPTION 141,"Execute cette fonction"
 ALPHA 142 : PARENT 142,100 : LEFT 142,10 : TOP 142,24 : WIDTH 142,590 : HEIGHT 142, 10 : FONT_COLOR 142,0,0,255 : FONT_SIZE 142,9

 CONTAINER 108 : LEFT 108,330 : TOP 108,182 : WIDTH 108,600 : HEIGHT 108,76
 ALPHA 109 : PARENT 109,108 : LEFT 109,10  : TOP 109,8  : WIDTH 109,380 : HEIGHT 109, 12  : FONT_BOLD 109    : FONT_NAME 109,"Tahoma":FONT_SIZE 109,9 : CAPTION 109,"Avant fonction"
 ALPHA 111 : PARENT 111,108 : LEFT 111,10  : TOP 111,21 : WIDTH 111,100 : HEIGHT 111, 10 : FONT_SIZE 111,9 : REM Variable 1
 ALPHA 112 : PARENT 112,108 : LEFT 112,10  : TOP 112,34 : WIDTH 112,100 : HEIGHT 112, 10 : FONT_SIZE 112,9 : REM Variable 2
 ALPHA 113 : PARENT 113,108 : LEFT 113,10  : TOP 113,47 : WIDTH 113,100 : HEIGHT 113, 10 : FONT_SIZE 113,9 : REM Variable 3
 ALPHA 114 : PARENT 114,108 : LEFT 114,10  : TOP 114,60 : WIDTH 114,100 : HEIGHT 114, 10 : FONT_SIZE 114,9 : REM Variable 4
 REM ALPHA 115 : PARENT 115,108 : LEFT 115,10  : TOP 115,88 : WIDTH 115,100 : HEIGHT 115, 10 : FONT_SIZE 115,9 : REM Variable 5
 REM ALPHA 116 : PARENT 116,108 : LEFT 116,10  : TOP 116,104: WIDTH 116,100 : HEIGHT 116, 10 : FONT_SIZE 116,9 : REM Variable 6
 ALPHA 91 : PARENT 91,108 : LEFT 91,120 : TOP 91,21 : WIDTH 91,270 : HEIGHT 91, 10 : FONT_COLOR 91,0,0,255 : FONT_SIZE 91,9 : REM Valeur de Var. 1
 ALPHA 92 : PARENT 92,108 : LEFT 92,120 : TOP 92,34 : WIDTH 92,270 : HEIGHT 92, 10 : FONT_COLOR 92,0,0,255 : FONT_SIZE 92,9 : REM Valeur de Var. 2
 ALPHA 93 : PARENT 93,108 : LEFT 93,120 : TOP 93,47 : WIDTH 93,270 : HEIGHT 93, 10 : FONT_COLOR 93,0,0,255 : FONT_SIZE 93,9 : REM Valeur de Var. 3
 ALPHA 94 : PARENT 94,108 : LEFT 94,120 : TOP 94,60 : WIDTH 94,270 : HEIGHT 94, 10 : FONT_COLOR 94,0,0,255 : FONT_SIZE 94,9 : REM Valeur de Var. 4
 REM ALPHA 95 : PARENT 95,108 : LEFT 95,120 : TOP 95,88 : WIDTH 95,270 : HEIGHT 95, 10 : FONT_COLOR 95,0,0,255 : FONT_SIZE 95,9 : REM Valeur de Var. 5
 REM ALPHA 96 : PARENT 96,108 : LEFT 96,120 : TOP 96,104: WIDTH 96,270 : HEIGHT 96, 10 : FONT_COLOR 96,0,0,255 : FONT_SIZE 96,9 : REM Valeur de Var. 6

 CONTAINER 103 : LEFT 103,330 : TOP 103,258: WIDTH 103,600 : HEIGHT 103,89 : INACTIVE 103
 ALPHA 89 : PARENT 89,103 : LEFT 89,10  : TOP 89,8  : WIDTH 89,380 : HEIGHT 89, 12 : FONT_BOLD 89 : FONT_SIZE 89,9 : CAPTION 89,"Après fonction"
 ALPHA 121 : PARENT 121,103 : LEFT 121,10  : TOP 121,21 : WIDTH 121,100 : HEIGHT 121, 10 : FONT_SIZE 121,9
 ALPHA 122 : PARENT 122,103 : LEFT 122,10  : TOP 122,34 : WIDTH 122,100 : HEIGHT 122, 10 : FONT_SIZE 122,9
 ALPHA 123 : PARENT 123,103 : LEFT 123,10  : TOP 123,47 : WIDTH 123,100 : HEIGHT 123, 10 : FONT_SIZE 123,9
 ALPHA 124 : PARENT 124,103 : LEFT 124,10  : TOP 124,60 : WIDTH 124,100 : HEIGHT 124, 10 : FONT_SIZE 124,9
 REM ALPHA 125 : PARENT 125,103 : LEFT 125,10  : TOP 125,73 : WIDTH 125,100 : HEIGHT 125, 10 : FONT_SIZE 125,9
 REM ALPHA 126 : PARENT 126,103 : LEFT 126,10  : TOP 126,86 : WIDTH 126,100 : HEIGHT 126, 10 : FONT_SIZE 126,9
 ALPHA 98 : PARENT 98,103  : LEFT 98,10  : TOP 98,73  : WIDTH 98,100  : HEIGHT 98, 10  : FONT_SIZE  98,9
 ALPHA 131: PARENT 131,103 : LEFT 131,120 : TOP 131,21 : WIDTH 131,270 : HEIGHT 131, 10 : FONT_COLOR 131,0,0,255 : FONT_SIZE 131,9
 ALPHA 132: PARENT 132,103 : LEFT 132,120 : TOP 132,34 : WIDTH 132,270 : HEIGHT 132, 10 : FONT_COLOR 132,0,0,255 : FONT_SIZE 132,9
 ALPHA 133: PARENT 133,103 : LEFT 133,120 : TOP 133,47 : WIDTH 133,270 : HEIGHT 133, 10 : FONT_COLOR 133,0,0,255 : FONT_SIZE 133,9
 ALPHA 134: PARENT 134,103 : LEFT 134,120 : TOP 134,60 : WIDTH 134,270 : HEIGHT 134, 10 : FONT_COLOR 134,0,0,255 : FONT_SIZE 134,9
 REM ALPHA 135: PARENT 135,103 : LEFT 135,120 : TOP 135,73 : WIDTH 135,270 : HEIGHT 135, 10 : FONT_COLOR 135,0,0,255 : FONT_SIZE 135,9
 REM ALPHA 136: PARENT 136,103 : LEFT 136,120 : TOP 136,86 : WIDTH 136,270 : HEIGHT 136, 10 : FONT_COLOR 136,0,0,255 : FONT_SIZE 136,9
 ALPHA 99 : PARENT 99,103 : LEFT 99,120 : TOP 99,73 : WIDTH 99,270 : HEIGHT 99, 10 : FONT_COLOR 99,0,0,255 : FONT_SIZE 99,9

RETURN

Retour:
  CHAIN rep$ + "\" + Fichier_principal$

Quitter:
  TERMINATE
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Récupérer le numéro d'instance d'un programme Empty
MessageSujet: Re: Récupérer le numéro d'instance d'un programme   Récupérer le numéro d'instance d'un programme EmptyMar 28 Juin 2011 - 16:49

A priori, personne ne connait l'astuce ...
Quelqu'un pourrait-il faire une petite DLL dans ce cas pour le récupérer.
A priori, une astuce consiste à ouvrir une fenetre et a demander le numéro de Handle du parent de cette fenetre si ça peut mettre sur la voie quelqu'un ...
Revenir en haut Aller en bas
 
Récupérer le numéro d'instance d'un programme
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Récupérer la sortie d'un programme lancé par EXECUTE_WAIT ?
» recuperer infos d' un fichier traité par programme externe
» fermer le programme qui lance un autre programme
» ce fut mon 2ème programme en panoramic! (mauvais programme)
» Clé de contrôle du numéro SS

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: