usunięcie windowsformsapplication

usunięcie windowsformsapplication
C1
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:30
0

witam,

mam aplikację otwierającą plik excel'a w C#. Otwiera się go za pomocą windowsformsapplication i przyciskiem 'Uruchom'. Czy da się zlikwidować tego forms'a z przyciskiem Uruchom, aby aplikacja uruchamiała się od razu?

Form1.cs wygląda następująco:

Kopiuj
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using EdmLib;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IEdmVault5 Vault = new EdmVault5();
        string NazwaPrzechowalni = "firma";
        string SciezkaPliku = @"C:\firma\SZABLONY\fima\Calc\KD.xls";

        public Form1()
        {
            InitializeComponent();
            Vault.LoginAuto(NazwaPrzechowalni, 0);
            IEdmFolder5 folder = default(IEdmFolder5);
            IEdmFile5 file = Vault.GetFileFromPath(SciezkaPliku, out folder);
            file.GetFileCopy(0);
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(SciezkaPliku);
        }
                
    }
} 

z kolei Program.cs wygląda tak:

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

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
 
ZA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:55
0

Chcesz uruchomić plik excela bez pojawiania się okna WF, czy bez klikania uruchom?
Najprościej ale chyba niezbyt mądrze będzie wrzucić do konstruktora okna kliknięcie przycisku.
Bardziej mądrze będzie usunąć sam przycisk, i jego logikę również wrzucić do konstruktora.
A jeśli wcale nie chcesz mieć okna WF, wydaje mi się, że powinieneś, prawdopodobnie gdzieś w Solution Explorerze zmienić typ aplikacji na konsolową i potem w kodzie usunąć definicję okien. Wtedy konsola pojawi Ci się na moment i uruchomi plik. Możliwe też, że jest jakiś inny lepszy sposób, którego nie znam

C1
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:30
0

chciałbym uruchamiać bez pojawiania się WF. Jeśli byłoby bez WF to także button 'Uruchom' by się nie generował.

zmieniłem output type: Console Application. Teraz jak klikam Start Debugging pojawia się jedynie konsola, jednak nie uruchamia wskazanego pliku z lokalizacji

Kopiuj
string SciezkaPliku = @"C:\firma\SZABLONY\fima\Calc\KD.xls"; 
edytowany 1x, ostatnio: crossas14
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
0

A powinna? Masz tak napisane w kodzie, że ma uruchomić ten plik? Bo z tego, co załączyłeś to tak nie wynika.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:2 minuty
0

Tutaj

Kopiuj
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

tworzona jest forma (new Form1) i uruchamiana pętla komunikatów (Application.Run).
Wystarczy tego nie robić, a kod który chcesz uruchomić wywołać w Main.
Dwie linijki wyżej (EnableVisualStyles i SetCompatibleTextRenderingDefault) też możesz wtedy wywalić.

edytowany 1x, ostatnio: Azarien
C1
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:30
0
Kopiuj
   static void Main()
        {
            Application.Run();

usunąłem 'EnableVisualStyles' i 'SetCompatibleTextRenderingDefault'. Mogę prosić o wyjaśnienie - kod do uruchomienia wywołać w Main?

teraz wygląda to tak, że przeniosłem co nieco do static void main. Jedyny błąd pojawia się przy własnie static void main.

Kopiuj
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using EdmLib;


namespace WindowsFormsApplication2
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void main WindowsFormsApplication2();

        public partial class Form1 : Form
        {
            IEdmVault5 Vault = new EdmVault5();
            string NazwaPrzechowalni = "firma";
            string SciezkaPliku = @"C:\firma\SZABLONY\fima\Calc\KD.xls";

            public Form1()
            {
                Vault.LoginAuto(NazwaPrzechowalni, 0);
                IEdmFolder5 folder = default(IEdmFolder5);
                IEdmFile5 file = Vault.GetFileFromPath(SciezkaPliku, out folder);
                file.GetFileCopy(0);
            }
        }
    }
} 
edytowany 1x, ostatnio: crossas14
ZA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:55
0

Wydaje mi się, że to po pierwsze powinno wyglądać tak:

Kopiuj
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using EdmLib;
 
 
namespace WindowsFormsApplication2
{
        public partial class Form1 : Form
        {
            IEdmVault5 Vault = new EdmVault5();
            string NazwaPrzechowalni = "firma";
            string SciezkaPliku = @"C:\firma\SZABLONY\fima\Calc\KD.xls";
 
            public Form1()
            {
                Vault.LoginAuto(NazwaPrzechowalni, 0);
                IEdmFolder5 folder = default(IEdmFolder5);
                IEdmFile5 file = Vault.GetFileFromPath(SciezkaPliku, out folder);
                file.GetFileCopy(0);
            }
        }

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
       static void Main(string[] args)
       {
              //tutaj kod
       }
    }
} 

Dodatkowo w miejscu komentarza musisz wpisać co ma sie tworzyć po kolei itd, ale nie chcę Cię wprowadzić w błąd. Popróbuj sam, albo niech ktoś z większą wiedzą się wypowie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.