Applicatie werkt niet!

Status
Niet open voor verdere reacties.

WDHBGS

Terugkerende gebruiker
Lid geworden
18 dec 2010
Berichten
1.348
Hallo allemaal,

Ik heb een C# applicatie gemaakt, maar het werkt niet..
Hier is de source:
Code:
/*
 * Created by SharpDevelop.
 * User: Wouter
 * Date: 21-7-2013
 * Time: 20:41
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Threading;
using System.Timers;
using System.Windows.Forms;

namespace REBOOTINSIM
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			{
				try {

	  	try
          {
	foreach (Process proc in Process.GetProcessesByName("LFS_External"))
            {
                proc.Kill();
            }
          }
	  	finally
	  	{
        System.Threading.Thread.Sleep(1000);
		Process.Start("LFS_External.exe");
        Thread.Sleep(1000);
        Application.Exit(); } }
				finally {
				
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
	}
	} 
}
	}

Groetjes, WDHBGS
 
Wat werkt er niet? Wat probeer je te doen? Krijg je foutmeldingen? Kortom: Kun je iets specifieker zijn?

Wat ik nu in een eerste oogopslag zie, is dat je twee try-catchblokken gebruikt om een proces te killen, om het vervolgens opnieuw op te starten.
 
@JoZ1, helemaal niks werkt, en ik krijg geen foutmeldingen.
Ik probeer het te openen vanaf een ander programmaatje, maar niets werkt..
Het werkt ook niet om het handmatig te openen, maar het Form is ook nog niet gemaakt.
 
Wat is het doel van je programmaatje dan?
 
@JoZ1, ik heb een server op het spel Live For Speed, met een soort van systeem waarbij je pakketjes moet brengen bij mensen, daar krijg je virtueel geld voor, en daar kun je weer grotere auto's mee kopen.
Dat systeem heet InSim.
Maar als je iemand als administrator toevoegt, moet de InSim herstarten, ik heb dit gemaakt om de InSim makkelijk te kunnen herstarten.

Groetjes, WDHBGS
 
Laatst bewerkt:
Even zonder getest te hebben:

[cpp] //Form Load Event
private void Form1_Load(object sender, EventArgs e)
{
Process.Start(Application.StartupPath);
try
{
//Proces afsluiten
//Voor volgende regels code kun je evt. gebruik maken van multithreading
foreach (Process proc in Process.GetProcessesByName("LFS_External"))
{
proc.Kill();
}

do
{
//wacht tot process is gesloten
}
while (Process.GetProcessesByName("LFS_External").Length > 0);

//herstart
Process.Start("LFS_External.exe");

Application.Exit();
}
catch (Exception ex)
{
//Hier evt. foutmelding laten zien
}
}[/cpp]

Dit soort taken kunnen trouwens beter middels een Console Application worden uitgevoerd (er is toch geen GUI nodig?).
 
Let wel op, afhankelijk hoe de server draait, kan "KILL" en zelfs "getprocessbyname" priviliged zijn. Mogelijk zit de fout niet direct in de statements maar ook de rechten van de uitvoering.

Voor de rest is een GUI inderdaad overkill, maar dat is het gebruik van c# eigenlijk ook wel een beetje. Dit kan ook met windows scripting en dat is eenvoudig te beheren, maar dat is een aside van de echte vraag natuurlijk
 
@JoZ1, ik krijg geen errors, en het opent ook gewoon, maar het werkt niet.
 
@wampier: True. Dit is inderdaad prima te doen met een scriptje. Wat vindt WDHBGS daarvan?
Verder, als het met de rechten te maken had, zou Windows dan niet gaan mekkeren met een foutmelding?

@WDHBGS: Kijk eens wat er mis gaat door te debuggen (http://www.homeandlearn.co.uk/csharp/csharp_s5p4.html)
 
@JoZ1, maar ik gebruik ShartpDevelop om te programmeren, maar het debuggen lukt wel. Ik zie niets raars tijdens het debuggen..

Groetjes, WDHBGS
 
Maar de regel proc.Kill(); wordt wel uitgevoerd? En wordt het proces dan ook daadwerkelijk gesloten?

Dat je SharpDevelop gebruikt maakt qua debuggen niet zo veel uit, het lijkt vrij veel op Visual Studio.
 
@wampier: zou Windows dan niet gaan mekkeren met een foutmelding?

Afhankelijk van je omgeving. Ik ken sharpdevelop dan weer niet, maar VS onderdrukt die error, tenzij je het gecompilede programma stand-alone draait.
 
Erdoor stappen per regel en kijken of de proc.kill() wordt uitgevoerd. daarnaast je proces explorer open en kijken of je server gekilled wordt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan