Jak przejąć na własność plik/katalog w Windows Vista? C#/C++


(Witam200) #1

W Windows Vista właścicielem (Owner) wszystkich plików systemowych jest konto o nazwie TrustedInstaller.. a chce zmienić nazwę plikom oraz podmienić pliki w katalogu systemowym z poziomu swojej aplikacji C#/C++ lecz wywala mi odmowa dostępu.. nie mam uprawnień..

Więc jak nadać te prawa?

Wiem, że jakoś poprzez System.IO.File.GetAccessControl(); i System.IO.File.SetAccessControl(); ale nie wiem za bardzo jak się to tego zabrać.. macie jakiś przykład kodu czy coś?


(somekind) #2

Wszyscy mają:

https://msdn2.microsoft.com/en-us/library/system.io.fileinfo.setaccesscontrol.aspx

To google to strasznie skomplikowane w obsłudze jest... :?


(Witam200) #3

Jak już wspomniałem..

Więc proszę o wytłumaczenie. Mam przykładowy kod:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;


namespace podmianaplikoworaznazw

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void button1_Click(object sender, EventArgs e)

        {

            System.IO.File.Copy("C:\\Windows\wp.PNG", "F:\\wp2.PNG");

        }

    }

}

Jak on teraz powinien wyglądać?


(Ryan) #4

Twój kod będzie działał tak jak działa jeśli zostanie wykonany z odpowiednimi uprawnieniami. Mówiąc prościej - musi zostać uruchomiony z uprawnieniami administratora. SetAccessControl nic tutaj nie da, bo do zmiany ACLs zasobu potrzeba najpierw uzyskać do niego dostęp na odpowiednim poziomie.

Z ciekawości: po co chcesz modyfikować pliki systemowe? Nazywają się "systemowe" nie bez powodu...


(Witam200) #5

Aha teraz wszystko jasne.. Dzięki.

Cierpliwości, już niedługo.. :wink:


(Ryan) #6

Cierpliwy czy nie - ciekaw jestem, bo z doświadczenia wynika, że nic dobrego z tego nie wyniknie. :wink: Te pliki naprawdę nie bez powodu są systemowe. Twoje zmiany mogą mieć wpływ na działanie programów do backupu i defraga. Mówiąc wprost: mogą zabić komputer po uruchomieniu tychże. Dzieląc się tym co zamierzasz zrobić możesz uchronić się przed konsekwencjami używania Twojej aplikacji.


(somekind) #7

Może vistamen chce po prostu zabić Vistę, żeby później narzekać jaka ona jest beznadziejna :lol:


(Ryan) #8

Przypuszczam, że to kolejny bezużyteczny program to "tweakowania" Windowsa. :roll: