Frage von Djoleee, 72

C# Ein Ausnahmefehler des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten?

Hallo zusammen,

Ich habe da ein kleines Problem.. Ein Ausnahmefehler des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten. Diese Meldung gibt es mir, sobald ich versuche das Programmt auszuführen.

Ich hoffe ihr könnt mir dabei helfen.

Danke und Gruß Djolee

Hier noch das Script:

using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        [DllImport("user32.dll", EntryPoint = "SetWindowPos")]
        public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags);

        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        private void button1_Click(object sender, EventArgs e)
        {

            Process process = new Process();
            string firefox = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), "<a href="https://www.google.ch/">https://www.google.ch/</a>");
            process.StartInfo.FileName = firefox;
            process.StartInfo.Arguments = string.Format("{0}", "firefox.exe");
            process.StartInfo.UseShellExecute = true;

process.Start(); ////Hier meldet sich der fehler////

            Thread.Sleep(200); // warten bis Fenster da ist...

            IntPtr handle = FindWindow(null, "firefox.exe");
            int meineXPos = 1000;
            int meineYPos = 50;
            int meineBreite = 300;
            int meineHoehe = 300;
            SetWindowPos(handle, 0, meineXPos, meineYPos, meineBreite, meineHoehe, SWP.SHOWWINDOW);
        }
        public static class SWP
        {
            public static readonly int
            NOSIZE = 0x0001,
            NOMOVE = 0x0002,
            NOZORDER = 0x0004,
            NOREDRAW = 0x0008,
            NOACTIVATE = 0x0010,
            DRAWFRAME = 0x0020,
            FRAMECHANGED = 0x0020,
            SHOWWINDOW = 0x0040,
            HIDEWINDOW = 0x0080,
            NOCOPYBITS = 0x0100,
            NOOWNERZORDER = 0x0200,
            NOREPOSITION = 0x0200,
            NOSENDCHANGING = 0x0400,
            DEFERERASE = 0x2000,
            ASYNCWINDOWPOS = 0x4000;
        }
    }
}
Antwort
von Mikkey, 67

Du solltest nochmal nachlesen, wie ein Objekt "Process" belegt werden muss, um einen Prozess zu starten.

Dies z.B.

string firefox = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), "<a href=...");

erzeugt die Zeichenfolge:

C:\Windows\<a href=...

Das wird sicher nicht so beabsichtigt sein.

Außerdem gehört in process.StartInfo.Arguments nicht der Programmname sondern vermutlich "https://www.google.ch"

Keine passende Antwort gefunden?

Fragen Sie die Community