Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

C# i povezivanje aplikacije sa odredjenim tipom fajla

  • 18 odgovora
  • 5.994 pregleda

Najnovija ↓

C# i povezivanje aplikacije sa odredjenim tipom fajla 17.08.2005. u 19:21 · pre 258 meseci
izmenjeno 1 put, poslednji put HeyJoe 17.08.2005. u 19:23
  1. HeyJoe17.08.2005. u 19:23zapis iz teksta poruke
#1
Nov sam pri C#, ali sam već naučio dosta. Napravio sam neko programče za otvaranje slika (u pictureBoh-ovima) sa par filtara i napravio deployment fajl. Ali, ne mogu da provalim kako da taj moj program pri instalaciji povežem sa određenim tipom fajla, tj. kako da se klikom na neku slikicu otvori moj program sa tim slikom u pictureBox1.
Ako neko zna odgovor, pomagajte?
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 10:20 · pre 258 meseci #4
To sam vec uradio, ali je problem sledeci:
Nakon instalacije, kada kliknem na sliku otvori se program, ali nema slike u pictureBox-u. Jedino fileList pokazuje fajlove u tom direktorijumu. Da nije u pitanju neki u parametar u Attributes polju, ili nesto slicno?
Da bi isprobao file types editor, nabrzinu sklepam neki notepad editor i povezem ga sa .txt ekstenzijom. Ista prica, editor se otvori, ali u textBox-u nema sadrzaja fajla.
???
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 10:43 · pre 258 meseci #5
Glupo pitanje, ali da li dobro obradjujes ulazne argumente ?
Pogledaj da li ti mozda odvaja ime fajla o patha-a kao zasebne argumente ?!
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 11:05 · pre 258 meseci #6
ja nigde ne navodim putanju i ima fajla. Po MSDN-u bi to samo trebalo da profunkcionise. Kopka me, da nije nesto sto treba da se upise u Attributes polju, jer za sada stoji parametar po difoltu, tj "%1". Mozda tu treba ime fajla i putanja u nekom opstem obliku ili sta vec? Ako treba, kako to da izvedem?
Je l ima uopste neko ideju kako da se slika na koju kliknem pojavu u otvorenom programu?
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 11:56 · pre 258 meseci
izmenjeno 1 put, poslednji put dusty 19.08.2005. u 11:57
  1. dusty19.08.2005. u 11:57zapis iz teksta poruke
#7
Evvoooo reshenjaaaa :)

Sasvim je ispravno da kao poslednji parametar za tvoju aplikaciju stoji %1. To ce shell da pretvori u putanju do fajla i ime fajla koji se prenosi kao argument tvojoj aplikaciji kada je pokrene preko asocijacije na tip fajla.

Znaci sta tebi nedostaje je obradjujes argumente, koje se prosledjuju main metodi:
Code:

 public void Main(string[] args){
     Debug.WriteLine("Otvori fajl: " + args[0]);
}


Citat:
Po MSDN-u bi to samo trebalo da profunkcionise.


A kako zna koja metoda radi otvaranje fajla ;)
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 12:11 · pre 258 meseci
izmenjeno 1 put, poslednji put HeyJoe 19.08.2005. u 12:12
  1. HeyJoe19.08.2005. u 12:12zapis iz teksta poruke
#8
Citat:
A kako zna koja metoda radi otvaranje fajla


:) To je i mene bunilo, ali u ovom glupo MSDN-u nema nista o tome. Mozda i ima, ali ja nisam uspeo da nadjem.



Citat:
public void Main(string[] args){
Debug.WriteLine("Otvori fajl: " + args[0]);
}


Biti ce probano jos koliko danas, samo da stignem u stan, ovde nema .NET studio instaliran. Nadam se da sam te dobro razumeo.
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 12:55 · pre 258 meseci #9
Citat:
Nadam se da sam te dobro razumeo.


Mislim da je to to :) Naravno,umesto onog Debug.blatruc stavices poziv za tvoju metodu koja otvara taj tip fajla.

E, ovo nije kompletna stvar !
Ima tu josh jedan problem, a to je ako hoces da radis nad grupom selektovanih fajlova (kao npr. winrar, winzip, ...). Onda mora da se napise shell extension handler, koji je, po meni, jako komplikovan zbog sijaset com interfejsa za implementaciju :(
Ovako ce pokrenuti po jednu instancu tvoje app za svaki selektovani fajl.

Happy coding :)
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 13:25 · pre 258 meseci #10
Citat:
dusty: Ovako ce pokrenuti po jednu instancu tvoje app za svaki selektovani fajl.

... a tvoje je da iz novopokrenute instance detektuješ da je jedna već pokrenuta i u njoj otvoriš novi tab, dodaš fajl u plejlistu ili nešto treće...

Vaistinu happy coding!
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 19.08.2005. u 13:38 · pre 258 meseci #11
Citat:
instance detektuješ da je jedna već pokrenuta i u njoj otvoriš novi tab, dodaš fajl u plejlistu ili nešto treće


Hmmm, dobra ideja.
Ali kako onda da prenesem jednoj instanci argumente druge instance ?
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 21.08.2005. u 14:49 · pre 258 meseci
izmenjeno 1 put, poslednji put HeyJoe 21.08.2005. u 14:50
  1. HeyJoe21.08.2005. u 14:50zapis iz teksta poruke
#13
Pocinjem da se osecam kao onaj iz crtanog filma:"Otvori seee... supice! Otvori seee... salamice, itd."

Sta ne valja sa ovim kodom dole?

Code:
        public void Main(string[] args)
        {
            Form1 nova=new Form1();
            args=Environment.GetCommandLineArgs();
            duzina=args.Length;
            fajl=args[0];
            for (args_indeks=1;args_indeks<=duzina-1; args_indeks+=1)
            {
                fajl=fajl+args[args_indeks];
            }
            nova.pictureBox1.Image=Image.FromFile(fajl);
            nova.Show();
        }


a probao sam i
Code:
        public void Main(string[] args)
        {
            Application.Run(new Form1());
            args=Environment.GetCommandLineArgs();
            duzina=args.Length;
            fajl=args[0];
            for (args_indeks=1;args_indeks<=duzina-1; args_indeks+=1)
            {
                fajl=fajl+args[args_indeks];
            }
            pictureBox1.Image=Image.FromFile(fajl);
            
        }


Sta god da stavim u ovaj Main(), ne izvrsava se.
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 21.08.2005. u 15:20 · pre 258 meseci
izmenjeno 1 put, poslednji put jablan 21.08.2005. u 15:21
  1. jablan21.08.2005. u 15:21zapis iz teksta poruke
#14
Kog ti je tipa promenljiva fajl i zašto nadovezuješ argumente na nju? Uzgred, prvi (odnosno nulti) argument je ime samog programa koji se izvršava. Pogledaj malo help.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 21.08.2005. u 15:26 · pre 258 meseci #16
Code:
Uzgred, prvi (odnosno nulti) argument je ime samog programa koji se izvršava.

efff, nezgodno.


ali , zasto onda nece da se izvrsava neka glupost koja nema veze sa Arguments, npr ako umesto for petlje i ostatka ubacim samo

From1 nova= new... itd
pivtureBox1.BackColor=Color.Red;

???
Potpis

//Watch me grow//
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 21.08.2005. u 16:03 · pre 258 meseci
izmenjeno 1 put, poslednji put dacho 21.08.2005. u 16:08
  1. dacho21.08.2005. u 16:08zapis iz teksta poruke
#17
Main funkcija mora biti static.


Code:

static void Main(string[] args)
{
}



Ako nemas static void Main(string[] args) u tvom kodu, trebao bi dobiti gresku koja kaze da nemas definisan Entry Point.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 22.08.2005. u 09:43 · pre 258 meseci #18
Ne ne ne ne ne decko, tako se ne pravi aeroplan :)

Prvo, args=Environment.GetCommandLineArgs(); ti, ali uopste, ne treba. Argumente vec popuni shell kada se pokrene aplikacija.

Znaci:

Code:

public static void Main(string[] args)
        {
            Form1 nova=new Form1();            

            for (args_indeks=1;args_indeks<= args.Length; args_indeks+=1)
                            fajl=fajl+args[args_indeks];
            nova.pictureBox1.Image=Image.FromFile(fajl);
            nova.Show();
        }


Drugo: fajl=fajl+args[args_indeks]; mislim da si se ovde malo zbunio :) Npr. ako si kliknuo na fajl na c:\test.gif, drugi argument (args[1]) je taj path.

Znaci samo proveri da li postoji drugi argument i taj argument prosledi metodi Image.FromFile();

Trece, mislim da ti ovo nova.show() nece raditi, jer jos uvek ne postoji message queue. Takve pozive mozes da radis tek kada se napravi message queue, tj. posle metode Application.Start();

Nadam se da je sada malo jasnije ;)
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# i povezivanje aplikacije sa odredjenim tipom fajla 22.08.2005. u 10:09 · pre 258 meseci #19
Citat:
dusty: Ne ne ne ne ne decko, tako se ne pravi aeroplan :)

Prvo, args=Environment.GetCommandLineArgs(); ti, ali uopste, ne treba. Argumente vec popuni shell kada se pokrene aplikacija.


Da, ali je preporucljivije koristiti upravo Environment.GetCommandLineArg posto se na taj nacin iz cele aplikacije moze pristupiti argumentima komandne linije. npr:

Code:

class Test
{
    static void Main()
    {
        ShowArgs();
    }

    private static void ShowArgs()
    {
        string[] args = Environment.GetCommandLineArgs();

        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}
Potpis
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme