C# Webseite öffnen lassen?
Hallo liebe Leser,
ich wollte wissen ob mir zufällig jemand bei meinen Code für mein Programm helfen könnte.
Der Ansatz ist extrem simple aber bei der Umsetzung scheitert es leider noch.
Ich wollte ein Programm schreiben wo sich eine bestimmte Webseite zu einer bestimmten Bedingung öffnet.
z.B. Nimmt man eine Variable „x“
dann soll sich für x = 1 Webseite 1 öffnen
und für x = 2 soll sich Webseite 2 öffnen
Habe mir viele Beiträge und Videos dazu angeschaut aber würde daraus leider nicht schlauer. Daher hoffe ich, dass ich hier jemand finde der sich mit der Thematik auskennt.
Mein fehlerhaften Code werde ich mit hochladen.
Den Befehl:
System.Diagnostics.Process.Start(‘‘URL‘‘)
habe ich aus dem Internet genommen.
Danke im Voraus für die Hilfe:)
3 Antworten
Probiere es mal so:
System.Diagnostics.Process.Start("firefox.exe", "http://www.google.com");
Nutzt du NET Core oder NET Framework für das Projekt?
Bei Fall Nummer 1, probiere mal es mit dem Net Framework.
Sonst auch für NET Core:
https://stackoverflow.com/questions/7693429/process-start-to-open-an-url-getting-an-exception
Dann sollte die erste Antwort passen:
https://stackoverflow.com/questions/7693429/process-start-to-open-an-url-getting-an-exception
System.Diagnostics.Process.Start(System.Environment.GetEnvironmentVariable("COMSPEC"), "/C " + "start " + URL)
Übrigens, kennst du schon "switch" und "case"?
Obwohl sich für so etwas ein Array oder eine List anbietet. (Hier ist zu berücksichtigen, dass die Indizes 0-basiert sind.)
Erstmal Danke , das Du ein Foto gepostet hast und keinen Code...
Es macht unheimlich Spaß Code von einer Fotografie abzutippen...
ConsoleApp1.cs
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.Write("1,2 oder 3 eingeben : ");
double x=0; //wichtig einen definierten Wert eingeben, bei Eingabe einer NichtZahl geht die Zuweisung an x in die Hose...
try {x=Convert.ToDouble(Console.ReadLine());} catch {}; //bei einem Fehler nichts unternemen, x ist bereits mit 0 in einem definierten Zustand.
if (x == 1)
{
System.Diagnostics.Process.Start("https://www.gutefrage.net/frage/c-webseite-oeffnen-lassen");
}
if (x == 2)
{
System.Diagnostics.Process.Start("https://www.google.com/");
}
if (x == 3)
{
System.Diagnostics.Process.Start("https://gmx.net");
}
else
{
Console.WriteLine("ungültige Eingabe!");
}
Console.ReadKey ();
}
}}
Keine Ahnung was für eine Fehlermeldung bei Dir kommt. Bei mir läuft über den KommandozeilenCompiler alles glatt...
Einen möglichen Fehler bei falscher Eingabe von NichtZahlen habe ich gleich mit gefixt.
Hier eine c#HybridBatch, welche den Code automatisch compiliert:
ConsoleApp1.cmd
/* 2>nul ||@cls und flink eine Zeile Prompt löschen
@echo off
mode con cols=80
for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*csc.exe"') do (
set "csc=%%v"
)
"%csc%" /out:"%~n0.exe" %0
echo Demo:
"%~n0.exe"
echo:
pause
exit /b %errorlevel%
rem Die nächste Zeile ist wichtig nicht ändern!
::::C#code */
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.Write("1,2 oder 3 eingeben : ");
double x=0; //wichtig einen definierten Wert eingeben, bei Eingabe einer NichtZahl geht die Zuweisung an x in die Hose...
try {x=Convert.ToDouble(Console.ReadLine());} catch {}; //bei einem Fehler nichts unternemen, x ist bereits mit 0 in einem definierten Zustand.
if (x == 1)
{
System.Diagnostics.Process.Start("https://www.gutefrage.net/frage/c-webseite-oeffnen-lassen");
}
if (x == 2)
{
System.Diagnostics.Process.Start("https:
//www.google.com/");
}
if (x == 3)
{
System.Diagnostics.Process.Start("https:
//gmx.net");
}
else
{
Console.WriteLine("ungültige Eingabe!");
}
Console.ReadKey ();
}
}}
PS hatte durch den Gnatz über die Abtipperei nicht darauf geachtet :
für die 2. und 3. Option muss es natürlich else if statt if heißen
else if (x == 2)
...
else if (x == 3)
...
else
...
Erstmal Danke für die schnelle Antwort!
Aber leider kommt dir Fehlermeldung immernoch