Avatar billede dragnor Juniormester
03. november 2006 - 20:56 Der er 18 kommentarer og
1 løsning

Åbne fil med bestem program

Hvis jeg nu har en wmv fil. Når jeg trykker på fx. en knap så vil jeg gerne have at denne fil bliver afspillet i media player, kan det lade sig gøre?

Nu kommer næste problem, denne kode skal virke til en Pocket Pc. Filen ligger i en bestem mappe på Pocket Pc'en.

Håber nogen kan være behjælpelig. Håber jeg har lagt spørgsmålet ind det rigtige sted?
Avatar billede hacked Nybegynder
03. november 2006 - 21:19 #1
Du kan finde ud af, hvad du har adgang til, ved at oprette et Pocket PC 2003 projekt eller et Windows CE 5.0 alt afhængig af model i Visual Studio 2005 Pro.
Udvikling til pocket pc kræver .Net Compact Framework 2.0.

Wmv-filtypen er sandsynligvis tilknyttet din player på din pocket pc.

Ved ikke om du kan følgende kode når det gælder pocket pc:
Process.Start("DinMediaplayer.filtype", "C:\\dinsti\\dinFil.filtype");
Avatar billede hacked Nybegynder
03. november 2006 - 21:51 #4
Klik C# Source på sidste link.
Avatar billede dragnor Juniormester
04. november 2006 - 17:47 #5
Ind til videre har i været til stor hjælp, men!

ProcessInfo pi = new ProcessInfo();
CreateProcess("wmplayer.exe", "\\Storage Card\\Bed.mp3", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, new Byte[128], pi);

eller? CreateProcess("wmplayer.exe", "Bed.mp3", pi);

Lige meget hvilken en af de her to sætninger jeg bruger altså mine createProcess, så åbner den media player, hvilket er godt, men den åbner ikke filen bed.mp3?

Den skriver: Cannot play the file. the file is either corrupted or the player does not support the format you are trying to play.

Nogen der har en god ide til at løse den sidte del?

Jeg ved at filen kan afspilles i media playeren det er afprøvet.

MVH

Dragnor
Avatar billede dragnor Juniormester
04. november 2006 - 18:53 #6
eventuelt kan i se koden:

using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Runtime.InteropServices;
using System.IO;


namespace ZooTest
{
    public partial class Dyr : Form
    {
        public class ProcessInfo
        {
            public IntPtr hProcess;
            public IntPtr hThread;
            public Int32 ProcessId;
            public Int32 ThreadId;
        }

        [DllImport("CoreDll.DLL", SetLastError = true)]
        private extern static
            int CreateProcess(String imageName,
            String cmdLine,
            IntPtr lpProcessAttributes,
            IntPtr lpThreadAttributes,
            Int32 boolInheritHandles,
            Int32 dwCreationFlags,
            IntPtr lpEnvironment,
            IntPtr lpszCurrentDir,
            byte[] si,
            ProcessInfo pi);

        [DllImport("CoreDll.dll")]
        private extern static Int32 GetLastError();

        [DllImport("CoreDll.dll")]
        private extern static
            Int32 WaitForSingleObject(IntPtr Handle, Int32 Wait);


        public static bool CreateProcess(String ExeName, String CmdLine, ProcessInfo pi)
        {
            Int32 INFINITE;
            unchecked { INFINITE = (int)0xFFFFFFFF; }

            if (pi == null) pi = new ProcessInfo();
            byte[] si = new byte[128];
            CreateProcess(ExeName, CmdLine, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi);
            WaitForSingleObject(pi.hProcess, INFINITE);
            return true;
        }

       
        public Dyr()
        {
            InitializeComponent();
        }

        private void linkLabel2_Click(object sender, EventArgs e)
        {
           
        }

