Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - neo_from_cs_matrix

#2
gracias, no sabia eso pero se me hace que eso es demasiado de diseño grafico, no me interesa tanto en realidad, en cambio quisiera saber si alguien sabe como cambiar el color de la barra de titulo o mover los botones de cerrado y minimizado, o mover el titulo horizontalmente. cosas por el estilo, he mirado pero tal parece que hay que modificar en las entrañas del sistema para poder lograrlo. por eso pregunto si alguno lo hizo ya por casualidad?

http://www.codeguru.com/csharp/csharp/cs_misc/userinterface/article.php/c9327/Manipulating-the-System-Menu-Using-C.htm
http://social.msdn.microsoft.com/Forums/eu/isvvba/thread/76b38c30-a105-4990-b223-1bd4359dc2ed

#3
estoy haciendo un ui en csharp y estoi tratando de poner un barra mas personalizada de titulo. quisiera saber si puedo mover el grupo de botones del sistema, minimizar maximizar y cerrrar, si pueden ser movidos a otra parte del form. como puede hacerse , ya que lo que quiero es hacer una barra personalizada.
#4


estoy trtando de hacer andar una funcion de apagado de pc pero por alguna razon no funciona, lo quiero hacer en vb6 , lo depure con msg box porque no se todavia como depurar con vb (empece hace unos dias XD) y necesito hacer andar esta funcion. se trta de reiniciar la pc cuando apreto un button
mi depuracion me dijo que  el la ejecucion cae en el primer message que dice "UNO" y sale, pero por que si en c anda bien esto?

agradeceria que me solucionen el funcionamiento de esto chicos


Private Sub Command2_Click()

Dim MsgRet As Integer
MsgRet = MsgBox("Desea apagar su pc?", 36, MB_OK)

If MsgRet = 6 Then

    Dim OsInfo As OSVERSIONINFO
    OsInfo.dwOSVersionInfoSize = Len(OSVERSIONINFO)

    If OsInfo.dwPlatformId = VER_PLATFORM_WIN32_NT Then

        Dim hToken As Long
        Dim tkp As TOKEN_PRIVILEGES
       
        If Not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, VarPtr(hToken)) Then
           
            Call MsgBox("UNO", 36, MB_OK)
       
            End
        End If
       
        'Call MsgBox("DOS", 36, MB_OK)
       
       
        Dim tmpLuid As LUID
        Call LookupPrivilegeValue(0, SE_SHUTDOWN_NAME, tmpLuid)
     
        tkp.Privileges(0).vLuid = tmpLuid
        tkp.PrivilegeCount = 1
        tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
       
        Call AdjustTokenPrivileges(hToken, 0, tkp, 0, ByVal 0&, ByVal 0&)

        If Not GetLastError() = ERROR_SUCCESS Then
            End
        End If
       
        'Call MsgBox("TRES", 36, MB_OK)
       
        If ExitWindowsEx(EWX_POWEROFF Or EWX_FORCE, 0) = 0 Then
        End If
    End If
    End
End If

End Sub


#5
lo dice, de hecho en c lo tengo asi al code pasando 0
pero a lo sumo se debe poder hacer como dijo raul338,
cambiar la declaracion y asi si pasar 0
#6
si eso es lo que queria hacer en primer lugar
#7
no me estaba refiriendo a un post arriba, de otro usuario

Citar
Completa la estructura con ceros/nulls y pasasela a la API...
#8

Citar
las ultimas 2 lineas de la declaración, pásala a
Código
ByVal PreviousState As Long, _
ByVal ReturnLength As Long) As Long

0 = &H0  (la diferencia es que en la izquierda es la notación decimal y la derecha es hexadecimal)
grax


Private Type LUID
    UsedPart As Long
    IgnoredForNowHigh32BitPart As Long
End Type

Private Type LUID_AND_ATTRIBUTES
    vLuid As LUID
    Attributes As Long
End Type

Private Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    Privileges(1) As LUID_AND_ATTRIBUTES
    Attributes As Long
End Type


los longs los pongo a cero pero los otros campos como los pongo a cero :/

#9

declarado de esta forma

Private Declare Function AdjustTokenPrivileges Lib "advapi32" _
(ByVal TokenHandle As Long, _
ByVal DisableAllPrivileges As Long, _
NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, _
PreviousState As TOKEN_PRIVILEGES, _
ReturnLength As Long) As Long


el tema es que yo tengo el code en c pero lo estoy convirtiendo a vb,
la linea de c dice


AdjustTokenPrivileges(hToken, 0, tkp, 0, (TOKEN_PRIVILEGES) 0, 0)


entonces yo lo que preguntaba era como castiar el "previousstate" de forma
qe me permita pasarle 0 (null).

Call AdjustTokenPrivileges(hToken, 0, tkp, 0, 0, 0)


pregunto...
deberia hacerlo asi ?

Call AdjustTokenPrivileges(hToken, 0, tkp, 0, &H0&, 0)


les agradezco que me digan como hago, y el tema del casteo en el parametro me vendria bien saberlo porque ando con visual basic estos dias XD


#10

en c esto es

AdjustTokenPrivileges(hToken, 0, tkp, 0, (TOKEN_PRIVILEGES) 0, 0)

necesito en vb como hacerlo, osea esta linea es el problema con el parametro 5
Call AdjustTokenPrivileges(hToken, 0, tkp, 0, 0, 0)

:/