elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7
31  Programación / Programación Visual Basic / Re: Sobre Registro en: 10 Marzo 2006, 22:07 pm
Depende de cómo trates el tiempo. Una forma sería crear un Timer que aumente el valor de una variable cada un segundo, así podés guardar los datos como REG_DWORD.

Por ejemplo, cuando se inicia el programa lee la clave del registro para saber cuál fue el último valor del contador.

Código:
Function ReadUpTime() As Long
      Dim r&, hKey&
      Dim lLastTime&

  r = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\MyApp", 0&, vbNullString, 0&, KEY_ALL_ACCESS, 0&, hKey, REG_OPENED_EXISTING_KEY)
 
  If r = ERROR_SUCCESS Then
    r = RegQueryValueExInt(hKey, "LastTime", 0&, REG_DWORD, lLastTime, 4)
   
    ReadUpTime = lLastTime
   
    r = RegCloseKey(hKey)
  End If
End Function

Y para guardar el último valor del contador, sería casi lo mismo:

Código:
Function WriteUpTime(LastUptime As Long) As Boolean
      Dim r&, hKey&
      Dim lLastTime&

  r = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\MyApp", 0&, vbNullString, 0&, KEY_ALL_ACCESS, 0&, hKey, REG_OPENED_EXISTING_KEY)
 
  If r = ERROR_SUCCESS Then
    r = RegSetValueExInt(hKey, "LastTime", 0&, REG_DWORD, LastUptime, 4)
   
    WriteUpTime = (r = ERROR_SUCCESS)
   
    r = RegCloseKey(hKey)
  End If
End Function

Usá una variable global por ejemplo, y estableces el valor al inicio del formulario:

Código:
Private lUptime As Long

Private Sub Form_Load()
  lUptime = ReadUpTime
End Sub

Y cuando se descarga el formulario guardas el valor actual

Código:
Private Sub Form_Unload(Cancel As Integer)
  Call WriteUpTime(lUptime)
End Sub

Luego como te decía, el Timer aumentando el valor de la variable cada segundo:

Código:
Private Sub tmrUptime_Timer()
  lUptime = lUptime + 1
  lblUptime = "Tiempo desde el inicio de la aplicación: " & lUptime & " seg"
End Sub

Podrías usar las funciones de fecha y hora pero no podés saber si la fecha y hora del sistema están bien, de esta forma es relativo al programa.
32  Programación / Programación Visual Basic / Re: ayuda con menu en: 10 Marzo 2006, 20:52 pm
Código:
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Const GWL_STYLE = (-16)

Const WS_CAPTION = &HC00000
Const WS_OVERLAPPED = &H0&
Const WS_SYSMENU = &H80000
Const WS_THICKFRAME = &H40000
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)

Const SWP_NOMOVE = &H2
Const SWP_FRAMECHANGED = &H20
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4

Private Sub ShowBorder(Optional bShow As Boolean = True)
  If bShow Then
    Call SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) Or WS_OVERLAPPEDWINDOW)
  Else
    Call SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not WS_OVERLAPPEDWINDOW)
  End If
 
  Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE)
End Sub

33  Programación / Programación Visual Basic / Re: ayuda con menu en: 10 Marzo 2006, 20:12 pm
Código:
    Dim csControl

  For Each csControl In Controls
    If TypeOf csControl Is Menu Then
      csControl.Visible = Not csControl.Visible
    End If
  Next
34  Programación / Programación Visual Basic / Re: reconocer voz en pocket pc en: 10 Marzo 2006, 15:52 pm
Microsoft .NET Speech SDK

Descargas de Microsoft Speech SDK 5.1
http://www.microsoft.com/speech/download/sdk51/


Supported Operating Systems:
  • Microsoft Windows XP Professional or Home Edition; all language versions.
  • Microsoft Windows 2000 all versions; all language versions.
  • Microsoft Windows Millennium Edition; all language versions.
  • Microsoft Windows 98 all versions; all language versions.
  • Microsoft Windows NT® 4.0 Workstation or Server, Service Pack 6a, English, Japanese, or Simplified Chinese versions.
  • Windows 95 or earlier is not supported.
35  Programación / Programación Visual Basic / Re: Como partir un archivo en: 10 Marzo 2006, 00:48 am
Proyecto K-Cutter, tiene sus años que lo hice pero funciona bien.

Screenshot


Descargar Programa compilado
Descargar Código

Características:
  • Corta archivos de cualquier tamaño
  • Se puede cambiar el nombre y extensión de los archivos cortados
  • Reconoce todas las partes del archivo cortado automáticamente aunque los nombres hayan cambiado
  • Alta velocidad
  • Se pueden agregar comentarios a los archivos cortados
  • No es necesario seleccionar un archivo en particular para reconstruirlo, puede ser cualquiera de las partes

Espero que te sirva.

Saludos.
36  Programación / Programación Visual Basic / Re: Meter llaves del registro dentro de un .txt en: 9 Marzo 2006, 20:21 pm
RegSaveKey
37  Programación / Programación Visual Basic / Re: Utilizacion de DBs en Visual Basic en: 9 Marzo 2006, 20:12 pm
Instala Access Data Objects (DAO) 2.0

Descargalo desde el siguiente link:

Descargar Access Data Object 2.8

Al instalarlo ya podrás usar bases de datos de access 2000 y demás.
38  Programación / Programación Visual Basic / Re: Como interactuar entre un .exe de vb y word!! en: 9 Marzo 2006, 20:04 pm
Objetos Word.Application y Word.Document
39  Programación / Programación Visual Basic / Re: Añadir servicio nuevo en: 9 Marzo 2006, 20:02 pm
En realidad yo diría que os queda mucho, se trata de un mensaje que se manda al servicio y este debe responder. Y si que hay bastante documentación al respecto.
A parte de toda la documentación de la msdn tal y como decía slasher que habeis pasado de él y ni la habeis mirado, teneis para .net:

