[ govinda @ 15.03.2009. 23:27 ] @
Imam jedan problem. Napravio sam program za pushtanje muzike. Ustvari samo koristim biblioteke koje je neko vec napravio. Moje pitanje je kako da pustam muziku iz windows explorera sa "open with"?
Kako da napravim da moj program prima file-ove koje pokrecem dvoklikom iz windows explorera?

Hvala.
[ deerbeer @ 16.03.2009. 08:59 ] @
Treba da registrujes extenziju fajla tvog programa tj. da je asociras sa tvojim programom,
tako sto ces pri instalaciji ili pri inicijalnom startup programa uneti u sledece registry grane :
Npr. ako ti se program zove MusicPlayer a extenzija .mpf
Code:

HKEY_CURRENT_USER :  Software\Classes\MusicPlayer.mpf \shell\open\command
i u command grani kao default kljuc uneti putanju tvog programa : 
"c:\Program Files\..\MusicPlayer.exe" "%1" (obrati paznju na navodnike) .. 


Dodas default ikonicu iz exe fajla da bi explorer dodelio tom fajlu ikonicu tvog programa .

Code:

HKEY_CURRENT_USER : Software\Classes\MusicPlayer.mpf\DefaultIcon 
i dodas putanju tvog programa isto u default kljuc te grane : 
c:\Program Files\...\MusicPlayer.exe,0   // nula mu govori da uzme prvu ikonicu iz exe fajla


Sledeca registry grana koju treba kreiras je :
Code:

HKEY_CURRENT_USER ::Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mpf

U toj registry grani treba da dodas kljuc ProgID i da u njega upises "MusicPlayer.mpf"

i to bi bilo to ... :D

[ govinda @ 25.03.2009. 10:02 ] @
Mislim da nisam bio bash jasan. Open With dijalog u Windowsu to sve sam radi ako se chekira opcija "Set as default program for this file type". Ja to sve uradim i svi mp3 file-ovi dobiju ikonicu mog programa i program se pusti ali to je sve shto se desi. Moje pitanje je kako da u kodu napravim da se pusti i pesma?

hvala na odgovoru.
[ dava @ 25.03.2009. 10:19 ] @
Tebi treba startovanje programa sa argumentima. Main metoda bi trebala da ti izgleda ovako:

Code:
static void Main(string[] args)


i kad pozoves program: mojprogram nekapjesma.mp3 u prvom elementu niza args dobices string nekapjesma.mp3.
Za prosledjivanje vise argumenata odnosno fajlova, stvari idu drugacije.

Open With uradi to, ali to je rucni nacin podesavanja, tako da nakon instalacije programa ces morati uvjek to podesiti. Zato ti je bolje uradi ovako kao sto je @deerbeer predlozio, tj. da ti program sam podesi koji ce ga fajlovi asocirati.
[ govinda @ 26.03.2009. 14:28 ] @
Evo primera:

Program.cs

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

Imam jedan picturebox na formi i hteo bi da sa open with otvorim sliku.

ovo sto sam ovde postavio je program.cs a imam i form1.cs. U form.cs nemam nikakav kod osim defaulta. Sta dalje?

Hvala.

[ Igor Gajic @ 26.03.2009. 15:30 ] @
Ovako:

Code:

        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            if (args.Length == 0)
                Application.Run(new Form1());

            else
            {
                Application.Run(new Form1(args[0]));
            }
        }


Code:

    public partial class Form1 : Form
    {
        public Form1(string slika)
        {
            InitializeComponent();
            pictureBox1.Image = Image.FromFile(slika);
        }

        public Form1()
        {
            InitializeComponent();
        }
    }
[ govinda @ 27.03.2009. 11:44 ] @
Hvala najlepshe.