C Sharp – die neusten 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

C# Passwort ändern und speichern?

Hey liebe Community,

ich habe mal eine Frage an alle CSharpler…

Ich möchte sehr gerne (als Test) eine einfache ConsoleApp erstellen. Wenn ich diese starte, soll ich ein Passwort eingeben, welches ich für den nächsten Start benötige. Ebenfalls möchte ich eine "Passwort ändern-Funktion" einfügen.

Mein Code (nicht fertig) ist folgender:

using System;
using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Änderungen_speichern
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Änderungen speichern";
            //Hier soll ich aufgefordert werden, mein beim letzten Mal geändertes Passwort einzugeben
            string pfad = "Passwort.txt";
            FileStream fs = new FileStream(pfad, FileMode.Create, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            Console.Write("Passwort auswählen: ");
            string newPassword = Console.ReadLine();
            sw.WriteLine("Folgendes Passwort wird für den nächsten Start benötigt: "+ newPassword);
            sw.Close();
            fs.Close();
        }
    }
}

Ich hoffe es kann mir wer helfen... Sollte was unklar sein, einfach fragen.

Danke im Voraus ;)

MfG

Ollig00

Computer, programmieren, Anwendungsentwicklung, C Sharp

C# System.ObjectDisposedException Wie beheben?

Guten Tag,

ich programmiere derzeit ein C# Programm das erstmals rein als Task startet, sprich nur ein Icon in Windows in der Taskleiste angezeigt wird.

Ich habe dort ein Button mit Settings, was ein Fenster öffnet.

Diese Funktion

public static MainFrm configWindow = new MainFrm();
        void Settings(object sender, EventArgs e)
        {
                if (configWindow.Visible)
                    configWindow.Activate();
                else
                    configWindow.Show();
        }

Das Fenster schließe ich dann letztendlich mit

CstmAppContext.configWindow.Dispose();

Scheinbar reicht dies nicht aus und ich erhalte einen Fehlermeldung zu ObjectDispoosedException

System.ObjectDisposedException
  HResult=0x80131622
  Nachricht = Auf das verworfene Objekt kann nicht zugegriffen werden.
Objektname: "MainFrm".
  Quelle = System.Windows.Forms
  Stapelüberwachung:
   bei System.Windows.Forms.Control.CreateHandle()
   bei System.Windows.Forms.Form.CreateHandle()
   bei System.Windows.Forms.Control.get_Handle()
   bei System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   bei System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   bei System.Windows.Forms.Control.Show()
   bei PwdGenator.CstmAppContext.Settings(Object sender, EventArgs e) in C:\Users\pjhnn\source\repos\PwdGenator\PwdGenator\CstmAppContext.cs: Zeile51
   bei System.Windows.Forms.MenuItem.OnClick(EventArgs e)
   bei System.Windows.Forms.MenuItem.MenuItemData.Execute()
   bei System.Windows.Forms.Command.Invoke()
   bei System.Windows.Forms.Command.DispatchID(Int32 id)
   bei System.Windows.Forms.NotifyIcon.WndProc(Message& msg)
   bei System.Windows.Forms.NotifyIcon.NotifyIconNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.Run(ApplicationContext context)
   bei PwdGenator.Program.Main() in 
PwdGenator\PwdGenator\Program.cs: Zeile19

Dieser Fehler trifft bei der zeile

configWindow.Show();

auf.

Wo liegt den mein Fehler?

Ich habe die MainFrm configWindow schon auf public static gesetzt um in der Form direkt auf die Variable zuzugreifen, leider hilft das nicht weiter

Computer, Technik, programmieren, C Sharp, Technologie, Spiele und Gaming

Meistgelesene Beiträge zum Thema C Sharp