PDA

View Full Version : [C#]Far partire in processo


Mattyfog
07-12-2008, 18:25
Ciao,

volevo chiedervi come posso far partire un processo in C#?
Vi spiego meglio laq mia situazione:
io ho un programma che deve lavorare in background. Le opzioni sono 2:
far scomparire la finestra quando deve lavorare in background
oppure
opzione che mi piace di più: fare in modo che l'applicazione avvii un processo e poi si chiuda. Il punto è che ho il bisogno di passare dei parametri a quel processo
Grazie e ciao ;)

Mattyfog
07-12-2008, 18:28
allora ho appena visto che si può creare un backgroung worker aggiungendolo nella finestra di progettazione della windows form. Però mi sa che c'è il problema che se chiudo il programma pure lui si chiude

||ElChE||88
07-12-2008, 18:51
using System.Diagnostics;

...

Process p = new Process();
p.StartInfo.FileName = @"C:\Boh\boh.exe";
p.StartInfo.Arguments = "quelchevuoi";
p.Start();

Mattyfog
07-12-2008, 19:25
ok ;)
arguments cosa devo mettere? cioè a cosa serve?
e poi come faccio a fargli passare dei valori di alcune variabili?

Mattyfog
07-12-2008, 19:41
forse ho capito come risolvere il problema ;)
un attimo e vi faccio sapere

||ElChE||88
07-12-2008, 19:42
arguments cosa devo mettere? cioè a cosa serve?
Serve a:
Il punto è che ho il bisogno di passare dei parametri a quel processo

Mattyfog
07-12-2008, 19:44
ho appena risposto sopra ;)

Mattyfog
07-12-2008, 19:54
il vero problema è:
se io ho capito bene devo creare un altro file exe che svolga il processo. Come faccio a fare in modo che questo file riceva le informazioni passate info.arguments ?

||ElChE||88
07-12-2008, 20:03
static void Main(string[] args)

Mattyfog
08-12-2008, 19:30
ok ma se scrivo all'interno del main:
variabile = args;
ricevo questo errore:
Occorre un riferimento a un oggetto per la proprietà, il metodo o il campo non statico 'prova.percorsolog'

Mattyfog
09-12-2008, 12:49
nessuno?

gugoXX
09-12-2008, 12:56
Ti consiglio, se puoi, di usare un servizio, che mi sembra il modo corretto per risolvere il tuo problema.

Mattyfog
09-12-2008, 15:23
..... servizio?

gugoXX
09-12-2008, 15:49
I servizi Windows, quelli che compaiono se digiti "services.msc" nel prompt dei comandi
Sono programmi residenti, che possono esserlo gia' dalla partenza della macchina (ancor prima del login), e che appunto sono normalmente servizi, ovvero che aspettano input da parte di qualche altro processo per fare ed eventualmente restituire qualcosa.
Tra le altre cose hanno la possibilita' di essere assenti di icone e finestre, tranne tipicamente l'eventuale classica minicona in basso a destra.
Il tuo processo di elaborazione potrebbe quindi essere un servizio, in attesa di input da elaborare, che gli verrebbero passati dalla tua UI.

Ma se non sai di cosa si tratta, forse e' meglio rivolgersi ad altro, dato che sono si' semplici in C#, ma conoscendo almeno le caratteristiche di un servizio e sapendo quello che si sta facendo.

Mattyfog
09-12-2008, 16:43
a sisi... ma preferisco il modo in cui ho lavorato fino ad adesso:
l'unico problema è come faccio a risolvere quel problema dell'args?

Mattyfog
10-12-2008, 20:29
Qualcuno mi aiuta?

Mattyfog
11-12-2008, 13:14
Sperando nell'aiuto di qualcuno ho scoperto questo:
posso visualizzare args[0] con un Console.WriteLine ma non posso scrivere qualcosa del tipo percorsolog = args[0]; non posso perchè ricevo l'errore
Errore 1 Occorre un riferimento a un oggetto per la proprietà, il metodo o il campo non statico 'prova.percorsolog'