http://www.elguille.info/NET/dotnet/serviciosWindows.htm
Un ejemplo completito para vb6:
http://www.freevbcode.com/ShowCode.Asp?ID=4317

Meted en buscar de freevbcode services nt i vereis si hay ejemplos o no...
Me suena uno que salían las claves de las que hablabais

En general para todo lo que són servicios está el ntsvc.ocx
En definitiva que no es qüestión de cambiar 4 claves y listo.



Amén
40  Programación / Programación Visual Basic / Re: Cambiar Icono de Aplicación en tiempo de ejecución en: 9 Marzo 2006, 19:35 pm
Bueno después de luchar un rato con este código pude hacer que cambie el ícono de cualquier aplicación. El problema estaba en que sólo cambiaba el icono de la página de códigos 3082 y del ícono con el nombre '1', pero no todas las aplicaciones usan ese ícono como el predeterminado, y por supuesto no todas tienen el mismo idioma.

Existen dos opciones, leer el ejecutable para determinar qué id de ícono usa como el predeterminado, o cambiar todos los iconos que es mucho más sencillo y menos código, yo opté por la 2ª porque ando con poco tiempo xD.

Lo que hace el siguiente código es buscar todos los recursos de íconos y en todos los idiomas y reemplazarlo por el que nosotros queramos, así nos aseguramos que el ícono que usa como predeterminado cambie.

Código:
Option Explicit

Type RES_ICON
  ResName As Integer
  ResLang As Integer
End Type

Public Declare Function BeginUpdateResource9x Lib "unicows.dll" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Public Declare Function UpdateResource9x Lib "unicows.dll" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Public Declare Function EndUpdateResource9x Lib "unicows.dll" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long

Public Declare Function BeginUpdateResourceNT Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Public Declare Function UpdateResourceNT Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Public Declare Function EndUpdateResourceNT Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long

Public Declare Function EnumResourceLanguages Lib "kernel32" Alias "EnumResourceLanguagesA" (ByVal hModule As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function EnumResourceNames Lib "kernel32" Alias "EnumResourceNamesA" (ByVal hModule As Long, ByVal lpType As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Private iResLangId    As Integer
Private lResName      As Long

Private lpIcons() As RES_ICON
Private lIcons    As Long

Function ChangeIcon(Filename As String, IconFilename As String) As Boolean
  On Error GoTo ErrRes
 
        Dim btIconData()  As Byte
        Dim lpResIcon()   As RES_ICON
        Dim hRes&, lCnt&
        Dim i%, r&
 
  lCnt = EnumIcons(Filename, lpResIcon)
 
  If IsWin9x Then
    hRes = BeginUpdateResource9x(Filename, False)
  Else
    hRes = BeginUpdateResourceNT(Filename, False)
  End If
 
  If hRes = 0 Then
    Debug.Print "No se pudo abrir el archivo"
   
    Exit Function
  End If

  btIconData = GetIconData(IconFilename)
 
  For i = 1 To lCnt
    If IsWin9x Then
      r = UpdateResource9x(hRes, RT_ICON, lpResIcon(i).ResName, lpResIcon(i).ResLang, btIconData(0), UBound(btIconData))
    Else
      r = UpdateResourceNT(hRes, RT_ICON, lpResIcon(i).ResName, lpResIcon(i).ResLang, btIconData(0), UBound(btIconData))
    End If
  Next
 
  ChangeIcon = True
 
ErrRes:
  If IsWin9x Then
    r = EndUpdateResource9x(hRes, False)
  Else
    r = EndUpdateResourceNT(hRes, False)
  End If
End Function

Function IsWin9x() As Boolean
      Dim lpVerInfo As OSVERSIONINFO
      Dim r&

  lpVerInfo.dwOSVersionInfoSize = Len(lpVerInfo)
 
  r = GetVersionEx(lpVerInfo)
  IsWin9x = (lpVerInfo.dwPlatformId = 1)
End Function

Function EnumIcons(Filename As String, outResIcon() As RES_ICON) As Long
  Call EnumResNames(Filename)
 
  outResIcon = lpIcons
  EnumIcons = lIcons
 
  lIcons = 0
  Erase lpIcons
End Function

Function EnumResNames(AppFilename As String) As Long
        Dim hModule&, r&

  hModule = LoadLibraryEx(ByVal AppFilename, 0, LOAD_LIBRARY_AS_DATAFILE)

  r = EnumResourceNames(hModule, RT_ICON, AddressOf EnumResNameProc, 0)

  Call FreeLibrary(hModule)
 
  EnumResNames = r
End Function

Function EnumResLangProc(ByVal hModule As Long, ByVal dwType As Long, ByVal dwName As Long, ByVal wIDLanguage As Integer, ByVal lParam As Long) As Long
      Dim r&
     
  iResLangId = wIDLanguage
 
  lIcons = lIcons + 1
 
  ReDim Preserve lpIcons(lIcons) As RES_ICON
 
  With lpIcons(lIcons)
    .ResLang = iResLangId
    .ResName = lResName
  End With
 
  EnumResLangProc = 1
 
End Function

Function EnumResNameProc(ByVal hModule As Long, ByVal dwType As Long, ByVal dwName As Long, ByVal lParam As Long) As Long
        Dim r&
       
  lResName = dwName
 
  If lResName >= 0 Then
    r = EnumResourceLanguages(hModule, RT_ICON, lResName, AddressOf EnumResLangProc, 0)
  End If
 
  EnumResNameProc = 1
End Function
Páginas: 1 2 3 [4] 5 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines