begin process at 2012 02 10 05:46:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Lancer et integrer un .exe dans une appli .net ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancer et integrer un .exe dans une appli .net ?

lundi 17 mars 2008 à 12:17:23 | Lancer et integrer un .exe dans une appli .net ?

kaervas

Membre Club
Bonjour,
Je suis en train de developper un programme en C#/.net 3.5 et j'aimerais lancer un .exe et integrer son processus ET son affichage graphique à l'intérieur de mon appli...
Sauriez vous si cela est eventuellement possible ?
lundi 17 mars 2008 à 14:44:06 | Re : Lancer et integrer un .exe dans une appli .net ?

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Salut, si tu connais un peu l'API Win32 je pense que c'est possible, voila un point de départ ( beaucoup de code mais tu as juste à utiliser la methode ILoveNotepad ).

[ DllImport( "user32.dll", SetLastError = true ) ]
private static extern IntPtr SetParent( IntPtr hWndChild, IntPtr hWndNewParent );

[ DllImport( "user32.dll", SetLastError = true ) ] // 32 bits.
private static extern int GetWindowLong( IntPtr hWnd, int nIndex );

[ DllImport( "user32.dll", SetLastError = true ) ] // 64 bits.
private static extern IntPtr GetWindowLongPtr( IntPtr hWnd, int nIndex );

[ DllImport( "user32.dll", SetLastError = true ) ] // 32 bits.
private static extern int SetWindowLong( IntPtr hWnd, int nIndex, int dwNewLong );

[ DllImport( "user32.dll", SetLastError = true ) ] // 64 bits.
private static extern IntPtr SetWindowLongPtr( IntPtr hWnd, int nIndex, IntPtr dwNewLong );

private const int WS_POPUP = unchecked( ( int )0x80000000 );
private const int WS_CHILD = 0x40000000;
private const int GWL_STYLE = -16;

private void ILoveNotepad( )
{
    Process p = Process.Start( "notepad.exe" );
    p.WaitForInputIdle( 2000 );
    IntPtr hWnd = p.MainWindowHandle;
    p.Close( );
    p = null;

    int styles = ( int )GetStyles( hWnd );
    styles &= ~WS_POPUP;
    styles |= WS_CHILD;
    SetStyles( hWnd, ( IntPtr )styles );

    SetParent( hWnd, this.Handle );

    // WM_CHANGEUISTATE
    // WM_UPDATEUISTATE

    // etc..
}

private IntPtr GetStyles( IntPtr hWnd )
{
    if ( IntPtr.Size == 8 ) // 64 bits.
        return GetWindowLongPtr( hWnd, GWL_STYLE );
    else // 32bits
        return ( IntPtr )GetWindowLong( hWnd, GWL_STYLE );
}

private void SetStyles( IntPtr hWnd, IntPtr styles )
{
    if ( IntPtr.Size == 8 ) // 64 bits.
        SetWindowLongPtr( hWnd, GWL_STYLE, styles );
    else // 32 bits.
        SetWindowLong( hWnd, GWL_STYLE, ( int )styles );
}

lundi 17 mars 2008 à 18:02:23 | Re : Lancer et integrer un .exe dans une appli .net ?

kaervas

Membre Club
Merci pour ta réponse, je ne m'y connais pas trop en API windows, le processus se lance bien dans le handle, mais il n'y a pas les evenements (actualisation etc..) ?
lundi 17 mars 2008 à 18:18:51 | Re : Lancer et integrer un .exe dans une appli .net ?

Lutinore

Administrateur CodeS-SourceS
Ce n'est qu'un point de départ.. après j'ai mis en commentaire les messages à envoyer WM_CHANGEUISTATE, WM_UPDATEUISTATE etc.. Il n'existe pas de fonctions managées pour faire ce genre de chose.
lundi 17 mars 2008 à 18:37:42 | Re : Lancer et integrer un .exe dans une appli .net ?

kaervas

Membre Club
D'accord merci, je dois un peu faire le boulot du kernel en gros ?
Par contre comment faire si je veux changer le repertoire courant du programme lancé ? (il n'est pas dans le meme dossier que l'appli qui le lance)


Cette discussion est classée dans : exe, net, appli, lancer, integrer


Répondre à ce message

Sujets en rapport avec ce message

Lancer des appli d'1 exe [ par Franckyom50 ] Fr@nckyx Salut à tous, Voilà, je voulais savoir : est-ce qu'on peux lancer, à partir d'un prog en c#, des applications d'un programme extérieur? Un exe c# sans framework.net ? [ par KaViDee ] Je voulais savoir si il était possible de lancer une application compilée en c#.net sans avoir la framework.net d'installée sur son ordinateur, qu'on Look de l'appli = VS.NET [ par tiboleo ] Bonjour,je cherche à donner à mon appli le même look que VS.NET, à savoir :Quand on passe sur le menu (ex : Fichier), avoir la zone séléctionnée en su On m'aurais menti ? [ par akitchan ] Un ami m'assuré qu'on pouvait compiler un projet c# de façon à pouvoir lancer l'exe sur une machine qui n'a pas le framework installé. Il s'ai fouttu comment lancer des application [ par creanova2000 ] creanovabonjourje desire creer un programme en visual studio .net qui me permet a l'aide d'un clique sur un boutton de lancer une autre application (u (visual.net) obtenir 2 .exe a partir d'une solution [ par deneb53 ] Bonjour,Je travaille avec visual.net et j'ai besoin d'avoir en sortie de ma solution deux exe.Est-ce possible ? En fait je veux faire deux exe : un cl déployer une appli web [ par Kalypswoo ] Bonjour, voila, j'ai un sérieux problème, j'ai créée une appli web en local sur mon poste de développement, je dois la mettre en réseau.Je crois savoi ajout de l'aide dans une appli dvp en C# [ par smssmc ] bonjour je dois integrer l'une aide pour l'appli qu'on dvp.l'appli est dvp en c#, l'aide doir etre integrer avec html help workshop, j'aimerai savoir Integrer une application windows form a ASP.net [ par baronpoupou ] J'ai une page en ASP.net et je voudrai qu'une application se lance lorsque je clique sur un lien ou une iamge(une libraire en C#)Pour l'instant j'arri Lancer un exe avec paramètres [ par jeanajaccio ] Je ne sais pas si le titre est en rapport mais je cherche à ce que lorque l'on clique sur un type de fichier dont j'ai défini le format et qui est ass


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales