Bonjour,
J'ai repris un code de vbfrance (le runas en vb) mais je rencontre un problème dans vb. Voila la zone du code ou j'obtient une erreur lors de la compilation:
Public Shared Function StartProcess(ByVal user As String, ByVal domain As String, ByVal password As String, ByVal commandline As String) As RunAsResult
Dim m_username As String = user
Dim m_domain As String = domain
Dim m_password As String = password
Dim m_sb As StringBuilder = New StringBuilder
m_sb.Append(commandline)
Dim m_pi As ProcessInformation
Dim m_sui As StartUpInfo = New StartUpInfo
m_sui.cb = Marshal.SizeOf(m_sui)
m_sui.lpTitle = Nothing
m_sui.dwFlags = CType(StartUpInfoFlags.UseCountChars, Integer)
m_sui.dwYCountChars = 50
Dim ret As Boolean = CreateProcessWithLogonW(m_username, m_domain, m_password, CType(LogonFlags.WithProfile, Integer), "", m_sb, CType(PriorityFlags.NormalPriority, UInt32) Or CType(CreationFlags.UnicodeEnvironment, UInt32), IntPtr.Zero, "c:\", m_sui, m_pi)
If Not ret Then
Return New RunAsResult(New System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error))
Else
Return New RunAsResult(m_pi.dwProcessId)
End If
End Function
Voila mon message d'erreur:
'RunAs!VastAbyss.RunAs::CreateProcessWithLogonW' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.
De ce que j'ai pu trouver cela venai de CType(PriorityFlags.NormalPriority, Int64) Or CType(CreationFlags.UnicodeEnvironment, Int64)
d'ou la modification dans mon code. (
http://forum.hardware.fr/...
Malheureusement cela n'a rien changer je reste bloquer sur le même message d'erreur même apres avoir modifier.
Quelqu'un aurai t il une idée ?
Merci a vous
Configuration: Windows XP
Firefox 2.0.0.11