Page 1 sur 1
API Linux
Publié : sam. 07/mars/2009 15:27
par Progi1984
Listing des groups :
Code : Tout sélectionner
Structure group
gr_name.s ; group name
gr_passwd.s ; group password
gr_gid.l ; group id
gr_mem.l ; group members
EndStructure
*infosgrpmem = AllocateMemory(SizeOf(group))
infosgrp.group
Repeat
*infosgrpmem = getgrent_()
If *infosgrpmem
CopyMemory(*infosgrpmem, @infosgrp, SizeOf(group))
Debug infosgrp\gr_name.s ; group name
Debug infosgrp\gr_passwd.s ; group password
Debug infosgrp\gr_gid.l ; group id
Debug infosgrp\gr_mem.l ; group members
EndIf
Until *infosgrpmem = 0
Publié : sam. 07/mars/2009 15:28
par Progi1984
Informations sur un fichier
Code : Tout sélectionner
Structure stat
st_dev.l
_unused_1.l
_unused_2.l
st_ino.l
st_mode.l
st_nlink.l
st_uid.l
st_gid.l
st_rdev.l
_unused_3.l
_unused_4.l
st_size.l
st_blksize.l
st_blocks.l
st_atime.l
st_atime_nsec.l
st_mtime.l
st_mtime_nsec.l
st_ctime.l
st_ctime_nsec.l
__unused4.l
__unused5.l
EndStructure
Structure group
gr_name.s ; group name
gr_passwd.s ; group password
gr_gid.l ; group id
gr_mem.l ; group members
EndStructure
Structure passwd
pw_name.s ; user name
pw_passwd.s ; user password
pw_uid.l ; user id
pw_gid.l ; group id
pw_gecos.s ; real name
pw_dir.s ; home directory
pw_shell.s ; shell program
EndStructure
infos.stat
*infosgrpmem = AllocateMemory(SizeOf(group))
*infosusermem = AllocateMemory(SizeOf(passwd))
infosgrp.group
infosuser.passwd
Debug "INFOS"
Debug stat_(@"/media/DISK/Projets/Proj_Moebius/Inc_Compile_Step2.pb", @infos)
Debug "DEV > "+Str(infos\st_dev)
Debug "INO > "+Str(infos\st_ino) ; File serial number
Debug "MODE > "+Str(infos\st_mode) ; File mode
Debug "NLINK > "+Str(infos\st_nlink) ; Number of links
Debug "UID > "+Str(infos\st_uid) ; User ID of the owner of file
Debug "GID > "+Str(infos\st_gid) ; Group ID of the group of file
;Debug "RDEV > "+Str(infos\st_rdev)
Debug "SIZE > "+Str(infos\st_size) ; For regular files, the filesize in bytes
Debug "BLKSIZE > "+Str(infos\st_blksize) ; Size of a block of the file
Debug "BLOCKS > "+Str(infos\st_blocks)
Debug "ATIME > "+Str(infos\st_atime) ; Time of last access
Debug "ATIME Format >" +FormatDate("%dd/%mm/%yyyy %hh:%ii:%ss", infos\st_atime)
Debug "ATIME_nsec > "+Str(infos\st_atime_nsec) ; Time of last access
Debug "MTIME > "+Str(infos\st_mtime) ; Time of last Data modification
Debug "MTIME Format >" +FormatDate("%dd/%mm/%yyyy %hh:%ii:%ss", infos\st_mtime)
Debug "MTIME_nsec > "+Str(infos\st_mtime_nsec) ; Time of last Data modification
Debug "CTIME > "+Str(infos\st_ctime) ; Time of last file status change
Debug "CTIME Format >" +FormatDate("%dd/%mm/%yyyy %hh:%ii:%ss", infos\st_ctime)
Debug "CTIME_nsec > "+Str(infos\st_ctime_nsec) ; Time of last file status change
Debug "USER"
*infosusermem = getpwuid_(infos\st_uid)
Debug *infosusermem
If *infosusermem
CopyMemory(*infosusermem, @infosuser, SizeOf(passwd))
Debug "NAME >"+infosuser\pw_name.s ; user name
Debug "PASSWORD >"+infosuser\pw_passwd.s ; user password
Debug "UID >"+Str(infosuser\pw_uid.l) ; user id
Debug "GID >"+Str(infosuser\pw_gid.l) ; group id
Debug "REALNAME >"+infosuser\pw_gecos.s ; real name
Debug "HOMEDIR >"+infosuser\pw_dir.s ; home directory
Debug "SHELLPGM >"+infosuser\pw_shell.s ; shell program
EndIf
Debug "GROUP"
*infosgrpmem = getgrgid_(infos\st_gid)
Debug *infosgrpmem
If *infosgrpmem
CopyMemory(*infosgrpmem, @infosgrp, SizeOf(group))
Debug "GRP_NAME > "+infosgrp\gr_name.s ; group name
Debug "GRP_PASSWORD > "+infosgrp\gr_passwd.s ; group password
Debug "GRP_ID > "+Str(infosgrp\gr_gid) ; group id
Debug "GRP_MEMBERS > "+Str(infosgrp\gr_mem) ; group members
EndIf
Publié : sam. 07/mars/2009 16:28
par Progi1984
Listing des utilisateurs :
Code : Tout sélectionner
Structure passwd
pw_name.s ; user name
pw_passwd.s ; user password
pw_uid.l ; user id
pw_gid.l ; group id
pw_gecos.s ; real name
pw_dir.s ; home directory
pw_shell.s ; shell program
EndStructure
*infospassmem = AllocateMemory(SizeOf(passwd))
infospass.passwd
Repeat
*infospassmem = getpwent_()
If *infospassmem
CopyMemory(*infospassmem, @infospass, SizeOf(passwd))
Debug infospass\pw_name.s ; user name
Debug infospass\pw_passwd.s ; user password
Debug infospass\pw_uid.l ; user id
Debug infospass\pw_gid.l ; group id
Debug infospass\pw_gecos.s ; real name
Debug infospass\pw_dir.s ; home directory
Debug infospass\pw_shell.s ; shell program
EndIf
Until *infospassmem = 0
Publié : sam. 07/mars/2009 17:18
par Progi1984
Informations sytèmes :
Code : Tout sélectionner
Debug "SYSTEM : Nombre de processeurs" + Str(get_nprocs_())
Debug "SYSTEM : mémoire total : "+Str(getpagesize_()*get_phys_pages_())+" bytes"
Debug "SYSTEM : mémoire total : "+Str(getpagesize_()*get_phys_pages_()/1000)+" kbytes"
Debug "SYSTEM : mémoire total : "+Str(getpagesize_()*get_phys_pages_()/1000/1000)+" mbytes"
Debug "SYSTEM : mémoire total : "+Str(getpagesize_()*get_phys_pages_()/1000/1000/1000)+" gbytes"
Debug "SYSTEM : mémoire dispo : "+Str(getpagesize_()*get_avphys_pages_())+" bytes"
Debug "SYSTEM : mémoire dispo : "+Str(getpagesize_()*get_avphys_pages_()/1000)+" kbytes"
Debug "SYSTEM : mémoire dispo : "+Str(getpagesize_()*get_avphys_pages_()/1000/1000)+" mbytes"
Debug "SYSTEM : mémoire dispo : "+Str(getpagesize_()*get_avphys_pages_()/1000/1000/1000)+" gbytes"
Debug "TIME Functions"
time_(@curtime)
Debug curtime
loctime= localtime_(@curtime)
Debug loctime
Debug curtime
Debug PeekS(asctime_(@curtime))
Debug PeekS(asctime_(@loctime))
Debug "SYSTEM Informations"
hostname.s = Space(1024)
gethostname_(@Hostname, 1024)
Debug "FQDN > "+Hostname
Debug gethostid_()
#_UTSNAME_LENGTH = 65
Structure utsname
sysname.s{#_UTSNAME_LENGTH}
nodename.s{#_UTSNAME_LENGTH}
release.s{#_UTSNAME_LENGTH}
version.s{#_UTSNAME_LENGTH}
machine.s{#_UTSNAME_LENGTH}
domainname.s{#_UTSNAME_LENGTH}
EndStructure
name.utsname
Debug uname_(@name)
Debug name\sysname
Debug name\nodename
Debug name\release
Debug name\version
Debug name\machine
Debug name\domainname
Publié : dim. 08/mars/2009 10:22
par Le psychopathe
Je t'aime Progi1984

Si tu pouvais trouver le retour à la ligne et bouger les scroll en auto pour l'éditeur gafget sous linxu cela serait niquel

Publié : dim. 08/mars/2009 12:47
par Anonyme
Si tu pouvais trouver le retour à la ligne
#CR$ ?
Publié : dim. 08/mars/2009 16:08
par Le psychopathe
Cpl.Bator a écrit :Si tu pouvais trouver le retour à la ligne
#CR$ ?
automatique ?
Parce que avec l'api windows, pour un chat fait à la va vite, le client reçois le message dans un editorgadget et cela se met à la ligne tout seul sans que je ne fasse rien

Publié : dim. 08/mars/2009 18:48
par cha0s
Cpl.Bator a écrit :Si tu pouvais trouver le retour à la ligne
#CR$ ?
sa c'est pour mac sous nux c'est #LF$
Publié : dim. 08/mars/2009 22:22
par Progi1984
Pour activer le wrap dans l'editorgadget :
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(0, 8, 8, 306, 133)
gtk_text_view_set_wrap_mode_(GadgetID(0), #GTK_WRAP_WORD)
For a = 0 To 5
AddGadgetItem(0, a, Space(15*a)+"Ligne "+Str(a))
Next
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
http://library.gnome.org/devel/gtk/stab ... -wrap-mode
http://library.gnome.org/devel/gtk/stab ... tkWrapMode
Par contre, peux tu expliquer un peu plus : " bouger les scroll en auto " ?
Publié : dim. 08/mars/2009 22:56
par Le psychopathe
Progi1984 a écrit :Pour activer le wrap dans l'editorgadget :
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(0, 8, 8, 306, 133)
gtk_text_view_set_wrap_mode_(GadgetID(0), #GTK_WRAP_WORD)
For a = 0 To 5
AddGadgetItem(0, a, Space(15*a)+"Ligne "+Str(a))
Next
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
http://library.gnome.org/devel/gtk/stab ... -wrap-mode
http://library.gnome.org/devel/gtk/stab ... tkWrapMode
Par contre, peux tu expliquer un peu plus : " bouger les scroll en auto " ?
En gros je recherche ça :
http://www.purebasic.fr/french/viewtopic.php?t=9083

Publié : dim. 08/mars/2009 23:55
par Progi1984
Le code pour l'editor gadget te convient il ?
Par contre, pour une listicon, un simple setgadgetstate fonctionne !
Publié : lun. 09/mars/2009 7:32
par Le psychopathe
Progi1984 a écrit :
Le code pour l'editor gadget te convient il ?
Par contre, pour une listicon, un simple setgadgetstate fonctionne !
Je te dis ça dès que je peux tester

Sinon non pour la listicon, selectionner suffit pas, car cela ne descent pas ou monte pas le scroll ba sur l'élément sélectionné xD
Publié : lun. 09/mars/2009 10:19
par Progi1984
Le psychopathe a écrit :Je te dis ça dès que je peux tester

Sinon non pour la listicon, selectionner suffit pas, car cela ne descent pas ou monte pas le scroll ba sur l'élément sélectionné xD
Peux tu me filer un code pour cette histoire de scrollbar qui amrcerait sous Windows ?
Publié : lun. 16/mars/2009 22:48
par Le psychopathe
Progi1984 a écrit :Le psychopathe a écrit :Je te dis ça dès que je peux tester

Sinon non pour la listicon, selectionner suffit pas, car cela ne descent pas ou monte pas le scroll ba sur l'élément sélectionné xD
Peux tu me filer un code pour cette histoire de scrollbar qui amrcerait sous Windows ?
Voilà c'est ma procedure de recherche

Un annuaire sur informatique dans la caserne
Code : Tout sélectionner
Procedure recherche2()
For ListiconElement = 0 To CountGadgetItems(#ListIcon_0)-1
fonction$ = GetGadgetItemText(#ListIcon_0, ListiconElement , 0)
grade$ = GetGadgetItemText(#ListIcon_0, ListiconElement , 1)
nom$ = GetGadgetItemText(#ListIcon_0, ListiconElement , 2)
numeroPoste$ = GetGadgetItemText(#ListIcon_0, ListiconElement , 3)
telperso$ = GetGadgetItemText(#ListIcon_0, ListiconElement , 4)
chaine1$ = StringField(GetGadgetItemText(#Listview_recherche, GetGadgetState(#Listview_recherche)), 1, ":")
chaine2$ = StringField(GetGadgetItemText(#Listview_recherche, GetGadgetState(#Listview_recherche)), 2, ":")
chaine3$ = StringField(GetGadgetItemText(#Listview_recherche, GetGadgetState(#Listview_recherche)), 3, ":")
chaine4$ = StringField(GetGadgetItemText(#Listview_recherche, GetGadgetState(#Listview_recherche)), 4, ":")
chaine5$ = StringField(GetGadgetItemText(#Listview_recherche, GetGadgetState(#Listview_recherche)), 5, ":")
If fonction$ = chaine1$
If grade$ = chaine2$
If nom$ = chaine3$
If numeroPoste$ = chaine4$
If telperso$ = chaine5$
SendMessage_(ListIconID, #LVM_ENSUREVISIBLE, ListiconElement, #Null)
SetGadgetState(#ListIcon_0, ListiconElement)
SetActiveGadget(#ListIcon_0)
EndIf
EndIf
EndIf
EndIf
EndIf
Next ListiconElement
EndProcedure
J'espère que le code est assez claire mais bon j'explique vite fais :
Donc on fait toutes la listicon, colonne par colonne pour trouver exactement ce que l'on veut. Ensuite l'api windows va bouger les scroll bar en automatique pour que l'on puisse voir l'élément et on va activer la selection pour vraiment le voir

++
Je cherche à faire la même chose sous linux, vue que la Gendarmerie migre tous les PC sous linux...