Toon posts:

[VB.NET Compact Framework] .exe openen via code op PocketPC

Pagina: 1
Acties:
  • 548 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben al een tijdje op zoek, hoe ik ene .exe bestand kan openen via VB.NET code op een pocket pc. Volgende mogelijkheden heb ik uitgetest maar beide werken niet:

Visual Basic:
1
2
3
4
5
6
7
8
'Overloopt code, maar verder gebeurt er niets
            Dim s2 As New FileStream("\Windows\Start Menu\Inbox", FileMode.Open)
'Herkent expressie "Tools" niet
            Tools.Shell("""\Windows\Start Menu\Inbox""")
'Herkent expressie Shell niet
            Call Shell("\Windows\Start Menu\Inbox", AppWinStyle.NormalFocus)
'Foutmelding: file not found
            File.Open("\Windows\Start Menu\Inbox", FileMode.Open)


Weer er iemand raad?

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

System.Diagnostics.Process.start() ?

ASSUME makes an ASS out of U and ME


Verwijderd

Topicstarter
HIGHGuY schreef op zaterdag 26 november 2005 @ 17:34:
System.Diagnostics.Process.start() ?
Process is not a member of diagnostics. :'(

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

ic, zit niet in de Compact Framework.

dan moet je denk ik aan de slag met DLLImport om de juiste dll in te laden om je programma te starten.

ASSUME makes an ASS out of U and ME


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

ik heb et even aan een vriend van me gevraagd die voor z'n thesis met pocketpc's bezig is.
je moet zoals ik zei een DLL importen (ik kan even niet op de naam komen, maar het is zowat "de belangrijkste" DLL op de PocketPC - core.dll of zo) en daarin zal dan wel een functie zitten die doet wat je moet doen.

via het attribuut DllImport (DllImportAttribute in de documentatie) kun je een functie importeren.

ASSUME makes an ASS out of U and ME


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Process.Start zit wel in het compact framework volgens mij.

Edit:
Even snel een projectje gestart en nee, zit er helaas niet in.

Je kunt wel kijken naar het OpenNETCF framework, deze support een hoop classes en oa de Process class.

[ Voor 64% gewijzigd door pjvandesande op 29-11-2005 16:52 ]


Verwijderd

Topicstarter
HIGHGuY schreef op dinsdag 29 november 2005 @ 14:43:
ik heb et even aan een vriend van me gevraagd die voor z'n thesis met pocketpc's bezig is.
je moet zoals ik zei een DLL importen (ik kan even niet op de naam komen, maar het is zowat "de belangrijkste" DLL op de PocketPC - core.dll of zo) en daarin zal dan wel een functie zitten die doet wat je moet doen.

via het attribuut DllImport (DllImportAttribute in de documentatie) kun je een functie importeren.
Om uw dll te importeren, kan je dit ook van een pocket pc met windows mobile via regsvr32 *met juiste path erna van dll?? Of moet dit via een andere manier gebeuren?

[ Voor 42% gewijzigd door Verwijderd op 01-12-2005 16:25 ]


Verwijderd

Topicstarter
Of moet je op volgende manier te werk gaan:

Visual Basic .NET:
1
2
3
4
    <DllImport("msvcrt.dll", CallingConvention:=CallingConvention.Winapi)> _
    Overloads Shared Function printf( _
    ByVal format As String, ByVal i As Integer, ByVal d As Double) As Integer
    End Function


Maar dan krijg je geen overzicht van de verschillende Functies.

Verwijderd

Topicstarter
Na een tijdje zoeken heb ik toch de juist oplossing gevonden.
Voor de geïnteresseerden:[/quote]
[quote]

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Declare Function CreateProcess Lib "coredll.Dll" (ByVal strImageName As String, ByVal strCmdLine As String, ByVal pProcessAttributes As IntPtr, ByVal pThreadAttributes As IntPtr, ByVal bInheritsHandle As Integer, ByVal dwCreationFlags As Integer, ByVal pEnvironment As IntPtr, ByVal pCurrentDir As IntPtr, ByVal bArray() As [Byte], ByVal oProc As ProcessInfo) As Integer

Private Sub StartAlturion()

Dim pi As New ProcessInfo

CreateProcess("\Program Files\Alturion GPS\Alturion GPS.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, New [Byte](128) {}, pi)

End Sub

Public Class ProcessInfo

Public Process As Integer

Public Thread As Integer

Public ProcessID As Integer

Public ThreadID As Integer

End Class 'ProcessInfo
Pagina: 1