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
» Version instantanée V 0.9.28i18 du 27/04/2018
par Jack Aujourd'hui à 8:49

» Et encore un éditeur...
par Jean Claude Aujourd'hui à 8:41

» Un CONTAINER sans bordure
par Fredisland Hier à 23:27

» windows
par Klaus Hier à 23:21

» Exécutables et Applications
par Jack Hier à 20:07

» Une suggestion pour soulager l'auteur de PANORAMIC
par Fredisland Hier à 20:05

» Le serpent qui se mange la queue avec LE DOSSIER EN COURS
par Fredisland Hier à 20:00

» Utilisation de Make_Exe
par Jack Hier à 19:50

» Comment travaille l'auteur de Panoramic
par Jack Hier à 19:43

» API Windows
par Fredisland Hier à 19:16

» Utilisation de RunDll32
par Fredisland Hier à 17:55

» pbs dessin et ecriture sur form
par Fredisland Hier à 17:34

» Panoramic et Windows
par Fredisland Hier à 14:55

» Identifiants Globaux utilisés par Windows
par Fredisland Hier à 14:05

» Nouvelle version 0.32
par Jean Claude Hier à 14:00

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 Nouvelle varoable système HANDLE_EXECUTE

Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 10970
Age : 68
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: