[C#] กำหนดให้โปรแกรมของเรา Run As Administrator

ในบางครั้งเราต้องเขียนโปรแกรมเพื่อจัดการข้อมูลที่สำคัญ และต้องมีสิทธิในการแก้ไข เช่น Registry หรือ ไฟล์ของระบบของ Windows เป็นต้น ซึ่งสิทธิที่ใช้ในการจัดการนี้ คือ Administrator นั้นเอง ปกติแล้วเราจะคลิกขวาแล้วให้โปรแกรม Run As Administrator คราวๆนี้ ถ้าเราพัฒนาโปรแกรมขึ้นมา แล้วให้รันเป็น Administrator โดยมีวิธีการ ดังนี้

  • เปิด Project ของ Microsoft Visual Studio ขึ้นมา เพื่อคำการแก้ไข
  • คลิกขวาที่ Solution เลือก Add >> New Item จากนั้นเลือก Application Manifest File โดย ตัวอย่าง Application Manifest File ดังรูป
  • ได้ไฟล์ Manifest มาแล้ว ในกรณีนี้ผมได้ตั้งชื่อไฟล์ว่า app.manifest
  • ไฟล์ manifest คือ ไฟล์ XML ที่เก็บข้อมูลที่จำเป็นของ Application เช่น การร้องขอสิทธิ์ที่ใช้รันโปรแกรม(ส่วน requestedPrivileges) หรือ การกำหนดระบบปฏิบัติการที่ที่ใช้งานกับ Application เราได้(ส่วน compatibility)
  • แก้ไขการตั้งค่าจาก asInvoker มาเป็น requireAdministrator
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
  • มาเป็น requireAdministrator
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  • เมื่อแก้ไขเสร็จแล้ว ได้ผลลัพธ์ออกมา ดังรูป

หมายเหตุ

  • บางครั้งเวลารันโปรแกรม ตัว Microsoft Visual Studio อาจจะต้อง Restart Program เพื่อรันโปรแกรมในสิทธิ Admin ดังรูป

ผลลัพธ์ที่ได้

  • Application ที่เราได้ Bulid Solution ออกมามีรูปโล่ ซึ่งหมายถึง ต้องการสิทธิระดับ Administrator ในการทำงาน ดังรูป

แหล่งข้อมูล


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.