2017-02-24 66 views
0

感謝,因爲您已經到過這篇文章。 我的腳本有錯誤,日誌說:C#錯誤當Windows啓動時,拒絕訪問路徑'C: Windows system32 Com dmp''

訪問路徑'C:\ Windows \ system32 \ Com \ dmp'被拒絕。

我想設置我的應用程序Windows啓動,所以當計算機客戶端啓動,我的軟件會自動運行。所以我把這個腳本放在我的Main Load上。

private void Main_Load(object sender, EventArgs e) 
    { 
     //Menjadikan software ke dalam Startup Windows, sehingga dapat berjalan ketika pc pertama kali dinyalakan 
     RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
     reg.SetValue("PR Reminder", Application.ExecutablePath.ToString()); 
     listMapel(); 
     bool notif = Properties.Settings.Default.Notification; 
     if (notif == true) 
     { 
      checkExpired(); //Mengecek tanggal penyerahan dan pemberian 
     } 

結果是工作。但是我得到這樣的錯誤。

Access to the path 'C:\Windows\system32\Com\dmp' is denied.

探索更深入地後,該問題的中心是所述方法listMapel();他的任務是搜索本地目錄中以.db結尾的文件。

我不知道爲什麼這個方法有錯誤。當我嘗試刪除此方法時,我的應用程序在啓動時運行良好。 我認爲問題出在system.io上。

這是我的listMapel();方法腳本

public void listMapel() 
    { 
     comboListMapel.Items.Clear(); 
     string path = Directory.GetCurrentDirectory(); //Lokal direktori 
     string[] files = Directory.GetFiles(path, "*.db", SearchOption.AllDirectories); 
     foreach (string file in files) 
     { 
      nama = file.Split(".".ToCharArray()); //Hasil result yang ditampilkan Matapelajaran.db (Tapi dengan ini kita mengambil string sebelum .db 
      comboListMapel.Items.Add(Path.GetFileName(nama[0])); 
     } 
    } 
+0

您是否嘗試添加清單並允許應用程序以管理員身份運行? –

+0

當我設置此應用程序以管理員身份運行時,此應用程序不會出現在Windows啓動 –

+0

可執行文件位於何處?我敢打賭,它位於其他地方,但它被OS調用的方式包括該系統文件夾的工作目錄。您應該能夠以某種方式指定工作目錄(類似於如何使用快捷方式)到exe的實際目錄,而不是您無權訪問的系統目錄。這是假設您的exe位於該文件夾之外。 IOW'GetCurrentDirectory'是罪魁禍首。你可以設置當前目錄https://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory(v=vs.110).aspx – pinkfloydx33

回答

0

您應該作爲管理員始終運行。

希望這有助於link

而另一one

0

給這個訪問您的文件中像FileMode.Create,FileAccess.Write,FileShare.None 嘗試這將可能工作。

相關問題