Saludos
En estos momentos tengo un pequeño problema en mi ciber con un juego
(MapleStory).
Los clientes de mi ciber solo tienen acceso a una Sesion limitada.
Los juegos que no se ejecutan apropiadamente en una sesion limitada hago que
se ejecute con runas. Esto parecia la mejor soluccion, pero ahora ya no es
posible iniciar "MapleStory" con runas. Este siempre me da un error "ERROR MESSAGE" el contenido de esta venta, son signos no parecieran caracteres. La
unica forma de iniciar "MapleStory" es con el menu contextual "Ejecutar
como..." luego introduzco la contraseña de la sesion administrador. Pero esto es
muy molesto, porque cada vez que un cliente quiere jugar Maple tengo que
introducirle la contraseña de la sesion administrador.
Antes de la ultima actualizacion de MapleStory funcionaba muy bien con
runas, pero ahora solo me envia un mensaje de error.
Los demas juegos que necesitan iniciar como administrador funcionan sin problema con runas.
(MapleStory).
Los clientes de mi ciber solo tienen acceso a una Sesion limitada.
Los juegos que no se ejecutan apropiadamente en una sesion limitada hago que
se ejecute con runas. Esto parecia la mejor soluccion, pero ahora ya no es
posible iniciar "MapleStory" con runas. Este siempre me da un error "ERROR MESSAGE" el contenido de esta venta, son signos no parecieran caracteres. La
unica forma de iniciar "MapleStory" es con el menu contextual "Ejecutar
como..." luego introduzco la contraseña de la sesion administrador. Pero esto es
muy molesto, porque cada vez que un cliente quiere jugar Maple tengo que
introducirle la contraseña de la sesion administrador.
Antes de la ultima actualizacion de MapleStory funcionaba muy bien con
runas, pero ahora solo me envia un mensaje de error.
Los demas juegos que necesitan iniciar como administrador funcionan sin problema con runas.
Ahora cree mi aplicación para ejecutar maple como administrador, guiandome del siguiente ejemplo: http://www.uyssoft.com/Articulo.aspx?sm=7&ID=11
Pero me devuelve el mismo error: "ERROR MESSAGE"
Estoy desesperado al no encontrar una solucción.
La unica solucción que veo es la de instalar deep frezzer, pero tengo que comprar este software, y es otro gasto para mi ciber.
No existe alguna forma de crear mi propia aplicación con las mismas funcionalidad de Deep Frezzer?
O alguna forma de configurar Windows para congelar una partición en especifica.
Mi programa quedo asi:
Option Explicit
' ///
' /// Ejecutar una aplicación con permisos de otro usuario ("Run As")
' /// Lluís Franco i Montanyés (MVP-MCP-VB) 07/06/2004
' /// Ejemplo: fRunAsEx "NOTEPAD.EXE", "<usuario>@<dominio>", "<password>"
' ///
' /// Ejecutar una aplicación con permisos de otro usuario ("Run As")
' /// Lluís Franco i Montanyés (MVP-MCP-VB) 07/06/2004
' /// Ejemplo: fRunAsEx "NOTEPAD.EXE", "<usuario>@<dominio>", "<password>"
' ///
Private Const LOGON_WITH_PROFILE = &H1&
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Const LANG_NEUTRAL = &H0
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Const LANG_NEUTRAL = &H0
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Type STARTUPINFO
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Byte
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Byte
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Declare Function CreateProcessWithLogon Lib _
"Advapi32" Alias "CreateProcessWithLogonW" _
(ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal _
lpPassword As Long, ByVal dwLogonFlags As Long, ByVal _
lpApplicationName As Long, ByVal lpCommandLine As Long, _
ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, _
ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, _
lpProcessInfo As PROCESS_INFORMATION) As Long
"Advapi32" Alias "CreateProcessWithLogonW" _
(ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal _
lpPassword As Long, ByVal dwLogonFlags As Long, ByVal _
lpApplicationName As Long, ByVal lpCommandLine As Long, _
ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, _
ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, _
lpProcessInfo As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
(ByVal hObject As Long) As Long
Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" _
(ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, _
Arguments As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
(ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, _
Arguments As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Public sError As String
Public Sub Main()
Dim sParams() As String, sParam, i As Long, fReturn As Long
Dim sApp As String, sUser As String, sPwd As String
'Verificación de argumentos correctos
sApp = "C:\Archivos de programa\Wizet\MapleStory\maplestory.exe"
sUser = "Administrador"
sPwd = "pcromamic"
fReturn = fRunAsEx(sApp, sUser, sPwd)
If fReturn = 0 Then MsgBox sError, vbExclamation
End Sub
Dim sParams() As String, sParam, i As Long, fReturn As Long
Dim sApp As String, sUser As String, sPwd As String
'Verificación de argumentos correctos
sApp = "C:\Archivos de programa\Wizet\MapleStory\maplestory.exe"
sUser = "Administrador"
sPwd = "pcromamic"
fReturn = fRunAsEx(sApp, sUser, sPwd)
If fReturn = 0 Then MsgBox sError, vbExclamation
End Sub
Public Function fRunAsEx(sFileName As String, sUserName As String, sUserPwd As String) As Long
'Declaració vars
Dim lpBuffer As String * 200
Dim fReturn As Long
Dim lpUsername As String, lpDomain As String
Dim lpPassword As String, lpApplicationName As String
Dim lpCommandLine As String, lpCurrentDirectory As String
Dim StartInfo As STARTUPINFO, ProcessInfo As PROCESS_INFORMATION
lpApplicationName = sFileName
lpUsername = sUserName
lpPassword = sUserPwd
lpCommandLine = vbNullString
lpCurrentDirectory = vbNullString
StartInfo.cb = LenB(StartInfo)
StartInfo.dwFlags = 0&
fReturn = CreateProcessWithLogon(StrPtr(lpUsername), StrPtr(lpDomain), _
StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), _
StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE _
Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), _
StartInfo, ProcessInfo)
If fReturn = 0 Then
If GetLastError = 0 Then
sError = "La operación no se ha podido completar con éxito."
Else
FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, _
GetLastError, LANG_NEUTRAL, lpBuffer, 200, ByVal 0&
sError = lpBuffer
End If
End If
fRunAsEx = fReturn
CloseHandle ProcessInfo.hThread
CloseHandle ProcessInfo.hProcess
End Function
'Declaració vars
Dim lpBuffer As String * 200
Dim fReturn As Long
Dim lpUsername As String, lpDomain As String
Dim lpPassword As String, lpApplicationName As String
Dim lpCommandLine As String, lpCurrentDirectory As String
Dim StartInfo As STARTUPINFO, ProcessInfo As PROCESS_INFORMATION
lpApplicationName = sFileName
lpUsername = sUserName
lpPassword = sUserPwd
lpCommandLine = vbNullString
lpCurrentDirectory = vbNullString
StartInfo.cb = LenB(StartInfo)
StartInfo.dwFlags = 0&
fReturn = CreateProcessWithLogon(StrPtr(lpUsername), StrPtr(lpDomain), _
StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), _
StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE _
Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), _
StartInfo, ProcessInfo)
If fReturn = 0 Then
If GetLastError = 0 Then
sError = "La operación no se ha podido completar con éxito."
Else
FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, _
GetLastError, LANG_NEUTRAL, lpBuffer, 200, ByVal 0&
sError = lpBuffer
End If
End If
fRunAsEx = fReturn
CloseHandle ProcessInfo.hThread
CloseHandle ProcessInfo.hProcess
End Function
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com