        private void linkLabel1_Click(object sender, EventArgs e)
        {
           
            ProcessInfo pi = new ProcessInfo();
            //CreateProcess("wmplayer.exe", "\\Storage Card\\Bed.mp3", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi);
            CreateProcess("wmplayer.exe", "Bed.mp3", pi);
        }

    }
}
Avatar billede dragnor Juniormester
05. november 2006 - 12:02 #7
Til malkor, det du skrev virker perfekt, hvis jeg bare kopier filerne til roden af pda'en men hvad går der galt med min stig \\Storage Card\\ det virker da underligt at den ikke virker når jeg kan gå ind og se filen ligger der?
Avatar billede hacked Nybegynder
05. november 2006 - 15:34 #8
Nu er pocket pc udvikling ikke min stærke side, men det kan være fordi din applikation sætter dens sti som root.
Det vil sige den applikation leder i biblioteket: StienTilDinApplikation\\Storage Card\\Bed.mp3.
Avatar billede hacked Nybegynder
05. november 2006 - 15:42 #9
Glem det jeg skrev lige før.
Først anvender du roden af filsystemet eller på dit storage card?
Yderligere hvad er det præcis der virker, hvis du placere filerne i roden af filsystemet?

\\Bed.mp3 eller \\Storage Card\\Bed.mp3?
Avatar billede hacked Nybegynder
05. november 2006 - 15:49 #10
Det jeg mener er, ligger din fil Bed.mp3 i roden af dit filsystem: '\Bed.mp3'
eller på dit storage card: '\Storage Card\Bed.mp3?'

Din applikation melder fejl når du angiver stien til, at være "\\Storage Card\\Bed.mp3" selvom din filen ligger på dit Storage Card i '\Storage Card\Bed.mp3'?
Avatar billede dragnor Juniormester
05. november 2006 - 16:03 #11
Det der viker er hvis jeg flytter filen fra Storage card'et over på roden af selve PDA'en, dvs. at jeg kun behøver at skrive "bed.mp3".
Avatar billede dragnor Juniormester
05. november 2006 - 16:40 #12
hej igen, jeg har fundet ud af at hvis jeg prøver at ligge filen ind under "My Documents" som er en mappe på pda'en så laver den samme fejl som nor den ligger på et Storage Card. men hvis jeg ligger filen ind under temp mappen på pda'en så virker det fint nok. Det må betyde at det er mellemrummet den lavet ged i. altså \\Storage Card\\ Men hvordan kan man ellers gøre for at undgå problemet med mellemrummet?
Avatar billede hacked Nybegynder
05. november 2006 - 17:13 #13
Hvad sker der hvis du skriver @"\Storage Card\Bed.mp3" ?
eller @"Storage Card\Bed.mp3"?
Avatar billede dragnor Juniormester
05. november 2006 - 17:54 #14
Den skriver: Cannot play the file. the file is either corrupted or the player does not support the format you are trying to play. i begge tilfælde og jeg har prøvet både med \ og med \\.

Det er utroligt at det skal være så besværligt bare fordi der er et mellemrum...
Avatar billede hacked Nybegynder
05. november 2006 - 18:24 #15
Ja! Man skal bare lige finde løsningen :)

Jeg prøver lige, at lege lidt med emulator, da jeg ikke har en Pocket PC. Hvad er din opsætning? Pocket PC 2003 -> Device Application?
Avatar billede dragnor Juniormester
05. november 2006 - 18:33 #16
Den opsætning jeg bruger er Pocket PC 2003 SE emulator, og det er også emulatoren fra visual studio jeg arbejder med så det er jo cool nok.
Avatar billede dragnor Juniormester
09. november 2006 - 19:26 #17
Fandt du frem til en løsning?
Pointne er ihvertfald dine så du ligger bare et svar
Avatar billede hacked Nybegynder
09. november 2006 - 22:10 #18
Jeg har prøvet, men kan heller ikke umiddelbart få det til at virke. Det er rigtigt det du skriver med mellemrum. Mediaafspilleren viser også forkert navn når programmet melder fejl på sti.
Lad os dele point :)
Avatar billede dragnor Juniormester
10. november 2006 - 12:07 #19
nej det er helt iorden du har stadigvæk været til stor hjælp med dine lik henvisninger :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester