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.
Nouvelle varoable système HANDLE_EXECUTE Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Nouvelle varoable système HANDLE_EXECUTE Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nouvelle varoable système HANDLE_EXECUTE Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Nouvelle varoable système HANDLE_EXECUTE Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Nouvelle varoable système HANDLE_EXECUTE Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Nouvelle varoable système HANDLE_EXECUTE Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Nouvelle varoable système HANDLE_EXECUTE Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Nouvelle varoable système HANDLE_EXECUTE Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Nouvelle varoable système HANDLE_EXECUTE Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Nouvelle varoable système HANDLE_EXECUTE 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

 

 Nouvelle varoable système HANDLE_EXECUTE

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12301
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 : 53
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 de fichiers
» Pas plus de 35 objets système?

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: