Esecuzione pgm da servizio windows

venerdì 17 dicembre 2004 - 11.49

mich69 Profilo | Newbie

Ho creato un servizio Windows in VB.net che in determinate condizioni dovrebbe lanciare due pgm console, il comando che uso è:

Call Shell(path_sport & cod_sport & "", AppWinStyle.NormalFocus, True)

ma non succede nulla ed in particolare l'output non viene generato.

Qualcuno può darmi una mano?
Grazie Mich

mich69 Profilo | Newbie

il pgm è console, e non ha intefaccia, adesso provo con system.diagnostic.
Grazie.

mich69 Profilo | Newbie

scusate ma la sintassi è:
Process.Start("cmd.exe", "C:\myPath\myFile.exe")

Mich.

mich69 Profilo | Newbie

purtroppo non riesco proprio.
sostanzialmente il servizio deve lanciare due pgm console con relativi parametri dal shell di dos:
1) c:\service\crea_asp.exe BASKET
2) c:\service\crea_man.exe BASKET CIB1

come posso fare?

mich69 Profilo | Newbie

Niente da fare, il comando non genera errori ma non produce niente ho come la sensazione che il problema non sia nel codice, ma in qualche particolare che mi sfugge, tra l'altro non riesco ad eseguire il debug sul pgm chiamato.
Comunque grazie dei consigli.
A presto.
Mich.

mich69 Profilo | Newbie

coach,
neanche in questa maniera:
Dim DOS As Process
Dim pgm As New ProcessStartInfo(path_sport, cod_sport)
pgm.UseShellExecute = True
pgm.WindowStyle = ProcessWindowStyle.Normal
Process.Start(pgm).WaitForExit()

il pgm chiamato funziona , hai suggerimenti (ancje cambiare impostazione)?
Mich.

mich69 Profilo | Newbie

risolto grazie a tutti

mich69 Profilo | Newbie

vanno bene tutte e due le soluzioni, sia il comando:

Shell(path_sport & cod_sport & "", AppWinStyle.NormalFocus, True)

che i comandi:

Dim DOS As Process
Dim pgm As New ProcessStartInfo(path_sport, cod_sport)
pgm.UseShellExecute = True
pgm.WindowStyle = ProcessWindowStyle.Normal
Process.Start(pgm).WaitForExit()

il problema risiedeva nei programmi chiamati, dove è necessario specificare il path esteso dei file esterni, anche se sono presenti nella cartella del pgm stesso.
es. se il pgm chiamato risiede nella cartella c:\miacartella\pgm.exe e questo richiama il file mio.dat presente nella stessa cartella non basta scrivere:
filename = "mio.dat"
che andrebbe bene se il pgm non venisse richiamato da un servizio ma bisogna scrivere:
filename = "c:\miacartella\mio.dat.

Questa banalità mi ha fatto perdere un giorno di lavoro.
Mich.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5