Shell sur pocket pc ou comment lancer une application par le code

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 455 fois - Téléchargée 24 fois

Contenu du snippet

Cet exemple vous présente une solution pour lancer une application, la commande Shell n'existant pas sous .net Compact Framework
(on utilise CoreDll.dll)

Source / Exemple :


'La classe

Imports System.Runtime.InteropServices
Public Class Launch
    <DllImport("CoreDll.DLL", SetLastError:=True)> _
    Private Shared Function CreateProcess(ByVal imageName As String, ByVal cmdLine As String, ByVal lpProcessAttributes As IntPtr, ByVal lpThreadAttributes As IntPtr, ByVal boolInheritHandles As Int32, ByVal dwCreationFlags As Int32, ByVal lpEnvironment As IntPtr, ByVal lpszCurrentDir As IntPtr, ByVal si() As Byte, ByVal pi As ProcessInfo) As Integer
    End Function

    <DllImport("CoreDll.dll")> _
    Private Shared Function GetLastError() As Int32
    End Function

    Public Shared Function CreateProc(ByVal ExeName As String, ByVal CmdLine As String, ByVal pi As ProcessInfo) As Boolean
        If pi Is Nothing Then
            pi = New ProcessInfo
        End If
        Dim si(127) As Byte
        Return CreateProcess(ExeName, CmdLine, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi) <> 0
    End Function 'CreateProc
End Class 'Externals
Public Class ProcessInfo
    Public hProcess As IntPtr
    Public hThread As IntPtr
    Public ProcessId As Int32
    Public ThreadId As Int32
End Class

'dans votre form 

        Launch.CreateProc("\Windows\solitaire.exe", Nothing, Nothing)
'lancera le solitaire

Conclusion :


A noter qu'un fichier dont l'extension est connue lancera l'application correspondante
Ainsi un fichier txt lancera Pword

A voir également

Ajouter un commentaire Commentaires
gegeu Messages postés 1 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 1 février 2009
1 févr. 2009 à 15:06
Bonjour,

J'ai essayé de tester avec Embedded Visual C++ 4.1, mais je ne sais pas où placer le code.

Dans un exemple, en créant un projet test, basé sur une boite de dialogue, si je place
Launch.CreateProc("\Windows\solitaire.exe", Nothing, Nothing)
dans le fichier testDlg.ccp, par exemple :
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
Launch.CreateProc("\Windows\solitaire.exe", Nothing, Nothing)
CDialog::OnLButtonDown(nFlags, point);
}

où faut-il que je mette le code pécédent , Dans testDlg.h? Dans une nouvelle classe?

Merci de votre aide
forchi Messages postés 33 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 24 mai 2008
25 juil. 2007 à 19:06
Non Stephane33, j'utilise le CF 1.0 SP3...
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
25 juil. 2007 à 17:56
Forchi, OK mais avec CF 2.0 ;)
forchi Messages postés 33 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 24 mai 2008
24 juil. 2007 à 17:13
Pour ceux qui ne veulent pas utiliser OpenNetCF:

exemple pour ouvrir un fichier word(.doc):
-----------------------------------------
Dim Process As New Launch
Dim oPI As Diagnostic.ProcessInfo = Diagnostic.Process.LaunchAppli("pword.exe", chemin_de_mon_fichier_word)

Et voilà...
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
25 avril 2007 à 20:14
Pour développper en C# sur PocketPc, il te faudra l'IDE de Microsoft VisualStudio 2003 ou 2005 (pas de version express et En fonction du Compact Framework Visé) et les SDK appropriés
Le développement s'effectue de la même manière que sur PC avec quelques contraintes lié au Compact Framework
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.