Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SHELL SUR POCKET PC OU COMMENT LANCER UNE APPLICATION PAR LE CODE


Information sur la source

Description

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

  • '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
'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
 

Commentaires et avis

signaler à un administrateur
Commentaire de forchi le 30/11/2006 10:59:07

Bonjour,
j'essaye d'ouvrir un fichier .psw (.doc sur pc) mais rien ne se passe, ni erreur, ni lancement, pourtant le chemin du fichier est correcte!

Dim Process As New Launch
Process.CreateProc("\Program Files\Mon_Dossier\AIDE\Mise à jour du stock.psw", Nothing, Nothing)

Faut-il passer des paramètres supplementaires ?

signaler à un administrateur
Commentaire de forchi le 30/11/2006 11:32:59

C'est bon j'ai trouve:

Dim Process As New Launch
Process.CreateProc(OpenNETCF.EnvironmentEx.GetFolderPath(OpenNETCF.EnvironmentEx.SpecialFolder.Windows) & "\pword.exe", "\Program Files\Mon_Dossier\AIDE\Mise à jour du stock.psw", Nothing)

Et voilà ça marche

Merci

signaler à un administrateur
Commentaire de MadM@tt le 29/01/2007 21:37:31

Yeah ça marche super merci beaucoup !

signaler à un administrateur
Commentaire de grajon le 25/04/2007 15:39:24

Bonjour, quelqu'un a t'il une idée de comment on peut faire la même chose en C# ?

Merci

signaler à un administrateur
Commentaire de Stephane33 le 25/04/2007 18:21:22 administrateur CS

Utilise SharpDevelop pour traduire du VB vers C#

signaler à un administrateur
Commentaire de grajon le 25/04/2007 19:19:24

Merci Stephane33 pour l'info, c'est toujours bon à prendre, d'autant que l'IDE a l'air sympa...
Mais ma question était plutôt du style "connaissez-vous une astuce pour lancer une application en C# ?"

signaler à un administrateur
Commentaire de Stephane33 le 25/04/2007 20:14:19 administrateur CS

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

signaler à un administrateur
Commentaire de forchi le 24/07/2007 17:13:53

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à...

signaler à un administrateur
Commentaire de Stephane33 le 25/07/2007 17:56:33 administrateur CS

Forchi, OK mais avec CF 2.0 ;)

signaler à un administrateur
Commentaire de forchi le 25/07/2007 19:06:42

Non Stephane33, j'utilise le CF 1.0 SP3...

signaler à un administrateur
Commentaire de gegeu le 01/02/2009 15:06:34

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment lancer 1 appli quand le PDA se connecte au PC ? [ par nikko ] NemoBonjour,Je suis appelé à développer une appli sous Pocket PC et j'effectue des tests.Pour automatiser un maximum, je dois pouvoir lancer une appli Lancer la form2 a partir de la form1 [ par PALADYN ] Bonjour, Je débute vraiment en VB pour PocketPc 2002.J'utilise Visual Studio 2003.J'ai créé 2 forms et voudrai lancer la form2 dès qu'un textbox de la pseudo-Shell sur PDA [ par MrSURPRISE ] salut tlm, g créé un BDD avec une interface graphique JAVA, mais je dois à un certain moment extraire un code à barre avec le PDA et l'utiliser. donc evc++ 4 - démarrer un sous-programme ou un sous-shell [ par ggdh ] Bonjour, petit probl&#232;me pour moi insoluble....(pour l'instant), je cherche &#224; spawnerune application dans mon source evc++ tel qu'on peut le Comment lancer IE [ par edokt ] Bonjour J'ai une application win mobile Est ce que c'est possible d'ouvrir une page web quand on click sur un bouton de l'application Merci vb.net Lancer un executable sur ppc [ par garocheb ] Bonjour, Je suis un nouveau en vb.net et je n'arrive pas a trouver comment on peux lancer un executable se trouvant dans "\my documents\12.exe" Aidez J'arrive pas à lancer mon application sur emulateur [ par k_ahmed22 ] bnjour à tous.j un problème avec mon application mobile qui ne s'execute pas sur emulateur visual studio, sachant que j'ai installé le sdk 3 de micros lancer une appli sur un pda [ par lak75 ] Bonjour, J'ai une application java qui tourne sur un pda. pour le moment je lance l'application a partir du pc via web sphere studio (la connexion est Lancer un MIDlet lors de la réception d'un SMS [ par jeje454 ]


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.