Gå til innhold

Lagre fil direkte på til Windows Mobile fra desktop program?


Anbefalte innlegg

Heisann hoppsann.

 

Jeg har laget et relativt enkelt program som lagrer en .xml fil til et valgt område basert på input fra brukeren. Alt fungerer smertefritt, rent bortsett fra én ting. Denne .xml filen skal i utgangspunktet lagres på en Windows Mobile enhet. Problemet er at programmet ikke vil la meg velge et område på en slik enhet. Jeg bruker den innebygde "folder browser" fra .net, men når jeg blar meg frem til valgt område på WM-enheten blir "select" boksen grå; altså jeg får ikke valgt området. Dette resulterer i at jeg blir nødt til å lagre på desktopen først, for så å flytte over via utforsker. Det er tungvindt. Noen som vet om noen enklere måte?

Lenke til kommentar
Videoannonse
Annonse

Basert på VS2005 har jeg selv laget et program som overfører filer til og fra min pocket pc. Hemmeligheten er at jeg bruker OpenNETCF.Desktop.Communication som kan lastes ned her:

http://www.opennetcf.org/downloads/bin/Communication.zip

 

Her har du den viktigste vb-2005/2008 kode jeg bruker for å overføre en fil fra desktop til pocket pc som kjører wm5/wm6:

 

Imports OpenNETCF.Desktop.Communication

dim minrapi As New RAPI
minrapi.connect	  
minrapi.CopyFileToDevice("c:\doffen.txt", "\Storage Card\doffen.txt")

 

NB! Skal denne kode funke, må pocket PC-en med ActiveSync først være koblet til desktop'en.

Lenke til kommentar

Ah, dette ser genialt ut. Har denne noen funksjon for å lagre direkte til enheten? Evt, en slags browser som kan returnere filbanen til enheten? Det går nemlig ikke med file browser i .net.

 

Mulig jeg kan bruke RAPI.DeviceFileExists for å finne en bane. Skal skrive en fil til samme bane som en annen fil. Blir vel én av to steder den ligger; hovedminne eller minnekortet. Burde gå an å hente ut banen til filen der den finner den, og så lagre den nye filen dit.

 

Mulig jeg er helt tett (.net newbie), men skjønner ikke hvordan jeg skal importere og bruke dette biblioteket :S

Endret av AndyG
Lenke til kommentar

Her er slik jeg gjør det: Fra den nedlastede mappe (unzipped) limer jeg

 

OpenNETCF.Desktop.Communication.dll

OpenNETCF.Desktop.Communication.xml

 

inn i mappa der programmet ligger. Så i vs, Project -> Add Reference og browsing for å hente inn OpenNETCF.Desktop.Communication.dll. Derpå imports på vanlig måte i vb-programmet, og jeg er i boks.

Lenke til kommentar
  • 2 uker senere...

Husk bare at "Storage Card" kan ha forskjellige navn basert på språket på telefonen. :)

 

(Er det noen som har en enkel måte å finne hva den heter på telefonen? Vet at det finnes C++ kode som gjør jobben, men det er langt fra min sterke side).

Lenke til kommentar
Husk bare at "Storage Card" kan ha forskjellige navn basert på språket på telefonen. :)

 

(Er det noen som har en enkel måte å finne hva den heter på telefonen? Vet at det finnes C++ kode som gjør jobben, men det er langt fra min sterke side).

Du kan jo prøve denne jeg har laget for egen bruk, og den funker iallfall på mine pocket PC-er som kjører wm5.

 

Imports system.io

Private Function hentSCNavn() As String
	Dim y As FileAttributes = FileAttributes.Directory Or FileAttributes.Temporary
	Dim z As New DirectoryInfo("\")
	For Each x As DirectoryInfo In z.GetDirectories()
		If (x.Attributes And y) = y Then
			hentSCNavn = x.Name
			Exit Function
		End If
	Next
	hentSCNavn = "Ikke Storage Card"
End Function

Lenke til kommentar

Hmmm... interessant! Fungerer da helt sikkert også på WM6. :)

 

 

(Og bare et kjapt lite forslag. Istedenfor å skrive hentSCNavn = x.Name og hentSCNavn = "Ikke Storage Card" ville jeg skrevet Return x.Name og Return "Ikke Storage Card". Det er vel teknisk sett "mer .NET"... ;) )

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...