Spuštění aplikace s parametrem   zodpovězená otázka

.NET

Dobrý den,

chtěl bych se zeptat jestli je možné zavolat spuštění nějaké samostatné aplikace s předáním parametru?

Když jde např.

Process.Start("IExplore.exe", "C:\myPath\myFile.htm")

tak jeslti je možné toto realizovat i u vlastní aplikace podobným způsobem. Nevím jak toto provést, protože v Main přidat parametr nejde (nebo jsem nepřišel jak na to).

Předem děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přidejte metodě Main parametr args:

static void Main(string[] args)

Do této proměnné se potom předá pole zadaných parametrů. Jednotlivé parametry se při zadání oddělují mezerou.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji Vám za nápovědu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě jednou děkuji za odpověď.

Měl bych k tomu jednu prosbu, pokud předávám v parametru cestu k souboru a ta obsahuje v názvu mezeru/y, rozloží se na více částí (více paramterů) a samozřejmě to pak nedává smysl.

Nevíte prosím o nějaké fintě jak toto ošetřit?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Cestu dejte do uvozovek.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud skládám ty argumenty z proměnných typu string, tak jak to dám do uvozovek ?

string execPath = Application.ExecutablePath;
string args = execPath + " " + dalsiArgument;

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdvojte je:

string execPath = Application.ExecutablePath;
string args = execPath + " " + """" + dalsiArgument+ """";

Snad je to tak i v C#...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

ten problém je již v proměné 'exePath', protože pokud obsahuje nějaký název adresáře s použitím mezery (v názvu), tak se mi ta cesta rozloží (v argumentech)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co tohle:

System.Diagnostics.Process.Start(Application.ExecutablePath , "argumenty sem");
nahlásit spamnahlásit spam 0 odpovědětodpovědět

maličko si možná nerozumíme, ty argumenty dávám kam patří, cca takto:

System.Diagnostic.Process.Start(spouštěný soubor exe, args); 

Problém mám se jedním konkrétním argumentem do proměné (string) args. Konkrétně s přidáním argumentu, který je tím Application.ExecutablePath. Pokud tam je např. C:\Program Files\soubor.exe, tak to rozloží cestu na dva argumenty:

- C:\Program

- Files\soubor.exe

protože se argumenty oddělují mezerou. Jde mi o to jak to ošetřit, abych mohl úspěšně cestu předat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Má chyba, omlouvám se.

Takže následovně: vytvořil jsem program, jehož vstupní bod (metoda Main) je obohacen o parametr string[] args a v Main cyklem projedu každý parametr, který aplikace dostala. Dál jsem té samé aplikaci přidal Button a po jeho kliku spustím její novou instanci, s parametrem v uvozovkách, jak jsem již říkál, nsledovně:

System.Diagnostics.Process.Start(Application.ExecutablePath , string.Format(@"""{0}""", Application.ExecutablePath));

A to funguje korektně a celá cesta se předá jako jeden argument :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
string execPath = @""" + Application.ExecutablePath + @""";
string args = execPath + " " + dalsiArgument;

Nevím jestli to je dobře, s C# moc nedělám.

A jak se tohle dá udělat ve vb.net?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Dim execPath As String = String.Format("""{0}""", Application.ExecutablePath)
Dim args As String = String.Format("{0} {1}",execPath,dalsiArgument)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky mnohokrát za rady a trpělivost :-)

už to funguje jak má.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tím myslím ty parametry.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback