English
Forum

Prozedurentest... +[Download]

 

Michael
Wodrich
as replacement- and Diskussionsbereich for Testprogramme, The whom Gruppenmanager concern.

in the archive is the last Schriftsatz include, likewise The INC-Files.

The GM-Test.prf becomes used, circa any Module To testing. tappt im dunkeln lying too as EXE with, so any time look can.

v0.1:
The Gruppenmanager.prf is not yet so far.

it would helpful, if itself of/ one the tab-Control Specialists times the Doku anschaut and itself on it attempts. thereby can The File Gruppenmanager.prf completely new prepares go (is only a copy of GM-Test).

v0.2:
it'll umgestellt on Treeview. Source eingepflegt.

Icons
I have time one Bischen in of my Icon-box gewühlt. are everything no own, fit but.

v0.3:
new Version (without GM-Test) uploaded...

Best wishes
Michael Wodrich

5 kB
Kurzbeschreibung: Gruppenmanager-Icons
Hochgeladen:08/21/05
Downloadcounter27
Download
280 kB
Kurzbeschreibung: Gruppenmanager proposition
Hochgeladen:08/21/05
Downloadcounter25
Download
14 kB
Kurzbeschreibung: Gruppenmanager proposition
Hochgeladen:08/24/05
Downloadcounter31
Download
 
Programmieren, das spannendste Detektivspiel der Welt.
08/17/05  
 



could you The each actually Version of Gruppenmanager.prf here as Download provide? Sowohl my IE5.5 as well as Opera having integrally gewaltige Problems at Mark and copy the Source.
 
08/18/05  
 



Nimm still whom orangen button - the markiert still whom kompletten Source.

salvo.
 
08/18/05  
 



The functions weder at IE5.5 yet with Opera...
 
08/18/05  
 




Dietmar
Horn
So I be too straight with IE 5.5 on the way (under ME), and there functions the tadellos. and with us in the cabinet with Win 95 / 98 and IE 5.5. ditto.

Greeting
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
08/18/05  
 



If I with the mouse over the red BUtton drive, comes by me at IE always The Error Message:
its one Laufzeitfehler aufgetreten. should the Debug-mode launched go?
row: 0
Error: The Cursoreigenschaften get not found. Ungültiges argument.

the copy has but now still hingehauen.
 
08/18/05  
 



Perhaps are You simply not up-to-date.
 
08/18/05  
 




Michael
Wodrich
is behind the button one Java-gear?
 
Programmieren, das spannendste Detektivspiel der Welt.
08/19/05  
 



Türlich.
differently goes it ldr. neither.

salvo.
 
08/19/05  
 



let we the first once - copy have I hinbekommen.

@Michael and IF: i'd The 3 Listboxes gladly against 1 Treeview supplant, the itself to Usern and the (3) Gruppenarten different verzweigt. Gruppenarten and User should thereby different Icons get. the Treeview sol on The left Half the Mainwindow.
right should some over Control erstellte Buttons there:
Edit
delete
add
according to selection imj Treeview should different Buttons active his.
what hold your of so one beginning?
be yet fully in the Urlaubsstreß, if I Time find, building I gladly something together.

alas Yes, in of my Profan Help standing, that reaches not pub his can. ought to one then reaches not too global deklarieren?
Clicked knows my Profanversion not! Please compatible To 7.5 hold and API use (habs me already rebuilt).
 
08/19/05  
 



hello everyone together...

what hold your of something in the manner?
CompileMarkSeparation
Gruppenmanager.prf
************** Start der Globale Declarationen **************
DEF @InitCommonControls(0) !"COMCTL32","InitCommonControls"
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID" "%MENUITEM" von einem Handle ermitteln
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM %MENUITEM vergleichen
DEF @ImageList_Create(5) !"COMCTL32","ImageList_Create"
DEF @ImageList_AddIcon(2) !"COMCTL32","ImageList_AddIcon"
DEF @ImageList_Destroy(1) !"COMCTL32","ImageList_Destroy"
DEF @GetModuleHandle(1) !"KERNEL32","GetModuleHandleA"
DEF @LoadIcon(2) ! "USER32","LoadIconA"
Declare Imagelist&,GU_Treeview&,Ende%,Sortierliste&
Declare TV_TEXT#,TV_INSERT#,TV_ITEM#
Declare GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#,Entry_COUNT#
Declare GETERROR_Buffer#
Declare UNICODE#,Attribut#,PrivilegSET#,PRIVILEG#
Declare SID#,DOMAIN#,ALLPRIVS#,ComparePriv#
Declare TV_Sonstige&,TV_Netzwerkgruppen&,TV_User&,TV_lokale_gruppen&
Declare Hinzufügen&,Löschen&,Bearbeiten&
Declare Text_Von_TV_ITEM$
Declare TV_SELECTED&,TV_ROOT&
Struct LSA_UNICODE_STRING=Length%,MaximumLength%,Buffer&
Struct LSA_OBJECT_ATTRIBUTES=Length&,RootDirectory&,Length%,MaximumLength%,Buffer&,Attributes&,SecurityDescriptor#(4),SecurityQualityOfService#(4)
************** Ende der Globale Declarationen **************
************** Start der Prozedur zum Ermitteln lokaler Gruppen ********************

