Verktyg Visningsval
2012-05-05, 17:18   #1

LinusNeuman

Medlem

LinusNeumans avatar

Plats: Jönköping

Registrerad: jun 2011

Hjälp mig med mitt konsoll program!


Hejdär!
Jag är absolut noob, men vill ha hjälp med fåtal saker.
När man startar programmet så skall den fråga ifall jag vill starta servern eller om jag vill stänga av programmet. I framtiden så vill jag att man skall kunna uppdatera servern också genom detta program. Sen så stänger den av programmet ifall man trycker på Escape, eller startar servern om jag trycker på Enter.
När man trycker på Enter så vill jag att programmet startar följande .batch kod.
Spoiler:

Batch Koden Den Skall Utföra
@echo off
cls
echo Protecting Minecraft Server from crashes...
title Minecraft Server Watchdog
color 3
:craftbukkit-1.2.5-R1.0
echo (%date%) (%time%) server started.
start /wait java -Xmx4G -Xms4G -jar C:\Users\Linus\Desktop\MinecraftServer\craftbukkit-1.2.5-R1.0.jar
echo (%date%) (%time%) WARNING: server closed or crashed, restarting.
goto craftbukkit-1.2.5-R1.0

Jag har kommit såhär långt hittils:
Spoiler:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VoidGamingServer
{
class Program
{
static void Main(string[] args)
{
Console.Title = ("VoidGamingServer");

String name = Environment.UserName;
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Press Escape to terminate at anytime.\r\n"); Console.WriteLine("Welcome " + name);
System.Threading.Thread.Sleep(2000);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Press the ESCAPE key to terminate now, or press ENTER to launch the server.");
while (Console.ReadKey(true).Key != ConsoleKey.Escape)
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Terminating...", Environment.ExitCode); System.Threading.Thread.Sleep(500);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\r\nLoading...");
Console.WriteLine("0%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("10%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("20%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("30%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("40%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("50%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("60%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("70%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("80%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("90%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("100%");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Server Launching...\r\n");
System.Threading.Thread.Sleep(1000);
}
}
}

Hur ska jag fortsätta nu? Hur gör jag så att den startar .batch koden efter att jag trycker på Escape? Hjälp mig, och beskriv på så enkel Svenska ni kan, är inte duktig på det här än!
__________________
~~N660GTX-TwinFrozrIII-OC-2Gb SLI | Intel Core i5 4670K | BeQuiet Pure Power L8 630W | Corsair Vengeance 1600Mhz 4Gb x2 | Z87-G45 Gaming | Fractal Design Define R4 | Win8 64 | 200/10Mb/s | 23"AsusVG236 3D | Nvidia 3D Vision~~
Spela Bertil: Alien Hunter gratis på www.GetBertil.TK
LinusNeuman är uppkopplad nu Folding
2012-05-08, 21:14   #2

LinusNeuman

Medlem

LinusNeumans avatar

Plats: Jönköping

Registrerad: jun 2011

Ingen snäll själ som kan hjälpa mig med mitt i-lands problem?
__________________
~~N660GTX-TwinFrozrIII-OC-2Gb SLI | Intel Core i5 4670K | BeQuiet Pure Power L8 630W | Corsair Vengeance 1600Mhz 4Gb x2 | Z87-G45 Gaming | Fractal Design Define R4 | Win8 64 | 200/10Mb/s | 23"AsusVG236 3D | Nvidia 3D Vision~~
Spela Bertil: Alien Hunter gratis på www.GetBertil.TK
LinusNeuman är uppkopplad nu Folding
2012-05-08, 21:21   #3

gn1p

Medlem

Plats: Skövde

Registrerad: maj 2010

Ser ut som java?
Är inte speciellt vass på någon programering men det enklaste är väl att använda if satser för knapptryckningarna och sedan ha batfilen som startar när man trycker ner en tangent?
__________________
i5-3570K @ 4.5GHZ| 16GB Kingston HyperX |MSI MPower Z77 | MSI 680 Lightning | OCZ Vertex 3 90 GB | Samsung EVO Basic 840 250GB |Corsair HX 750 | Dell U2311H
Samsung Galaxy S3
gn1p är inte uppkopplad
2012-05-08, 21:45   #4

hampee94

Medlem

Registrerad: feb 2010

Varför har du en massa thread.sleep? känns som du skriver ut saker samt har en massa thread.sleep bara för att programmet ska se komplicerat ut tänk på att koden ska vara så optimerad som möjligt inte se coolt ut .

inte min sorts programmering men det här kanske går att använda som grund/inspiration
using System;
using System.Diagnostics;

namespace VoidGamingServer
{
    class Program
    {
        static void Main(string[] args)
        {
            Process process = null;
            bool alive = true;

            Console.WriteLine("write exit to close or start to start server");

            while (alive)
            {
                switch (Console.ReadLine())
                {
                    case "exit":
                        alive = false;
                        if(process != null)
                            process.Close();
                        break;
                    case "start":
                        Console.WriteLine("server starting");
                        process = Process.Start("batch sökväg");
                        Console.WriteLine("done");
                        break;
                }
            }
        }
    }
}
och nej jag har inte testat den Den stoppar inte heller användaren från att starta batch filen flera gånger med det blir lätt att implementera. Det är också lätt att lägga till flera alternativ i switch satsen för att kunna uppdatera osv men då borde du dela upp de i olika metoder som man kallar på i switch satsen.

Senast redigerad av hampee94 2012-05-09 klockan 12:41.
hampee94 är inte uppkopplad
2012-05-09, 18:03   #5

GAPa

Forumledare
Korrekturläsare

GAPas avatar

Plats: Lund

Registrerad: jun 2004

Citat:
Ursprungligen inskrivet av LinusNeuman Visa inlägg
Ingen snäll själ som kan hjälpa mig med mitt i-lands problem?
Jag är rädd att den typen av inlägg som bara är till för att flytta tråden högre upp i trådlistningen är förbjudna enligt § 4 i reglerna. Det beror på att vi tycker att det är viktigt att alla får samma chans att få sina trådar uppmärksammade. Den här gången har jag inte låst din tråd på grund av detta, men tänk på det i fortsättningen.
__________________
Kontakta mig direkt vid frågor om eller synpunkter på modereringen/forumet och glöm inte att tala om vilken tråd det handlar om. Kontaktvägar: albert@sweclockers.com, kontaktformuläret och moderatorernas gemensamma pm-konto. Annat användbart: regler och feedbackforumet. Funderar du på att anmäla ett inlägg? Tveka inte! Gör det även om du är osäker. Det är vår sak att bedöma det, inte din.
GAPa är inte uppkopplad
2012-05-09, 19:46   #6

Be4ten

Medlem

Be4tens avatar

Plats: Karlstad

Registrerad: sep 2003

Varför har du gjort en fake loading? Syftar på detta

onsole.WriteLine("\r\nLoading...");
Console.WriteLine("0%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("10%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("20%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("30%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("40%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("50%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("60%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("70%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("80%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("90%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("100%");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Server Launching...\r\n");
System.Threading.Thread.Sleep(1000);
Be4ten är inte uppkopplad
2012-05-09, 20:26   #7

hampee94

Medlem

Registrerad: feb 2010

Citat:
Ursprungligen inskrivet av Be4ten Visa inlägg
Varför har du gjort en fake loading?
haha precis det jag syftade på i min förra post
hampee94 är inte uppkopplad
2012-05-09, 22:41   #8

LinusNeuman

Medlem

LinusNeumans avatar

Plats: Jönköping

Registrerad: jun 2011

Citat:
Ursprungligen inskrivet av GAPa Visa inlägg
Jag är rädd att den typen av inlägg som bara är till för att flytta tråden högre upp i trådlistningen är förbjudna enligt § 4 i reglerna. Det beror på att vi tycker att det är viktigt att alla får samma chans att få sina trådar uppmärksammade. Den här gången har jag inte låst din tråd på grund av detta, men tänk på det i fortsättningen.
Förlåååååååt!!!!! Ska inte hända igen! NEVAR!
EDIT: Förresten, du kan ta bort den bump posten om du vill vettö!

Citat:
Ursprungligen inskrivet av Be4ten Visa inlägg
Varför har du gjort en fake loading? Syftar på detta
onsole.WriteLine("\r\nLoading...");
Console.WriteLine("0%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("10%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("20%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("30%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("40%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("50%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("60%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("70%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("80%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("90%");
System.Threading.Thread.Sleep(5);
Console.WriteLine("100%");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Server Launching...\r\n");
System.Threading.Thread.Sleep(1000);
Citat:
Ursprungligen inskrivet av hampee94 Visa inlägg
haha precis det jag syftade på i min förra post
För att det ser coolt ut!!!!! XD

Senast redigerad av LinusNeuman 2012-05-09 klockan 23:07.
__________________
~~N660GTX-TwinFrozrIII-OC-2Gb SLI | Intel Core i5 4670K | BeQuiet Pure Power L8 630W | Corsair Vengeance 1600Mhz 4Gb x2 | Z87-G45 Gaming | Fractal Design Define R4 | Win8 64 | 200/10Mb/s | 23"AsusVG236 3D | Nvidia 3D Vision~~
Spela Bertil: Alien Hunter gratis på www.GetBertil.TK
LinusNeuman är uppkopplad nu Folding
2012-05-09, 23:02   #9

LinusNeuman

Medlem

LinusNeumans avatar

Plats: Jönköping

Registrerad: jun 2011

Citat:
Ursprungligen inskrivet av gn1p Visa inlägg
Ser ut som java?
Är inte speciellt vass på någon programering men det enklaste är väl att använda if satser för knapptryckningarna och sedan ha batfilen som startar när man trycker ner en tangent?
Det är C#
Kan inte så mycket om if, men vet vad du menar, int ehur man gör det dock.. xD
men jag vill helst ha bat filen inbyggd!
__________________
~~N660GTX-TwinFrozrIII-OC-2Gb SLI | Intel Core i5 4670K | BeQuiet Pure Power L8 630W | Corsair Vengeance 1600Mhz 4Gb x2 | Z87-G45 Gaming | Fractal Design Define R4 | Win8 64 | 200/10Mb/s | 23"AsusVG236 3D | Nvidia 3D Vision~~
Spela Bertil: Alien Hunter gratis på www.GetBertil.TK
LinusNeuman är uppkopplad nu Folding
2012-05-09, 23:06   #10

LinusNeuman

Medlem

LinusNeumans avatar

Plats: Jönköping

Registrerad: jun 2011

Citat:
using System;
using System.Diagnostics;

namespace VoidGamingServer
{
class Program
{
static void Main(string[] args)
{
Console.Title = ("VoidGaming Server Launcher");
String name = Environment.UserName;
Process process = null;
bool alive = true;
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Welcome " + name);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\r\nWrite Exit to terminate or write Start to launch server");
Console.ForegroundColor = ConsoleColor.Cyan;

while (alive)
{
switch (Console.ReadLine())
{
case "exit":
alive = false;
if (process != null)
process.Close(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Terminating...", Environment.ExitCode); System.Threading.Thread.Sleep(1000);
break;
case "start":
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Server Launching...");
process = Process.Start("C:/Users/Linus/Desktop/MinecraftServer/CrashProtect.bat");
Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Done! Terminating...", Environment.ExitCode); System.Threading.Thread.Sleep(1000); break;
}
}
}
}
}

Så ska det se ut! MEN! När ajg sedan startar servern, då bara startar den om servern hela tiden, om du tänker dig att det spammas med servrar som startar och får stänga av origrammet, sen watchdoggen! Skit jobbigt!
EDIT: FIXAT! Sänkte bara minnes mängden TROTS att det fanns mycket mer minne ledigt än den ville ha, och sa att det inte fanns...
IAF:
Problemet! Programmet stänger inte av sig... Vad ska jag göra? Redan försökt med Environment.exit men det står bara unbreachable bla bla

Senast redigerad av LinusNeuman 2012-05-10 klockan 16:46.
__________________
~~N660GTX-TwinFrozrIII-OC-2Gb SLI | Intel Core i5 4670K | BeQuiet Pure Power L8 630W | Corsair Vengeance 1600Mhz 4Gb x2 | Z87-G45 Gaming | Fractal Design Define R4 | Win8 64 | 200/10Mb/s | 23"AsusVG236 3D | Nvidia 3D Vision~~
Spela Bertil: Alien Hunter gratis på www.GetBertil.TK
LinusNeuman är uppkopplad nu Folding
Senaste nyheterna

Redaktionens senaste nyhetsrubriker

Sök jobb