Forum | | | | Jac de Lad | Hm, je sais, Roland pouvoir maintenant Urlaub. mais peut-être sais es oui quand même quelqu'un:
Steckt un Contrôle derrière Grid et List (mittels Créer) ou bien ist cela ne Profaninterne l'affaire? si es un Contrôle ist: Gibt es une schnelle Funktion (je prends la fois à mittels sendmessage), avec qui je ermitteln peux, si un String vorkommt et si oui, wohin?
Jac |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.08.2006 ▲ |
| |
| | Michael Wodrich | Funktioniert Sélectionnez String pas??!
le son meinen Aufzeichnungen:
Arbeitet aussi avec Stringlisten, qui avec Créer(List,...) erzeugt wurden. Arbeitet aussi avec Stringgrids, qui avec Créer(Grid,...) erzeugt wurden.
belle Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 25.08.2006 ▲ |
| |
| | Frank Abbing |
Steckt un Contrôle derrière Grid et List (mittels Créer) ou bien ist cela ne Profaninterne l'affaire?
derrière Grid steckt cela SysListview32-Contrôle, ist plan un Listview.
je weiss, avec einem Hinweis sur mon Dll ist dir momentan pas gedient. mais qui beinhaltet une schnelle Suchfunktion pour alle Zeilen et Spalten. |
| | | | |
| | Jac de Lad | bof, Sélectionnez String nécessaire oui une Zeilennummer. il y a ne Message LVM_FindString, mais je viens avec qui Struktur pas bien sûr... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.08.2006 ▲ |
| |
| | | je crois, cela hilft dir plus: KompilierenMarqueSéparationDEF @LookupPrivilegeDisplayName(5) !ADVAPI32,LookupPrivilegeDisplayNameA
DEF @GetLastError(0) !kernel32,GetLastError Liefert letzten API Fehler.
DEF @ImageList_Create(5) !COMCTL32,ImageList_Create
DEF @ImageList_AddIcon(2) !COMCTL32,ImageList_AddIcon
DEF @ImageList_Destroy(1) !COMCTL32,ImageList_Destroy
DEF @LoadIcon(2) !USER32,LoadIconA
DEF @GetModuleHandle(1) !KERNEL32,GetModuleHandleA
DEF @CopyMemory(3) !kernel32,RtlMoveMemory
SetTrueColor 1
Declare Priv$[2,35],DispSize&,LangID&,DispName#,System$,PRIV1$,Fehler&,Hicon&,Imagelist&,ExecuteHandle&
Declare Iconname#,WINVER&,Anzahl&,Suchtext$
Declare LVC#,Zeile#,Priv_List_Text#
Struct LVCOLUMN=Mask&, FMT&, CX&, Text&, Textlänge&, Subitem&
Struct LVITEM=IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&
DIM Iconname#,262
LET WINVER&=3
Let Imagelist&=ImageList_Create(16,16,$0001,3,3) Imagelist erzeugen
Let ExecuteHandle&=@GetModuleHandle(0) Handle des laufenden Programms
String Iconname#,0=Weg Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Windows Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Eimer
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Editor
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=A
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Stein
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Baum
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Computer Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z1 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z2 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z3 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z4 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z6 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
String Iconname#,0=Z7 Icon-Name
Let Hicon&=loadicon(Executehandle&,Iconname#) Handle des Icons ok
ImageList_AddIcon(Imagelist&,HIcon&)
Dispose Iconname#
LET PRIV$[1,1]=SeBackupPrivilege
LET PRIV$[2,1]=Ist nötig, um Backup Operationen durchzuführen (z.B. in der Registry mittels RegSaveKey).
LET PRIV$[1,2]=SeRestorePrivilege
LET PRIV$[2,2]=Ist nötig, um Restore Operationen durchzuführen.
LET PRIV$[1,3]=SeTakeOwnershipPrivilege
LET PRIV$[2,3]=Wird benötigt, um die Zugehörigkeit eines Objektes ändern zu können.
LET PRIV$[1,4]=SeSystemProfilePrivilege
LET PRIV$[2,4]=Wird benötigt um alle Inforamationen des Systems auslesen zu können.
LET PRIV$[1,5]=SeCreateTokenPrivilege
LET PRIV$[2,5]=Ist nötig, um einen Primary Token zu erzeugen.
LET PRIV$[1,6]=SeAssignPrimaryTokenPrivilege
LET PRIV$[2,6]=Ist nötig, um einen Primary Token zuzuweisen.
LET PRIV$[1,7]=SeLockMemoryPrivilege
LET PRIV$[2,7]=Wird benötigt, um Physische Speicherseiten einfrieren zu Können.
LET PRIV$[1,8]=SeIncreaseQuotaPrivilege
LET PRIV$[2,8]=Wird benötigt, um die Quote eines Prozesses erhöhen zu können.
LET PRIV$[1,9]=SeMachineAccountPrivilege
LET PRIV$[2,9]=Ist nötig, um einen neuen Benutzer zu erzeugen.
LET PRIV$[1,10]=SeTcbPrivilege
LET PRIV$[2,10]=Wird benötigt, um das Locale System als bestandteil des Netzwerkrechtners anmelden zu können.
LET PRIV$[1,11]=SeSecurityPrivilege
LET PRIV$[2,11]=Ist nötig, um einige Sicherheitsfunktionen durchzuführen.
LET PRIV$[1,12]=SeLoadDriverPrivilege
LET PRIV$[2,12]=Ist nötig, um Treiber zu laden oder zu entladen.
LET PRIV$[1,13]=SeSystemtimePrivilege
LET PRIV$[2,13]=Ist nötig, um die Systemzeit zu setzen.
LET PRIV$[1,14]=SeProfileSingleProcessPrivilege
LET PRIV$[2,14]=Wird benötigt, um Informationen eines einzelnen Prozesses ermitteln zu können.
LET PRIV$[1,15]=SeIncreaseBasePriorityPrivilege
LET PRIV$[2,15]=Ist nötig, um die Priorität einer Anwendung zu erhöhen.
LET PRIV$[1,16]=SeCreatePagefilePrivilege
LET PRIV$[2,16]=Wird benötigt, um eine Paging-Datei erstellen zu können.
LET PRIV$[1,17]=SeCreatePermanentPrivilege
LET PRIV$[2,17]=Wird benötigt, um Permanente Objekte erstellen zu können.
LET PRIV$[1,18]=SeShutdownPrivilege
LET PRIV$[2,18]=Ist nötig, um den Rechner herunterfahren zu können.
LET PRIV$[1,19]=SeDebugPrivilege
LET PRIV$[2,19]=Ist nötig, um Debug Operationen an einem Prozess auszuführen.
LET PRIV$[1,20]=SeAuditPrivilege
LET PRIV$[2,20]=Wird benutzt, um Audit-Log einträge generieren zu können.
LET PRIV$[1,21]=SeSystemEnvironmentPrivilege
LET PRIV$[2,21]=Wird benutzt, um auf nicht flüchtigen Speicher des Systems zugreifen zu können.
LET PRIV$[1,22]=SeChangeNotifyPrivilege
LET PRIV$[2,22]=Ist nötig, um Änderungen an Dateien oder Ordnern festzustellen.
LET PRIV$[1,23]=SeRemoteShutdownPrivilege
LET PRIV$[2,23]=Ist nötig, um einen Rechner ferngesteuert herunterzufahren.
LET PRIV$[1,24]=SeUndockPrivilege
LET PRIV$[2,24]=Wird benötigt, um ein Laptop Undocken zu können.
LET PRIV$[1,25]=SeSyncAgentPrivilege
LET PRIV$[2,25]=Wird benötigt, um alle Leserechte eines Dateisystem zu erlauben, die sonst nur der Administartor besitzt.
LET PRIV$[1,26]=SeEnableDelegationPrivilege
LET PRIV$[2,26]=Wird benötigt, um Netzwerkrechner als Vertrauenswürdig zu markieren.
LET PRIV$[1,27]=SeManageVolumePrivilege
LET PRIV$[2,27]=Wird verliehen, um Dateien verwalten zu können.
LET PRIV$[1,28]=SeInteractiveLogonRight
LET PRIV$[2,28]=Wird benötigt, um sich mit der Tastatur einloggen zu können.
LET PRIV$[1,29]=SeDenyInteractiveLogonRight
LET PRIV$[2,29]=Verhindert das einloggen übrer die Tastatur.
LET PRIV$[1,30]=SeServiceLogonRight
LET PRIV$[2,30]=Kann sich als Service anmelden.
LET PRIV$[1,31]=SeDenyServiceLogonRight
LET PRIV$[2,31]=Verhindert das Anmelden als Service.
LET PRIV$[1,32]=SeBatchLogonRight
LET PRIV$[2,32]=Kann sich mithilfe einer Batchwarteschlange anmelden.
LET PRIV$[1,33]=SeDenyBatchLogonRight
LET PRIV$[2,33]=Verhindert das Anmelden mithilfe einer Batchwarteschlange.
LET PRIV$[1,34]=SeNetworkLogonRight
LET PRIV$[2,34]=Kann über das Netzwerk eine Verbindung mit dem Computer herstellen.
LET PRIV$[1,35]=SeDenyNetworkLogonRight
LET PRIV$[2,35]=Verhindert das Herstellen einer Verbindung mit dem Computer über das Netzwerk.
Proc Get_Priv_List_Text
Parameters LV_HANDLE&,Priv_List_Index&
Declare ERG$
Dim Zeile#,LVITEM
DIM Priv_List_Text#,256
CLEAR Zeile#
Zeile#.IMASK&=$1
Zeile#.ITEM&=Priv_List_Index&
Zeile#.ITEXT&=Priv_List_Text#
Zeile#.ITEXTMAX&=256
@sendmessage(LV_HANDLE&,$1005,Priv_List_Index&,Zeile#)
Let ERG$=@String$(Priv_List_Text#,0)
Dispose Zeile#
Dispose Priv_List_Text#
Return ERG$
Endproc
Proc Get_Priv_List_Check
Parameters LV_HANDLE&,Priv_List_Index&
Declare ERG&,ERG2&
Dim Zeile#,LVITEM
CLEAR Zeile#
Zeile#.IMASK&=$8
Zeile#.StateMask&=$F000
Zeile#.ITEM&=Priv_List_Index&
@sendmessage(LV_HANDLE&,$1005,Priv_List_Index&,Zeile#)
LET ERG&=Zeile#.State&
IF ERG&=$1000
Let ERG2&=0
Elseif ERG&=$2000
Let ERG2&=1
Else
Let ERG2&=2
Endif
Dispose Zeile#
Return ERG2&
Endproc
Proc Set_Priv_List_Check
Parameters LV_HANDLE&,Priv_List_Index&,Check_State%
Dim Zeile#,LVITEM
CLEAR Zeile#
Zeile#.IMASK&=$8
IF Check_State%=1
Zeile#.State&=$2000
else
Zeile#.State&=$1000
endif
Zeile#.StateMask&=$F000
Zeile#.IIMAGE&=2
Zeile#.ITEM&=Priv_List_Index&
@sendmessage(LV_HANDLE&,$102B,Priv_List_Index&,Zeile#)
Dispose Zeile#
Endproc
Proc Addzeile_To_PrivList
Parameters Lvhndl&,Index&,spalte&,Text$,Image&
Dim Zeile#,LVITEM
Clear Zeile#
IF Image&=0
Zeile#.IMASK&=$0001
Zeile#.IIMAGE&=0
else
Zeile#.IMASK&=$000B
Zeile#.IIMAGE&=IMAGE&
endif
Zeile#.ITEM&=Index&
Zeile#.ITEXT&=Addr(Text$)
Zeile#.ITEXTMAX&=Len(Text$)
Zeile#.ISUBITEM&=spalte&
Zeile#.StateMask&=0
Zeile#.State&=0
Sendmessage(Lvhndl&,$1007,0,Zeile#)
Sendmessage(Lvhndl&,$102E,Index&,Zeile#)
Dispose Zeile#
Endproc
Proc CreatePrivListView
Parameters Fenster_Handle&,x1&,y1&,x2&,y2&,Zeilenbreite1&,Zeilenbreite2&,Priv_Anzahl%,Headertext$,H_Color&,T_Color&
Declare Listview_Handle&,Spaltentext$,PROC_PRIV_ZÄHLER%,State_Imagelist&,ICO_STRING$
Dim LVC#,LVCOLUMN
Listview_Handle&=Control(SysListView32,PrivListview,$54018001+$4,x1&,y1&,x2&,y2&,Fenster_Handle&,$0100,%Hinstance,$200)
@sendmessage(Listview_Handle&,$1036,0,$431+6)
@sendmessage(Listview_Handle&,$1003,1,Imagelist&)
@sendmessage(Listview_Handle&,$1001,0,H_COLOR&)
@sendmessage(Listview_Handle&,$1000+38,0,H_COLOR&)
@sendmessage(Listview_Handle&,$1000+36,0,T_COLOR&)
LET State_Imagelist&=@SEndmessage(Listview_Handle&,$1000+2,$2,0)
LET ICO_STRING$=Z5
Let Hicon&=loadicon(Executehandle&,@ADDR(ICO_STRING$)) Handle des Icons ok
ImageList_AddIcon(State_Imagelist&,HIcon&)
LET Spaltentext$=Headertext$
LVC#.TEXT&=@ADDR(Spaltentext$)
LVC#.MASK&=$0001+$0002+$0004+$0008
LVC#.FMT&=0
LVC#.CX&=Zeilenbreite1&
LVC#.Subitem&=0
LVC#.Textlänge&=@LEN(Spaltentext$)
@sendmessage(Listview_Handle&,$1000+27,1,LVC#)
LET Spaltentext$=Bedeutung
LVC#.TEXT&=@ADDR(Spaltentext$)
LVC#.Textlänge&=@LEN(Spaltentext$)
LVC#.CX&=Zeilenbreite2&
@sendmessage(Listview_Handle&,$1000+27,2,LVC#)
LET PROC_PRIV_ZÄHLER%=Priv_Anzahl%
While PROC_PRIV_ZÄHLER%>0
LET PRIV1$=PRIV$[1,PROC_PRIV_ZÄHLER%]
LET DispSize&=1
DIM DispName#,DispSize&
CLEAR DispName#
CLEAR System$,LangID&
LET Fehler&=@LookupPrivilegeDisplayName(@ADDR(System$),@ADDR(PRIV1$),DispName#,@ADDR(DispSize&),@ADDR(LangID&))
Dispose DispName#
LET DispSize&=DispSize&+4
DIM DispName#,DispSize&
CLEAR DispName#
CLEAR System$,LangID&
LET Fehler&=@LookupPrivilegeDisplayName(@ADDR(System$),@ADDR(PRIV1$),DispName#,@ADDR(DispSize&),@ADDR(LangID&))
IF Fehler&=1
IF @INSTR(Privilege,PRIV$[1,PROC_PRIV_ZÄHLER%])<>0
Addzeile_To_PrivList Listview_Handle&,0,0,PRIV$[1,PROC_PRIV_ZÄHLER%],12
else
Addzeile_To_PrivList Listview_Handle&,0,0,PRIV$[1,PROC_PRIV_ZÄHLER%],13
endif
Let PRIV$[2,PROC_PRIV_ZÄHLER%]=@String$(DispName#,0)
Addzeile_To_PrivList Listview_Handle&,0,1,PRIV$[2,PROC_PRIV_ZÄHLER%],13
else
IF @INSTR(Privilege,PRIV$[1,PROC_PRIV_ZÄHLER%])<>0
IF WINVER&<4
Addzeile_To_PrivList Listview_Handle&,0,0,PRIV$[1,PROC_PRIV_ZÄHLER%],12
Addzeile_To_PrivList Listview_Handle&,0,1,PRIV$[2,PROC_PRIV_ZÄHLER%],12
Elseif WINVER&>=4
IF @String$(DispName#,0)<>
Let PRIV$[2,PROC_PRIV_ZÄHLER%]=@String$(DispName#,0)
Addzeile_To_PrivList Listview_Handle&,0,0,PRIV$[1,PROC_PRIV_ZÄHLER%],12
Addzeile_To_PrivList Listview_Handle&,0,1,PRIV$[2,PROC_PRIV_ZÄHLER%],12
endif
endif
else
Addzeile_To_PrivList Listview_Handle&,0,0,PRIV$[1,PROC_PRIV_ZÄHLER%],13
Addzeile_To_PrivList Listview_Handle&,0,1,PRIV$[2,PROC_PRIV_ZÄHLER%],12
endif
endif
Let PROC_PRIV_ZÄHLER%=PROC_PRIV_ZÄHLER%-1
Dispose DispName#
wend
Dispose LVC#
Return Listview_Handle&
Endproc
CLS
Declare LV1_Handle&,LV_FINDINFO#,Gefunden&
CreatePrivListView %HWND,10,50,450,300,180,270,35,Privileg / Accountrecht,@RGB(250,250,220),@RGB(0,0,255)
Let LV1_Handle&=@&(0)
Set_Priv_List_Check LV1_Handle&,3,1
Get_Priv_List_Check LV1_Handle&,3
PRINT &(0)
Get_Priv_List_Check LV1_Handle&,4
PRINT &(0)
Get_Priv_List_Text LV1_Handle&,3
Print @$(0)
text in Listview suchen
DIM LV_FINDINFO#,20
long LV_FINDINFO#,0=$2
Let Suchtext$=SeSystemProfilePrivilege
long LV_FINDINFO#,4=@ADDR(Suchtext$)
LET Gefunden&=@Sendmessage(LV1_Handle&,$100D,-1,LV_FINDINFO#) LVM_FINDITEM Message
Dispose LV_FINDINFO#
Markieren
Print Gefunden&
IF Gefunden&<>-1
Dim Zeile#,LVITEM
CLEAR Zeile#
@Setfocus(LV1_Handle&)
Zeile#.IMASK&=$8
Zeile#.ITEM&=Gefunden&
Zeile#.State&=$2
Zeile#.StateMask&=$2
@Sendmessage(LV1_Handle&,$102B,Gefunden&,Zeile#) Zeile markieren
Dispose Zeile#
endif
While 0=0
Waitinput
Get_Priv_List_Check LV1_Handle&,3
Drawtext 0,0,@STR$(&(0))+
Wend
|
| | | | |
| | Jörg Sellmeyer | Jacob Liebeck
bof, Sélectionnez String nécessaire oui une Zeilennummer. il y a ne Message LVM_FindString, mais je viens avec qui Struktur pas bien sûr...
Sélectionnez String nécessaire aucun Zeilennr mais es volonté seulement qui Zeilen trouvé, qui avec dem Suchstring commencer. Pour quelque chose comme ist Franks Dll top.
Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.08.2006 ▲ |
| |
| | Jac de Lad | @Andreas: Oje, jusqu'à Je l' Voir le texte source durchhabe ist Weihnachten...merci, je schaus mir à.
@Jörg: Jaja, qui DLL...je cherche une Funktion, qui mir GENAU den String ausgibt! bof, je exposition la fois, si mir Sélectionnez String weiterhilft... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.08.2006 ▲ |
| |
| | | | | | | |
| | Jac de Lad | qui Box ist chez mir vide... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.08.2006 ▲ |
| |
| | | Sorry, là hat cela insérer la fois wieder pas geklappt: KompilierenMarqueSéparationtext in Listview suchen
Dim Lv_findinfo#,20
Long Lv_findinfo#,0=$2
Let Suchtext$=SeSystemProfilePrivilege
Long Lv_findinfo#,4=@Addr(Suchtext$)
Let Gefunden&=@Sendmessage(Lv1_handle&,$100D,-1,Lv_findinfo#)LVM_FINDITEM Message
Dispose Lv_findinfo#
Markieren
Print Gefunden&
If Gefunden&<>-1
Dim Zeile#,Lvitem
Clear Zeile#
@Setfocus(Lv1_handle&)
Zeile#.Imask&=$8
Zeile#.Item&=Gefunden&
Zeile#.State&=$2
Zeile#.Statemask&=$2
@Sendmessage(Lv1_handle&,$102B,Gefunden&,Zeile#)Zeile markieren
Dispose Zeile#
Endif
|
| | | | |
| | Jac de Lad | | | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 27.08.2006 ▲ |
| |
| | Michael Wodrich | | | | Programmieren, das spannendste Detektivspiel der Welt. | 27.08.2006 ▲ |
| |
|
répondreOptions du sujet | 5.951 Views |
Themeninformationencet Thema hat 7 participant: |