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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 891 fois - Téléchargée 22 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
-
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
-
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
-
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
-
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
-
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

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.