Proc Liste_lokale_gruppen

    Clearlist
    Declare Indexzähler&,Nt_fehler&,E_read&,E_total&,Resumehandle&
    Dim Entry_count#,4
    Dim Gu_buffer_p#,4
    Dim Gu_buffer_a#,252
    Dim Gu_buffer#,32
    Let Nt_fehler&=$Ea
    Let Resumehandle&=0
    Let Indexzähler&=0

    While Nt_fehler&=$Ea

        Clear Entry_count#,Gu_buffer_p#,Gu_buffer_a#,Gu_buffer#
        Let Nt_fehler&=@External("Netapi32.DLL","NetLocalGroupEnum",0,0,Gu_buffer_p#,-1,@Addr(E_read&),@Addr(E_total&),@Addr(Resumehandle&))

        If @Or(Nt_fehler&=$Ea,Nt_fehler&=0)

            While Indexzähler&<E_read&

                @External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,@Long(Gu_buffer_p#,0)+Indexzähler&*4,4)
                @External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,0),-1,Gu_buffer_a#,261,0,0)
                Addstring @String$(Gu_buffer_a#,0)
                Let IndexzÄhler&=IndexzÄhler&+1

            Wend

            @External("Netapi32.DLL","NetApiBufferFree",@Long(Gu_buffer_p#,0))

        Endif

    Wend

    If Nt_fehler&<>0

        Dim Geterror_buffer#,32000
        @External("KERNEL32","FormatMessageA",$1000,0,Nt_fehler&,0,Geterror_buffer#,32000,0)
        Let Geterror_buffer$=@String$(Geterror_buffer#,0)
        Dispose Geterror_buffer#
        @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

    Endif

    Dispose Entry_count#
    Dispose Gu_buffer#
    Dispose Gu_buffer_p#
    Dispose Gu_buffer_a#
    Dispose Gu_buffer#
    Dispose Gu_buffer_p#

Endproc

************** Ende der Prozedur zum Ermitteln lokaler Gruppen ********************
************** Start der Prozedur zum Listen der Netzwerkgruppen ********************

Proc Liste_netzwerkgruppen

    Clearlist
    Declare Indexzähler&,Nt_fehler&
    Dim Entry_count#,4
    Dim Gu_buffer_p#,4
    Dim Gu_buffer_a#,252
    Dim Gu_buffer#,32
    Let Nt_fehler&=$Ea
    Let Indexzähler&=0

    While Nt_fehler&=$Ea

        Clear Entry_count#,Gu_buffer_p#,Gu_buffer_a#,Gu_buffer#
        Let Nt_fehler&=@External("Netapi32.DLL","NetQueryDisplayInformation",0,3,Indexzähler&,1,-1,Entry_count#,Gu_buffer_p#)

        If @Or(Nt_fehler&=$Ea,Nt_fehler&=0)

            @External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,@Long(Gu_buffer_p#,0),20)
            Let Indexzähler&=@Long(Gu_buffer#,16)
            @External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,0),-1,Gu_buffer_a#,261,0,0)
            Addstring @String$(Gu_buffer_a#,0)
            @External("Netapi32.DLL","NetApiBufferFree",@Long(Gu_buffer_p#,0))

        Endif

    Wend

    If Nt_fehler&<>0

        Dim Geterror_buffer#,32000
        @External("KERNEL32","FormatMessageA",$1000,0,Nt_fehler&,0,Geterror_buffer#,32000,0)
        Let Geterror_buffer$=@String$(Geterror_buffer#,0)
        Dispose Geterror_buffer#
        @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

    Endif

    Dispose Entry_count#
    Dispose Gu_buffer#
    Dispose Gu_buffer_a#
    Dispose Gu_buffer#
    Dispose Gu_buffer_p#

Endproc

************** Ende der Prozedur zum Listen der Netzwerkgruppen ********************
************** Start der Prozedur zum Ermitteln aller User ********************

Proc Liste_alle_user

    Clearlist
    Declare Indexzähler&,Nt_fehler&
    Declare Geterror_buffer$
    Dim Entry_count#,4
    Dim Gu_buffer_p#,4
    Dim Gu_buffer_a#,252
    Dim Gu_buffer#,32
    Let Nt_fehler&=$Ea
    Let Indexzähler&=0

    While Nt_fehler&=$Ea

        Clear Entry_count#,Gu_buffer_p#,Gu_buffer_a#,Gu_buffer#
        Let Nt_fehler&=@External("Netapi32.DLL","NetQueryDisplayInformation",0,1,Indexzähler&,1,-1,Entry_count#,Gu_buffer_p#)

        If @Or(Nt_fehler&=$Ea,Nt_fehler&=0)

            @External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,@Long(Gu_buffer_p#,0),24)
            Let Indexzähler&=@Long(Gu_buffer#,20)
            @External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,0),-1,Gu_buffer_a#,261,0,0)
            Addstring @String$(Gu_buffer_a#,0)
            @External("Netapi32.DLL","NetApiBufferFree",@Long(Gu_buffer_p#,0))

        Endif

    Wend

    If Nt_fehler&<>0

        Dim Geterror_buffer#,32000
        @External("KERNEL32","FormatMessageA",$1000,0,Nt_fehler&,0,Geterror_buffer#,32000,0)
        Let Geterror_buffer$=@String$(Geterror_buffer#,0)
        Dispose Geterror_buffer#
        @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

    Endif

    Dispose Entry_count#
    Dispose Gu_buffer#
    Dispose Gu_buffer_a#
    Dispose Gu_buffer#
    Dispose Gu_buffer_p#

Endproc

************** Ende der Prozedur zum Ermitteln aller User ********************
************** Start der Prozedur zum Erzeugen einer "Iconliste" **************

Proc Erzeuge_Imageliste

    Declare ExecuteHandle&,Hicon&,Iconname$
    Let Imagelist&=ImageList_Create(16,16,$0001,3,3) Imagelist erzeugen
    Let ExecuteHandle&=@GetModuleHandle(0)  Handle des laufenden Programms
    LET Iconname$="Weg"       Icon-Name
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Windows"         Icon-Name
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Eimer"
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Editor"
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="A"
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Stein"
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Baum"
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)
    LET Iconname$="Computer"         Icon-Name
    Let Hicon&=@LoadIcon(Executehandle&,@ADDR(Iconname$)) Handle des Icons ok
    @ImageList_AddIcon(Imagelist&,HIcon&)

endproc

************** Ende der Prozedur zum Erzeugen einer "Iconliste" **************
************** Start der Prozedur zum Einfügen von Items in das Treeview **************

PROC Füge_Item_in_Treeview_ein

    Declare ITEM_Handle&
    Dim TV_TEXT#,261
    DIM TV_INSERT#,48
    CLEAR TV_INSERT#,TV_TEXT#
    String TV_TEXT#,0=@$(4)      Der Text im Label
    long TV_INSERT#,0=@&(1)          TVins-Parent
    long TV_INSERT#,8=$0001+$0002+ $0020+ $0004 +$0008 +$0010
    long TV_INSERT#,16=@&(5)          State
    long TV_INSERT#,20=$0001+$0002+$0004+$0008+$0010+$0020+$0040+$0080+$0F00+$F000 StateMAsk
    long TV_INSERT#,24=TV_TEXT#   Adress of Label
    long TV_INSERT#,32=@&(2)         Image          z.B Ordner
    long TV_INSERT#,36=@&(3)         Selected Image z.B geöffneter Ordner
    long TV_INSERT#,44=@&(6)          Lparam
    LET ITEM_Handle&=@sendmessage(GU_Treeview&,$1100,0,TV_INSERT#)
    Dispose TV_TEXT#
    Dispose TV_INSERT#
    Return ITEM_Handle&

ENDPROC

************** Ende der Prozedur zum Einfügen von Items in das Treeview **************
************** Start der Prozedur zum Füllen des Treeviews **************

Proc Update_GU_Treview

    USECURSOR 2
    Enablewindow GU_Treeview&,0
    Declare GU_STRING$,GU_ZÄHLER%
    @Sendmessage(GU_Treeview&,$1101,0,0) Treeview komplett löschen
    Füge_Item_in_Treeview_ein 0,0,0,"User",$0010
    LET TV_USER&=@&(0)
    Füge_Item_in_Treeview_ein 0,1,1,"Lokale Gruppen",$0010
    LET TV_lokale_Gruppen&=@&(0)
    Füge_Item_in_Treeview_ein 0,2,2,"Netzwerkgruppen",$0010
    LET TV_NETZWERKGRUPPEN&=@&(0)
    Füge_Item_in_Treeview_ein 0,3,3,"Gruppen aus Token",$0010
    LET TV_SONSTIGE&=@&(0)
    Liste_Alle_User
    @SENDMESSAGE(SORTIERLISTE&,$0184,0,0) Sortierlistbox löschen
    @MoveListToList(SORTIERLISTE&)
    LET GU_ZÄHLER%=0

    While GU_ZÄHLER%<@GetCount(SORTIERLISTE&)

        LET GU_STRING$=@GetString$(SORTIERLISTE&,GU_ZÄHLER%)
        Füge_Item_in_Treeview_ein TV_User&,0,0,GU_STRING$,$0010
        LET GU_ZÄHLER%=GU_ZÄHLER%+1

    WEND

    Liste_lokale_Gruppen
    @SENDMESSAGE(SORTIERLISTE&,$0184,0,0) Sortierlistbox löschen
    @MoveListToList(SORTIERLISTE&)
    LET GU_ZÄHLER%=0

    While GU_ZÄHLER%<@GetCount(SORTIERLISTE&)

        LET GU_STRING$=@GetString$(SORTIERLISTE&,GU_ZÄHLER%)
        Füge_Item_in_Treeview_ein TV_lokale_Gruppen&,0,0,GU_STRING$,$0010
        LET GU_ZÄHLER%=GU_ZÄHLER%+1

    WEND

    Liste_NetzwerkGruppen
    @SENDMESSAGE(SORTIERLISTE&,$0184,0,0) Sortierlistbox löschen
    @MoveListToList(SORTIERLISTE&)
    LET GU_ZÄHLER%=0

    While GU_ZÄHLER%<@GetCount(SORTIERLISTE&)

        LET GU_STRING$=@GetString$(SORTIERLISTE&,GU_ZÄHLER%)
        Füge_Item_in_Treeview_ein TV_NetzwerkGruppen&,0,0,GU_STRING$,$0010
        LET GU_ZÄHLER%=GU_ZÄHLER%+1

    WEND

    USECURSOR 0
    Enablewindow GU_Treeview&,1

ENDPROC

************** Ende der Prozedur zum Füllen des Treeviews **************
************** Start der Prozedur zum ermitteln des selektierten Treeviewitems **************

Proc TV_Getitemtext

    Parameters TV_ITEM_HANDLE&
    Declare ITEMTEXT$
    DIM TV_TEXT#,261
    DIM TV_ITEM#,40
    CLEAR TV_ITEM#,TV_TEXT#
    LONG TV_ITEM#,0=$11
    LONG TV_ITEM#,20=261
    LONG TV_ITEM#,16=TV_TEXT#
    LONG TV_ITEM#,4=TV_ITEM_HANDLE&
    @sendmessage(GU_Treeview&,$110C,0,TV_ITEM#)
    LET ITEMTEXT$=@STRING$(TV_TEXT#,0)
    Dispose TV_text#
    Dispose TV_ITEM#
    RETURN ITEMTEXT$

endproc

************** Ende der Prozedur zum ermitteln des selektierten Treeviewitems **************
************** Hauptprogramm *******************
Windowstyle 512 + 31
Windowtitle "Gruppenmanager"
Window 0,0-640,440
@InitCommonControls()
LET SORTIERLISTE&=CreateSortedListbox(%HWND,"",%maxx+30,%MAXY+30,0,0)
@Showwindow(SORTIERLISTE&,0)
Let bearbeiten&=@Control("Button","bearbeiten",$10000+$40000000+$10000000+$400000+$1000,440,80,150,30,%HWND,3002,%HINSTANCE)
Let hinzufügen&=@Control("Button","hinzufügen",$10000+$40000000+$10000000+$400000+$1000,440,20,150,30,%HWND,3003,%HINSTANCE)
Let löschen&=@Control("Button","löschen",$10000+$40000000+$10000000+$400000+$1000,440,140,150,30,%HWND,3004,%HINSTANCE)
Enablewindow bearbeiten&,0
Enablewindow hinzufügen&,0
Enablewindow löschen&,0
Let GU_Treeview&=@Control("SysTreeView32","",$40000000+$10000000+$800000+$200000+$0002+$0010+$0020+$0001,40,20,250,300,%HWND,3005,%Hinstance)
Erzeuge_Imageliste
@sendmessage(GU_TreeView&,$1109,0,Imagelist&) Imageliste dem Treeview zuweisen
Update_GU_Treview

Whilenot %MENUITEM=-2

    waitinput
    Let TV_ROOT&=@sendmessage(GU_Treeview&,$110A,$0,0)
    LET TV_SELECTED&=@sendmessage(GU_Treeview&,$110A,$0009,0)
    TV_Getitemtext TV_SELECTED& Text des selektierten Treeviewitems ermiteln
    LET Text_Von_TV_ITEM$=@$(0)

    IF @or(TV_SELECTED&=TV_User&,@or(TV_SELECTED&=TV_Lokale_Gruppen&,TV_SELECTED&=TV_Netzwerkgruppen&))

        Enablewindow hinzufügen&,1
        Enablewindow bearbeiten&,0
        Enablewindow löschen&,0

    Elseif TV_SELECTED&=TV_Sonstige&

        Enablewindow bearbeiten&,0
        Enablewindow hinzufügen&,0
        Enablewindow löschen&,0

    ElseIF TV_ROOT&=TV_Sonstige&

        Enablewindow bearbeiten&,1
        Enablewindow löschen&,0
        Enablewindow hinzufügen&,0

    elseif TV_ROOT&=TV_USER&

        Enablewindow bearbeiten&,1
        Enablewindow löschen&,1
        Enablewindow hinzufügen&,0

    elseif TV_ROOT&=TV_Netzwerkgruppen&

        Enablewindow bearbeiten&,1
        Enablewindow löschen&,1
        Enablewindow hinzufügen&,0

    elseif TV_ROOT&=TV_lokale_gruppen&

        Enablewindow bearbeiten&,1
        Enablewindow löschen&,1
        Enablewindow hinzufügen&,0

    else

        Enablewindow bearbeiten&,0
        Enablewindow hinzufügen&,0
        Enablewindow löschen&,0

    endif

    IF Buttonclicked(hinzufügen&)

        Beep

    ElseIF Buttonclicked(bearbeiten&)

        Beep

    ElseIF Buttonclicked(löschen&)

        Beep

    endif

    Drawtext 0,0,TEXT_VON_TV_ITEM$+@Space$(255) Zum testing

wend

@Destroywindow(GU_Treeview&)
@ImageList_Destroy(Imagelist&)

(...I hope Michel vergibt me...)
 
08/19/05  
 




Michael
Wodrich
i'm only with the Icons not so integrally all right.

there we The INCs still sowohl on Extra-pages as well as in the archive offer:
could You do not with $I works? the power the whole something übersichtlicher.

Yes, local reaches gabs first ex v8.0 and Clicked() ex v9.0

I stell time my Identifier-Suchmaschine in that archive...

Best wishes
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
08/19/05  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

2.289 Views

Untitledvor 0 min.
Peter Max Müller05/13/15
E.T.12/01/11

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie