none
Otevřít v programu -----> C# aplikace

    Dotaz

  • Zdravím, jsem opravdový začátečník v C# a udělal jsem Formulářovou aplikaci pro rychlý upload obrázků na FTP.
    Vše funguje tak, jak chci, ale chtěl bych svojí aplikaci trochu vylepšit.
    Jde mi o to, že pokud chcete uploadovat obrázek, musíte kliknout na tlačítko a přez OpenFileDialog obzázek načíst...
    Ale já bych chtěl abych obrázek načetl automaticky, pokud jej dám otevřít v programu.
    Netuším, jak bych měl ošetřit něco takového, snad mi někdo poradí.
    Předem díky, Pázny :)
    30. března 2009 15:49

Odpovědi

  • Ahoj, tak jestli tomu dobře rozumím, tak bysi chtěl asociovat svůj C# program s nějakou příponou. To můžeš udělat takhle:
    1. Najdi ve svém solution soubor Program.cs, v něm bude řádka
     static void Main() 
    tu nahradíš tímhle:
    static void Main(string[] args) // pridan parametr 
    

    a vevnitř té metody změníš řádek:
     Application.Run(new Form1(args)); // pridan parametr 
    

    2. Teď máš předávané parametry z příkazový řádky do tvýho formuláře, ještě s nimi potřebuješ něco udělat do kódu tvýho formuláře (řekněme Form1) přidáš řádek s proměnnou, aby ten začátek třídy vypadal takhle:
    public partial class Form1 : Form 
      { 
         string CommandArg; // pridano 

    3. změníš v kódu svýho formuláře konstruktor na
    public Form1(string[] args) // pridan parametr
      {
          if (args.Length == 1)           // pridano
              CommandArg = args[0];  // pridano
    
          InitializeComponent();
       } 

    4. Teď můžeš poklikat na formulář, nebo přidat událost OnLoad a v ní nastavit cestu ke svému obrázku pro upload

    Pozn: Teď jsi udělal program, který akceptuje parametr z příkazové řádky, abys dokázal otevřít svůj program z Průzkumníka windows poklepáním na obrázek, musíš teď udělat následující:
    1. Ulož si přeložený (.exe) program kde ho chceš mít
    2. klikni pravým tl. myši v Průzkumníku ve windows na soubor, který chceš aby se ti v programu otevíral, (důležitá je přípona) třeba obrázek.jpg
    3. z menu vyber "Open with" nebo "Otevřít v" a v dalším menu Choose default program (nebo Vybrat program)
    4. teď klikni na Browse a vyhledej si svůj .exe program a dej OK
    5. hotovo, vyzkoušej poklikat na nějaký .jpg soubor
    M
    13. července 2009 20:39
  • Ahoj,

    jestli jsem to pochopil správně, tak by mělo stačit zjistit, co byl první parametr příkazové řádky, a tento použít stejně, jako by to někdo vybral pomocí dialogu.

    Argumenty příkazové řádky můžeš zjistit dvěma hlavními způsoby:
    1) Přímo v metodě Main (pravděpodobně v souboru Program.cs) máš k dispozici pole args. Vhodné v konzolových aplikacích.
    2) Kdekoliv v programu (např. v OnLoad hlavního formuláře aplikace) pomocí metody Environment.GetCommandLineArgs().

    Měl bys tedy zjistit, jestli byl zadán alespoň jeden argument příkazové řádky, a ten zkusit použít jako jméno souboru (tedy minimálně zjistit existenci souboru).
    A bacha - hned první argument (na indexu 0) je skutečný první argument příkazové řádky, tj. první argument není jméno spouštěného programu...
    10. dubna 2009 11:29

Všechny reakce

  • Ahoj,

    jestli jsem to pochopil správně, tak by mělo stačit zjistit, co byl první parametr příkazové řádky, a tento použít stejně, jako by to někdo vybral pomocí dialogu.

    Argumenty příkazové řádky můžeš zjistit dvěma hlavními způsoby:
    1) Přímo v metodě Main (pravděpodobně v souboru Program.cs) máš k dispozici pole args. Vhodné v konzolových aplikacích.
    2) Kdekoliv v programu (např. v OnLoad hlavního formuláře aplikace) pomocí metody Environment.GetCommandLineArgs().

    Měl bys tedy zjistit, jestli byl zadán alespoň jeden argument příkazové řádky, a ten zkusit použít jako jméno souboru (tedy minimálně zjistit existenci souboru).
    A bacha - hned první argument (na indexu 0) je skutečný první argument příkazové řádky, tj. první argument není jméno spouštěného programu...
    10. dubna 2009 11:29
  • Tak z toho jsem bohužel nic nepochopil :-D
    neslo by to nějak ukázat na příkladu? :)
    Dělej jen to, co se zdá správné tobě, ne ostatním!
    19. dubna 2009 7:14
  • Ahoj, tak jestli tomu dobře rozumím, tak bysi chtěl asociovat svůj C# program s nějakou příponou. To můžeš udělat takhle:
    1. Najdi ve svém solution soubor Program.cs, v něm bude řádka
     static void Main() 
    tu nahradíš tímhle:
    static void Main(string[] args) // pridan parametr 
    

    a vevnitř té metody změníš řádek:
     Application.Run(new Form1(args)); // pridan parametr 
    

    2. Teď máš předávané parametry z příkazový řádky do tvýho formuláře, ještě s nimi potřebuješ něco udělat do kódu tvýho formuláře (řekněme Form1) přidáš řádek s proměnnou, aby ten začátek třídy vypadal takhle:
    public partial class Form1 : Form 
      { 
         string CommandArg; // pridano 

    3. změníš v kódu svýho formuláře konstruktor na
    public Form1(string[] args) // pridan parametr
      {
          if (args.Length == 1)           // pridano
              CommandArg = args[0];  // pridano
    
          InitializeComponent();
       } 

    4. Teď můžeš poklikat na formulář, nebo přidat událost OnLoad a v ní nastavit cestu ke svému obrázku pro upload

    Pozn: Teď jsi udělal program, který akceptuje parametr z příkazové řádky, abys dokázal otevřít svůj program z Průzkumníka windows poklepáním na obrázek, musíš teď udělat následující:
    1. Ulož si přeložený (.exe) program kde ho chceš mít
    2. klikni pravým tl. myši v Průzkumníku ve windows na soubor, který chceš aby se ti v programu otevíral, (důležitá je přípona) třeba obrázek.jpg
    3. z menu vyber "Open with" nebo "Otevřít v" a v dalším menu Choose default program (nebo Vybrat program)
    4. teď klikni na Browse a vyhledej si svůj .exe program a dej OK
    5. hotovo, vyzkoušej poklikat na nějaký .jpg soubor
    M
    13. července 2009 20:39