vuott 11-05-2021, 16:30
Hola mis hermanos del Mediterraneo,
os dejo un simple código que, usando las funciones externas de la libreria libgio-2.0, cuando se pasa el ratón sobre los íconos de archivo en el Escritorio, devuelve información sobre estos archivos.
Hace falta activar el Componente gb.desktop .
(No se si en la ruta de la Constante "PERCORSO" la palabra "Escritorio" está bien)

Código:
Public Struct IconaFileDesktop
  nome As String
  x As Short
  y As Short
  rt As Rect
End Struct
Private icone As New IconaFileDesktop[]
Private PERCORSO As String = User.home &/ "Escritorio"
Private T As Timer


Public Sub Form_Open()
 
  Dim nomefile, s As String
  Dim ifd As IconaFileDesktop
 
' Carica tutti i file corrispondenti alle icone presenti sulla Scrivania:
  For Each nomefile In Dir(PERCORSO, "*", gb.File)
' Usa con "Extern" alcune funzioni esterne della libreria "libgio-2.0":
    s = EstraeInfo(PERCORSO &/ nomefile)
    If IsNull(s) Then Continue
' Carica nella "Struttura" i dati utili del file individuato dalla funzione "Dir()":
    With ifd = New IconaFileDesktop
      .nome = nomefile
      .x = Val(Scan(s, "*,*")[0])
      .y = Val(Scan(s, "*,*")[1])
' Stabilisce un'area quadrata standard di 48 pixel per ciascuna icona di file individuato:
      .rt = New Rect(.x, .y, 48, 48)
    End With
    icone.Push(ifd)
  Next
 
  T = New Timer As "Tmr"
  T.Delay = 50
  T.Start

End

Public Sub Tmr_Timer()
 
  Dim c As Short
 
  TextArea1.Clear
 
  For c = 0 To icone.Max
' Se le coordinate x,y in pixel correnti in cui si trova il puntatore del mouse rientrano in un'area quadrata caricata, va a vedere a quale icona e file appartiene:
    If icone[c].rt.Contains(Mouse.ScreenX, Mouse.ScreenY) Then
' Mostra alcune caratteristiche del file al quale corrisponde l'icona sorvolata dal puntatore del mouse:
      TextArea1.Text = "== Características del archivo ==\n" &
                       "\nRuta:          " & Stat(PERCORSO &/ icone[c].nome).Path &
                       "\nTamaño:          " & Stat(PERCORSO &/ icone[c].nome).Size & " Byte" &
                       "\nÚltimo acceso:          " & Stat(PERCORSO &/ icone[c].nome).LastAccess &
                       "\nÚltima modificación: " & Stat(PERCORSO &/ icone[c].nome).LastModified &
                       "\nPermisos:          " & Stat(PERCORSO &/ icone[c].nome).Auth &
                       "\nUsuario:          " & Stat(PERCORSO &/ icone[c].nome).User &
                       "\nGrupo:          " & Stat(PERCORSO &/ icone[c].nome).Group &
                       "\nMimetype icono:  " & DesktopMime.FromFile(Stat(PERCORSO &/ icone[c].nome).Path).Type
    Endif
  Next
 
End


Library "libgio-2.0"

' GFile * g_file_new_for_commandline_arg (const char *arg)
' Creates a GFile with the given argument from the command line.
Private Extern g_file_new_for_commandline_arg(arg As String) As Pointer

' GFileInfo * g_file_query_info (GFile *file, const char *attributes, GFileQueryInfoFlags flags, GCancellable *cancellable, GError **error )
' Gets the requested information about specified file.
Private Extern g_file_query_info(gfile As Pointer, attributes As String, flags As Integer, cancellable As Pointer, gerror As Pointer) As Pointer

' char ** g_file_info_list_attributes (GFileInfo *info, const char *name_space)
' Lists the file info structure's attributes.
Private Extern g_file_info_list_attributes(info As Pointer, name_space As String) As Pointer

' char * g_file_info_get_attribute_as_string (GFileInfo *info, const char *attribute)
' Gets the value of a attribute, formatted as a string.
Private Extern g_file_info_get_attribute_as_string(info As Pointer, attribute As String) As Pointer

' void g_object_unref (gpointer object)
' Decreases the reference count of object.
Private Extern g_object_unref(gobject As Pointer)


Private Function EstraeInfo(percfile As String) As String
 
  Dim fl, info As Pointer
 
  fl = g_file_new_for_commandline_arg(percfile)
  If fl == 0 Then Error.Raise("Errore !")
    
  info = g_file_query_info(fl, "*", 0, Null, Null)
  If info == 0 Then Error.Raise("Errore !")
    
  percfile = EstraeAttributi(info)
    
  g_object_unref(info)
  g_object_unref(fl)
 
  Return percfile

End


Private Function EstraeAttributi(inf As Pointer) As String
 
  Dim attr, p As Pointer
  Dim i As Integer = -1
  Dim s As String
 
  attr = g_file_info_list_attributes(inf, Null)

  Repeat
    Inc i
    s = String@(Pointer@(attr + (i * SizeOf(gb.Pointer))))
    p = g_file_info_get_attribute_as_string(inf, s)
  Until s == Trim("metadata::nemo-icon-position")

  Return String@(p)
 
End
gambafeliz 11-05-2021, 13:59
Hola

Alguien controla la manera de hacer un formulario y su contenido elástico? ¿como se hace?

Gracias
gambafeliz 11-05-2021, 10:21
Hola

Intento enviar un correo desde Gambas a través de Gmail pero aunque me dice que funciona justo en Send() me dice algo como que no tengo permisos y es lo que me manda Gmail a mi correo, que una aplicación de tercero ha sido bloqueada por intentar usar el usuario y contraseña para enviar a través de Gmail.

Alguien me dice como puedo corregirlo?

Gracias.

Este es mi código: Uso gb.Net.Smtp

Código:
Dim SmtpClient1 As New SmtpClient
   SmtpClient1.Host = "smtp.googlemail.com"
   SmtpClient1.User = "user"
   SmtpClient1.Password = "password"
  
   SmtpClient1.Encrypt = Net.SSL
   SmtpClient1.Port = 465
  
   SmtpClient1.From = "user@gmail.com"
   SmtpClient1.to.Add("user@gmail.com")
  
   SmtpClient1.Subject = "Pruebas"
   SmtpClient1.Add("Hola mundo")
  
   SmtpClient1.Send()
Páginas (557):    1 435 436 437 438 439 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 286
Último miembro: Emilio Uribe
Temas del foro: 1,720
Mensajes del foro: 8,935
Últimos temas
Archivos .ods
Foro: General
Último mensaje por: tincho, 01-07-2025, 18:54
Respuestas: 8 - Vistas: 273
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: tincho, 01-07-2025, 18:48
Respuestas: 6 - Vistas: 332
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: tincho, 01-07-2025, 17:47
Respuestas: 41 - Vistas: 32,594
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: guizans, 22-06-2025, 19:55
Respuestas: 3 - Vistas: 310
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.