Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zaslání argumentu do metody Main()

Aktivity
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:6.10.2015 17:39

Ahoj, prosím, potřeboval bych pomoc. Jsem úplný začátečník, nicméně mám malou konzolovou aplikaci, ve které bych chtěl provést vložení stringu do schránky - používám:

using System.Windows.Forms;
//nějaký kód v metodě Main()
Clipboard.SetText("text do schránky");

V momentě, kdy se má metoda vložení do schránky vykonat, program řachne, protože metoda Main() nemá argument STAThreadAttribute.
Nevíte prosím, jak ho poslat metodě přímo ze zdrojáku?
(a btw. nefungovalo mi to ani s použítím batche:

program.exe -STAThreadAttribute

čemuž už definitivně nerozumím.)

Poradíte mi prosím?

Odpovědět
6.10.2015 17:39
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Neaktivní uživatel:6.10.2015 18:06

Ahoj, před začátek metody main ti stačí přidat tento řádek

[STAThread]

Co tento řádek dělá 100% nevím, ale měl by nějak komunikovat se systémem v tomto případě schránkou..

Editováno 6.10.2015 18:08
Nahoru Odpovědět
6.10.2015 18:06
Neaktivní uživatelský účet
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech:6.10.2015 18:11

Značí to, že se jedná o hlavní vlákno a bude se používat na UI.

Nahoru Odpovědět
6.10.2015 18:11
the cake is a lie
Avatar
David Dostal
Tvůrce
Avatar
Odpovídá na krepsy3
David Dostal:6.10.2015 18:11

Metodě Main musíš přidat atribut STAThread. Atribut není to samé, co argument, zapisuje se do hranatých závorek nad metodu/třídu/vlas­tnost/..., například takto:

[STAThread]
static void Main(string[] args)
{

}

Atributy se používají pro přiřazení dodatečných informací třídě/metodě/... Například v tomto případě atribut STAThread je požadován pro správné fungování některých částí Windows Froms (je vyžadován pro komunikaci s některými systémovými komponentami).

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
6.10.2015 18:11
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:6.10.2015 19:29

Čili jsem celou dobu googlil špatně "argument"... :DD No, velmi děkuji za rychlé odpovědi ;)
Už i chápu proč mi to nefungovalo v tý dávce a proč mi všechny ty tutoriály přišly nějaký divný... :D A díky za poučení ;)

Nahoru Odpovědět
6.10.2015 19:29
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:7.10.2015 17:44

Rozumím tedy tomu dobře, že ten atribut sdělí windowsům, že program má dostatečná oprávnění na práci s clipboardem?

Nahoru Odpovědět
7.10.2015 17:44
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Neaktivní uživatel:7.10.2015 20:22

Ne, nesouvisí to s clipboardem ale s vláknama

Nahoru Odpovědět
7.10.2015 20:22
Neaktivní uživatelský účet
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Milan Křepelka:8.10.2015 10:00

Pro tazatele to znamená obojí. Platí, že ke clipboardu lze přistupovat z vlákna které má nastaveno ApartmentState na STA.

 
Nahoru Odpovědět
8.10.2015 10:00
Avatar
krepsy3
Tvůrce
Avatar
Nahoru Odpovědět
9.10.2015 9:36
Programátor je stroj k převodu kávy na kód.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.