C Sharp – die meistgelesenen Beiträge

C# Prozess mit einem Admin Konto starten. Wie?

Moin,

Ich habe nun sehr lange im Internet gegoogelt und habe immer noch keine Antwort auf mein Problem gefunden.

Aber nun zu meinem Problem:

Ich habe eine Anwendung geschrieben, die ich gerne als Administrator mit erhöhten Rechten starten möchte(mit Hilfe eines neuen Programms). Mein Problem ist nun, dass Visual Studio mir die ganze Zeit bei dem Programm, welches die Anwendung starten soll, die folgende Fehlermeldung bringt: "System.ComponentModel.Win32Exception: "Der angeforderte Vorgang erfordert erhöhte Rechte"".

Im Internet finde ich leider nicht viel darüber, wie man diese Meldung umgehen kann.

Wie ich mein Prozess starte, der die Admin Rechte benötigt:

SecureString securestring = new SecureString();

      string Passwort = "[Admin-Password]";

      foreach (char char in Passwort)

      {

        securestring.AppendChar(char);

      }

      ProcessStartInfo processstartinfo = new ProcessStartInfo();

      processstartinfo.UserName = "[Admin-Account]";

      processstartinfo.Password = securestring;

      processstartinfo.Verb = "runas";

      processstartinfo.FileName = @"[App, die Admin Rechte braucht]";

      processstartinfo.UseShellExecute = false;//wird von VS so verlangt

      Process.Start(processstartinfo);// Hier taucht die Fehlermeldung auf

Und nun ist meine Frage, wie ich das ganze mache....

Oder bin ich auf ein Problem gestoßen, welches ein Sicherheits-Feature von Windows ist?

Edit: Die Aufgabenplanung unter Windows ist leider auch keine Möglichkeit, da das Programm leider nicht angezeigt wird...

Danke schon mal im Vorhinein!

Computer, Windows, programmieren, C Sharp

Wie kann ich "Object reference not set to an instance of an object" beheben?

Hallo,

ich bin dabei, ein Spiel zu machen und bekomme die ganze Zeit den Fehler

Object reference not set to an instance of an object

bei dem Code.

using System;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
using Object = UnityEngine.Object;

// Token: 0x02000007 RID: 7
public class LevelGeneration : MonoBehaviour
{
  // Token: 0x06000015 RID: 21 RVA: 0x0000246C File Offset: 0x0000066C
  private void Awake()
  {
    this.lastEndPosition = this.levelPart_Start.Find("EndPosition").position;
    int num = 5;
    
    for (int i = 0; i < num; i++)
    {
      this.spawnLevelPart();
    }
  }

  // Token: 0x06000016 RID: 22 RVA: 0x000024A8 File Offset: 0x000006A8
  private void Update()
  {
    if (Vector3.Distance(this.player.transform.position, this.lastEndPosition) < 200f)
    {
      this.spawnLevelPart();
    }
  }

  // Token: 0x06000017 RID: 23 RVA: 0x000024D4 File Offset: 0x000006D4
  private Transform SpawnLevelPart(Transform levelPart, Vector3 spawnPosition)
  {
    Transform transform = Object.Instantiate<Transform>(levelPart, spawnPosition, Quaternion.identity);
    this.putRight(transform);
    return transform;
  }

  // Token: 0x06000018 RID: 24 RVA: 0x000024F8 File Offset: 0x000006F8
  private void spawnLevelPart()
  {
    Transform levelPart = this.levelPartList[Random.Range(0, this.levelPartList.Count)];
    Transform transform = this.SpawnLevelPart(levelPart, this.lastEndPosition);
    this.lastEndPosition = transform.Find("EndPosition").position;
  }

  // Token: 0x06000019 RID: 25 RVA: 0x00002548 File Offset: 0x00000748
  private void putRight(Transform levelPart)
  {
    this.bottomPosition.y = levelPart.Find("bottom").position.y;
    this.topPosition.y = levelPart.Find("top").position.y;

    if (this.bottomPosition.y <= -10f)
    {
      levelPart.transform.position += new Vector3(0f, 3f, 0f);
    }

    if (this.topPosition.y >= 10f)
    {
      levelPart.transform.position -= new Vector3(0f, 3f, 0f);
    }
  }

  // Token: 0x04000013 RID: 19
  private const float PLAYER_DISTANCE_SPAWN_LEVEL_PART = 200f;

  // Token: 0x04000014 RID: 20
  [Header("Level Parts")]
  [SerializeField]
  private Transform levelPart_Start;

  // Token: 0x04000015 RID: 21
  [SerializeField]
  private List<Transform> levelPartList;  

  // Token: 0x04000016 RID: 22
  [Header("Objects")]
  [SerializeField]
  private GameObject player;

  // Token: 0x04000017 RID: 23
  private Vector3 lastEndPosition;

  // Token: 0x04000018 RID: 24
  private Vector3 bottomPosition;

  // Token: 0x04000019 RID: 25
  private Vector3 topPosition;
}

Ich danke jetzt schon für die Antworten. ^^

Computer, programmieren, C Sharp, Unity