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.
Nouvelle varoable système HANDLE_EXECUTE Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Nouvelle varoable système HANDLE_EXECUTE Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Nouvelle varoable système HANDLE_EXECUTE Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Nouvelle varoable système HANDLE_EXECUTE Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Nouvelle varoable système HANDLE_EXECUTE Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Nouvelle varoable système HANDLE_EXECUTE Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Nouvelle varoable système HANDLE_EXECUTE Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Nouvelle varoable système HANDLE_EXECUTE Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Nouvelle varoable système HANDLE_EXECUTE Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Nouvelle varoable système HANDLE_EXECUTE Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Nouvelle varoable système HANDLE_EXECUTE Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Nouvelle varoable système HANDLE_EXECUTE 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 du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 Nouvelle varoable système HANDLE_EXECUTE

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


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

Nouvelle varoable système HANDLE_EXECUTE Empty
MessageSujet: Nouvelle varoable système HANDLE_EXECUTE   Nouvelle varoable système HANDLE_EXECUTE EmptyVen 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
http://klauspanoramic.comxa.com/index.html
UltraVox

UltraVox


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

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

Excellente suggestion.
Revenir en haut Aller en bas
 
Nouvelle varoable système HANDLE_EXECUTE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouvelle variable système: IS_PANORAMIC_COMPILED
» Nouvelle variable système NUMBER_CLOSE
» Caractéristiques système
» Système planétaire
» variable système HANDLE_APPLICATION

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: