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
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Nouvelle varoable système HANDLE_EXECUTE

Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Nouvelle varoable système HANDLE_EXECUTE   Ven 5 Mai 2017 - 19:04

J'aimerais bien avoir une nouvelle variable système, par exemple HANDLE_EXECUTE. Cette variable contiendrait toujours 0, mais serait chargée par la commande EXECUTE (et non EXECUTE_WAIT !) par le handle de la fenêtre principale du programme lancé.

Pour ma part, en Delphi, je réalise cela comme suit:
Code:

var
  cmd: String;
  start: integer;
  StartUpInfo : TStartupInfo;
  ProcessInformation : TProcessInformation;
  MyHandle: THandle;

// fonction de service
function GetHWndByPID(const hPID: THandle): THandle;
  type
    PEnumInfo = ^TEnumInfo;
    TEnumInfo = record
    ProcessID: DWORD;
    HWND: THandle;
  end;

    function EnumWindowsProc(Wnd: DWORD; var EI: TEnumInfo): Bool; stdcall;
    var
        PID: DWORD;
    begin
        GetWindowThreadProcessID(Wnd, @PID);
        Result := (PID <> EI.ProcessID) or
                (not IsWindowVisible(WND)) or
                (not IsWindowEnabled(WND));

        if not Result then EI.HWND := WND; //break on return FALSE
    end;

    function FindMainWindow(PID: DWORD): DWORD;
    var
        EI: TEnumInfo;
    begin
        EI.ProcessID := PID;
        EI.HWND := 0;
        EnumWindows(@EnumWindowsProc, Integer(@EI));
        Result := EI.HWND;
    end;
 
begin
    if hPID<>0 then
        Result:=FindMainWindow(hPID)
    else
        Result:=0;
end;

// lancer un process et récupérer son handle
procedure StartProcess(cmd: string);

  if CreateProcess(nil,pchar(cmd),nil, nil, False,
      NORMAL_PRIORITY_CLASS, nil, nil,
      StartupInfo, ProcessInformation) then
  begin
    start := GetTickCount;
    while (GetTickCount - start) < 5000 do Application.ProcessMessages;

//    MyHandle:=FindWindow(nil, 'PANORAMIC EDITOR');
    MyHandle:=GetHWndByPID(ProcessInformation.dwProcessId);
... ici, j'ai le handle de la fenêtre principale, celui que j'aimerais retrouver dans HANDLE_EXECUTE !
  end;
...
end;

Voilà. Une variable de ce genre permettrait d'agir sur le process qu'on vient de lancer.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
UltraVox

avatar

Nombre de messages : 40
Age : 47
Localisation : Ajaccio
Date d'inscription : 05/06/2017

MessageSujet: Re: Nouvelle varoable système HANDLE_EXECUTE   Mar 6 Juin 2017 - 9:18

Excellente suggestion.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Nouvelle varoable système HANDLE_EXECUTE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouvelle de Numericable (Mobile / Free)
» Quel votre système d'exploitation ?
» Bonne nouvelle pour les non-dégroupés de FREE !!!!
» Nouvelle animation .....[résolu merci]
» nouvelle commande

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: