Jaja, vreemde titel hè? Maar toch gaat het om een class library, geschreven in C# die ik in een VB.Net applicatie wil gebruiken.
Op zich lukt het wel, maar ik heb problemen met de constanten uit die C# Class Library.
The story: via gotdotnet.com heb ik een C# Class Lib gevonden om rechten op een file of dir te wijzigen. Het gaat om W32Security. En deze lib wil ik graag in een Vb.Net applicatie gebruiken (tja, ik had liever in C# want daar werkt het wel mee, maar het mot van me chef).
Dus ik een references gelegd naar die .dll en dit is de code (Console applicatie).
En dan gaat het nu om die
- SECURITY_INFORMATION.DACL_SECURITY_INFORMATION
- AccessType.GENERIC_ALL
en al die andere constanten die ik gebruik. Visual Studio onderstreep ze met blauw met de melding:
Oké, ik werk niet veel in VB, maar vergeet ik iets? Doe ik iets doms, of kan ik simpelweg geen C# lib importeren en gebruiken in een VB.Net applicatie (eerlijk gezegd toch wel)?
Uiteraard met Ctype en al die andere conversie zooi geprobeerd, maar no way. Wie kan mij even op weg helpen?
Op zich lukt het wel, maar ik heb problemen met de constanten uit die C# Class Library.
The story: via gotdotnet.com heb ik een C# Class Lib gevonden om rechten op een file of dir te wijzigen. Het gaat om W32Security. En deze lib wil ik graag in een Vb.Net applicatie gebruiken (tja, ik had liever in C# want daar werkt het wel mee, maar het mot van me chef).
Dus ik een references gelegd naar die .dll en dit is de code (Console applicatie).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Imports Microsoft.Win32.Security
Module TestSec
Sub Main()
SetPermission("C:\Boot.ini")
End Sub
Sub SetPermission(ByRef ShortCut As String)
Dim secDesc As SecurityDescriptor = SecurityDescriptor.GetFileSecurity
(ShortCut, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION)
Dim dacl As Dacl = secDesc.Dacl
dacl.AddAce(New AceAccessAllowed(New Sid("Administrator"),
AccessType.GENERIC_ALL))
secDesc.SetDacl(dacl)
secDesc.SetFileSecurity(ShortCut, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION)
End Sub
End Module |
En dan gaat het nu om die
- SECURITY_INFORMATION.DACL_SECURITY_INFORMATION
- AccessType.GENERIC_ALL
en al die andere constanten die ik gebruik. Visual Studio onderstreep ze met blauw met de melding:
code:
1
| Value of type 'Integer' cannot be converted to 'Microsoft.Win32.Security.AccessType' |
Oké, ik werk niet veel in VB, maar vergeet ik iets? Doe ik iets doms, of kan ik simpelweg geen C# lib importeren en gebruiken in een VB.Net applicatie (eerlijk gezegd toch wel)?
Uiteraard met Ctype en al die andere conversie zooi geprobeerd, maar no way. Wie kan mij even op weg helpen?