Seite 16 von 41

Verfasst: 25.04.2009 10:31
von ts-soft
Andesdaf hat geschrieben:ich verstehe nicht ganz (vielleicht noch zu müde):
für beide Listen dachte ich, wenn das irgendwie möglich ist.
Der Filter kann für jede Seite separat eingestellt werden, das Menü wirkt
sich auf die aktuelle Quellansicht aus. Der Filter steht auch hinter dem Pfad,
so das man den gültigen Filter jeder Liste sehen kann.
Häkchen machen nicht viel sinn!

Verfasst: 25.04.2009 10:33
von Andesdaf
stimmt. Das in der Adressleiste hab ich ganz übersehen.

Verfasst: 25.04.2009 10:40
von ts-soft
Andesdaf hat geschrieben:stimmt. Das in der Adressleiste hab ich ganz übersehen.
Vielleicht paßte mal die Farben für aktiv und inactiv an, findeste in der Prefs.
Bei Deinen Einstellungen sieht man ja wirklich nicht viel :wink:

Verfasst: 25.04.2009 10:45
von X360 Andy
Ohne jetzt alles durchgelesen zu haben .....

Wie wärs mit einem FTP Laufwerk ?(oder mehrene)

Sowas würde ich nützlich finden ...

Verfasst: 25.04.2009 10:53
von ts-soft
X360 Andy hat geschrieben:Ohne jetzt alles durchgelesen zu haben .....

Wie wärs mit einem FTP Laufwerk ?(oder mehrene)

Sowas würde ich nützlich finden ...
Naja, die ToDo Liste des Eröffnungsthreads hätte es gebracht :wink:

FTP wird wohl noch ein weilchen Dauern, muß das angefangene erstmal
Komplettieren und endlich Einstellungen ermöglichen.

Verfasst: 25.04.2009 11:59
von Andesdaf
al90 hat geschrieben:
aber nach 3 Wochen ist das schon ne Menge :wink:
Das ist wohl wahr. :allright:
Ja, für die Zeit ist das wirklich schon ziemlich brauchbar :allright:

Verfasst: 25.04.2009 15:41
von cxAlex
Wenn man eine Dll oder Exe - Datei anklickt könntest du im Vorschaufenster den PE-Header anzeigen, hab mal nen Code geschrieben den zu ermitteln, mal sehen ob ich den noch finde.
JA!Commander PE - Header hat geschrieben: Signature: 00004550
Machine: 014C - Intel 386
Number of sections: 0005
Time/Date stamp: 49F2B341 (25.04.2009 08:52:49)
Pointer to symbol table: 00000000
Number of symbols: 00000000
Size of optional header: 00E0
Characteristics: 010F - Relocs Stripped, Executable, Line Numbers Stripped, Local Symbols Stripped, 32bit Machine Expected
Magic: 010B
Linker version (major): 02
Linker version (minor): 32
Size of code: 000B2C00
Size of initialized data: 00058400
Size of uninitialized data: 00000000
Address of entry point: 00001000
Base of code: 00001000
Base of data: 000B5000
Image base: 00400000
Section alignment: 00001000
File alignment: 00000200
OS version (major): 0004
OS version (minor): 0000
Image version (major): 0000
Image version (minor): 0000
Sub system version (major): 0004
Sub system version (minor): 0000
Win32 version: 00000000
Size of image: 0010F000
Size of headers: 00000400
Checksum: 00000000 (does NOT match file checksum 001154DD)
Sub system: 0002 - Windows graphical user interface (GUI) subsystem
DLL characteristics: 0000
Size of stack reserve: 00100000
Size of stack commit: 00001000
Size of heap reserve: 00100000
Size of heap commit: 00001000
Loader flags: 00000000
Number of RVA: 00000010
Export Directory Address: 00000000
Export Directory Size: 00000000
Import Directory Address: 000FD4BC
Import Directory Size: 00000104
Resource Directory Address: 00102000
Resource Directory Size: 0000CB88
Exception Directory Address: 00000000
Exception Directory Size: 00000000
Security Directory Address: 00000000
Security Directory Size: 00000000
Relocation Directory Address: 00000000
Relocation Directory Size: 00000000
Debug Directory Address: 00000000
Debug Directory Size: 00000000
Coypright Directory Address: 00000000
Coypright Directory Size: 00000000
Global Ptr Directory Address: 00000000
Global Ptr Directory Size: 00000000
Thread L.S. Directory Address: 00000000
Thread L.S. Directory Size: 00000000
Load Config Directory Address: 00000000
Load Config Directory Size: 00000000
Bound Import Directory Address: 00000000
Bound Import Directory Size: 00000000
IAT Directory Address: 000FDBE8
IAT Directory Size: 00000628

Verfasst: 25.04.2009 17:35
von al90
cxAlex hat geschrieben:Wenn man eine Dll oder Exe - Datei anklickt könntest du im Vorschaufenster den PE-Header anzeigen, hab mal nen Code geschrieben den zu ermitteln, mal sehen ob ich den noch finde.
Appropos Dll. Dazu fällt mir gerade was ein. Wie wäre es denn wenn du
in der Vorschau die Funktionen Auflisten würdest. Das fände ich echt mal cool. :D

Und damit du nicht erst lange suchen musst, hier gleich das Beispiel aus dem CAV. :wink:

Code: Alles auswählen

; Converted by PBSourceConverter on 18.03.2009 / 18:03
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=3036&highlight=
; Author: Dingzbumz (improved by GPI)
; Date: 06. December 2003

Global NewList last_file.s() 
Global NewList liste.s() 

Global last_path.s 

Declare auflisten(dll.s,hinzufuegen) 

Enumeration 1;Menu-Einträge 
  #Menu_Oeffnen;1 
  #Menu_Hinzufuegen;2 
  #Menu_EigeneListe;100+ 
  #Menu_EigeneListeEnde=#Menu_EigeneListe+20 
  #Menu_LastFile;3+ 
  #Menu_LastFileEnde=#Menu_LastFile+10 
  #Menu_Beenden;14 
  #Menu_NameKopieren;31 
  #Menu_AdresseKopieren;32 
  #Menu_ZurListeHinzufuegeen;33 
  #Menu_AktuellesEntfernen;34 
  #Menu_AlleEntfernen;35 
  #Menu_EntferneX;40+ 
  #Menu_EntferneXEnde=#Menu_EntferneX+20 
  #Menu_About;21 
EndEnumeration 
Enumeration 1;Gadgets 
  #Gadget_Oeffnen;20 
  #Gadget_Hinzufuegen;21 
  #Gadget_NameKopieren;22 
  #Gadget_AdresseKopieren;23 
  #Gadget_ZurListe;24 
  #Gadget_Google;26 
  #Gadget_Beenden;27 
  #Gadget_Liste;2 
  #Gadget_DLLName;3 
EndEnumeration 

Procedure Menu() 
  If CreateMenu(0,WindowID(0)) 
    ;erstes menue 
    MenuTitle("&Datei") 
    MenuItem(#Menu_Oeffnen,"ö&ffnen") 
    MenuItem(#Menu_Hinzufuegen,"&hinzufügen") 
    OpenSubMenu("Eigene &Liste") 
    z=0 
    ResetList(liste()) 
    ForEach liste() 
      If z<20 
        MenuItem(#Menu_EigeneListe+z,"&"+Str(z+1)+"  "+liste()) 
      Else 
        DeleteElement(liste()) 
      EndIf 
      z+1 
    Next 
    CloseSubMenu() 
    
    OpenSubMenu("&zuletzt geöffnet") 
    z=0 
    ResetList(last_file()) 
    ForEach last_file() 
      If z<10 
        MenuItem(#Menu_LastFile+z,"&"+Str(z+1)+"  "+last_file()) 
      Else 
        DeleteElement(last_file()) 
      EndIf 
      z+1 
    Next 
    CloseSubMenu() 
    MenuItem(#Menu_Beenden,"b&eenden") 
    
    ;zweites menue 
    MenuTitle("&Bearbeiten") 
    MenuItem(#Menu_NameKopieren,"&Name Kopieren") 
    MenuItem(#Menu_AdresseKopieren,"&Adresse Kopieren") 
    MenuItem(#Menu_ZurListeHinzufuegeen,"zur Liste &hinzufügen") 
    OpenSubMenu("Aus Liste &entfernen") 
    MenuItem(#Menu_AktuellesEntfernen,"&aktuelles entfernen") 
    MenuItem(#Menu_AlleEntfernen,"alle entfernen") 
    MenuBar() 
    z=0 
    ResetList(liste()) 
    ForEach liste() 
      MenuItem(z+#Menu_EntferneX,liste()) 
      z+1 
    Next 
    CloseSubMenu() 
    
    
    ;drittes menue 
    MenuTitle("&Info") 
    MenuItem(#Menu_About,"&about") 
  EndIf 
EndProcedure 

Procedure dll_oeffnen(hinzufuegen) 
  dll_opened.s=OpenFileRequester("DLL wählen", last_path,"dll (*.dll)| *dll",0) 
  If dll_opened 
    last_path=GetPathPart(dll_opened)
    SetCurrentDirectory_(last_path)
    auflisten(dll_opened,hinzufuegen)
  EndIf 
EndProcedure 
Procedure auflisten(dll.s,hinzufuegen) 
  ;-die ifs hab ich hier getrennt, da bei einen if immer alles kontrolliert wird und immer versucht wird die DLL zu öffnen 
  If dll <>"" 
    If OpenLibrary(0,dll) 
      ResetList(last_file()) 
      AddElement(last_file()) 
      last_file()=dll 
      
      vorkommen=0 
      ForEach last_file() 
        If last_file()=dll 
          vorkommen+1 
        EndIf 
      Next 
      If vorkommen >1 
        SelectElement(last_file(),0) 
        While NextElement(last_file()) 
          If last_file()=dll 
            DeleteElement(last_file()) 
            Break 
          EndIf 
        Wend 
      EndIf 
      
      If hinzufuegen<>1 
        ClearGadgetItemList(#Gadget_Liste) 
        i=0 
      Else 
        hinzufuegen=0 
      EndIf 
      
      SetGadgetText(#Gadget_DLLName,dll) 
      If CountLibraryFunctions(0) >0 
        ExamineLibraryFunctions(0) 
        While NextLibraryFunction() 
          i+1 
          AddGadgetItem(#Gadget_Liste,i- 1,Str(i)+Chr(10)+LibraryFunctionName()+Chr(10)+Str(LibraryFunctionAddress())) 
        Wend 
        Menu() 
      Else 
        MessageRequester("Fehler", "Die DLL "+dll+" hat keinen inhalt.") 
      EndIf 
    Else 
      MessageRequester("Fehler", "Die DLL:"+Chr(13)+dll+Chr(13)+"kann nicht gelesen werden, "+Chr(13)+"oder existiert nicht.") 
    EndIf 
  EndIf 
EndProcedure 

Procedure Zur_Liste(dll.s) 
  If dll<>"" 
    vorkommen=0 
    ResetList(liste()) 
    ForEach liste() 
      If liste()=dll 
        vorkommen=1 
        Break 
      EndIf 
    Next 
    
    If vorkommen<>1 
      ResetList(liste()) 
      AddElement(liste()) 
      liste()=dll 
    EndIf 
    Menu() 
  EndIf 
EndProcedure 

Procedure.s GetFunctionName() 
  If GetGadgetState(#Gadget_Liste)<>-1 
    ProcedureReturn GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),1) 
  Else 
    ProcedureReturn "" 
  EndIf  
EndProcedure 


;-letzte Einstellungen laden 
If ReadFile(0,"DLL-Viewer.pref") 
  last_path.s=ReadString(0) 
  a=ReadLong(0) 
  If a>-1 
    For i=0 To a 
      AddElement(last_file()) 
      last_file()=ReadString(0) 
    Next 
  EndIf 
  a=ReadLong(0) 
  If a>-1 
    For i=0 To a 
      AddElement(liste()) 
      liste()=ReadString(0) 
    Next 
  EndIf 
  CloseFile(0) 
EndIf 

If OpenWindow(0, 180, 75, 460, 410, "MLK - DLL VIEWER", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_MinimizeGadget) 
  If CreateGadgetList(WindowID(0)) 
    TextGadget(#Gadget_DLLName,10,55,330,20,"") 
    
    ButtonGadget(#Gadget_Oeffnen, 350, 90, 100, 30, "öffnen") 
    ButtonGadget(#Gadget_Hinzufuegen, 350, 125, 100, 30, "hinzufügen") 
    ButtonGadget(#Gadget_NameKopieren, 350, 170, 100, 27, "Name kopieren") 
    ButtonGadget(#Gadget_AdresseKopieren, 350, 202, 100, 27, "Adresse kopieren") 
    ButtonGadget(#Gadget_ZurListe, 350, 244, 100, 27, "zur Liste") 
    ButtonGadget(#Gadget_Google, 350, 286, 100, 27, "Google")    
    ButtonGadget(#Gadget_Beenden, 350, 343, 100, 27, "beenden")    
    
    ListIconGadget(#Gadget_Liste, 10, 70, 330, 300,"Nr.",50,#PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_FullRowSelect) 
    AddGadgetColumn(#Gadget_Liste,1,"Name",186) 
    AddGadgetColumn(#Gadget_Liste,2,"Adresse",90) 
  Else 
    MessageRequester("DLL-Viewer","CreateGadgetList-Error") 
    End 
  EndIf 
  
  Menu() 
Else 
  MessageRequester("DLL-Viewer","Kann kein Fenster öffnen") 
EndIf 

Repeat 
  Select WaitWindowEvent() 
    Case #PB_Event_Gadget 
      Select EventGadget() ;-gadgets 
        
        Case #Gadget_Oeffnen: dll_oeffnen(0) 
        Case #Gadget_Hinzufuegen: dll_oeffnen(1) 
        Case #Gadget_NameKopieren 
          If GetGadgetState(#Gadget_Liste)<>-1 
            SetClipboardText(GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),1)) 
          EndIf 
          
        Case #Gadget_AdresseKopieren 
          If GetGadgetState(2)<>-1 
            SetClipboardText(GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),2)) 
          EndIf 
          
        Case #Gadget_ZurListe 
          Zur_Liste(GetFunctionName()) 
          
          
        Case #Gadget_Google 
          If GetGadgetState(#Gadget_Liste)<>-1 
            RunProgram("http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF- 8&q="+GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),1)+"&btnG=Google+Suche&meta=lr%3Dlang_de","","") 
          EndIf 
          
        Case #Gadget_Beenden 
          quit=#True 
          
      EndSelect 
      
    Case #PB_Event_Menu ;- Menu 
      MenuID=EventMenu() 
      If MenuID>=#Menu_EigeneListe And MenuID<=#Menu_EigeneListeEnde 
        SelectElement(liste(),MenuID-#Menu_EigeneListe) 
        dll.s=liste() 
        DeleteElement(liste())   ;eintrag an aktueller position löschen... 
        ResetList(liste()) 
        AddElement(liste())     ;und an erster stelle... 
        liste()=dll           ;wieder einfügen. 
        ;auflisten(dll,0) <-------------- Blödsinn, oder? 
      ElseIf MenuID>=#Menu_EntferneX And MenuID<=#Menu_EntferneXEnde 
        SelectElement(liste(),MenuID-#Menu_EntferneX) 
        DeleteElement(liste()) 
        Menu() 
      ElseIf MenuID>=#Menu_LastFile And MenuID<=#Menu_LastFileEnde 
        SelectElement(last_file(),MenuID-#Menu_LastFile) 
        auflisten(last_file(),0) 
      Else 
        Select MenuID 
          Case #Menu_Oeffnen: dll_oeffnen(0) 
          Case #Menu_Hinzufuegen: dll_oeffnen(1) 
          Case #Menu_Beenden: quit=#True 
          Case #Menu_About 
            MessageRequester("Info","http://www.dingzbumz.de") 
          Case #Menu_NameKopieren 
            If GetGadgetState(#Gadget_Liste)<>-1 
              SetClipboardText(GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),1)) 
            EndIf  
          Case #Menu_AdresseKopieren 
            If GetGadgetState(#Gadget_Liste)<>-1 
              SetClipboardText(GetGadgetItemText(#Gadget_Liste,GetGadgetState(#Gadget_Liste),2)) 
            EndIf 
          Case #Menu_ZurListeHinzufuegeen 
            Zur_Liste(GetFunctionName()) 
          Case #Menu_AktuellesEntfernen 
            dll=GetFunctionName() 
            If dll<>"" 
              ResetList(liste()) 
              ForEach liste() 
                If liste()=dll 
                  DeleteElement(liste()) 
                EndIf 
              Next 
              Menu() 
            EndIf 
          Case #Menu_AlleEntfernen 
            ClearList(liste()) 
            Menu() 
        EndSelect 
      EndIf 
      
    Case #PB_Event_CloseWindow 
       quit = 1 
  EndSelect 
  If quit=1 
    ;- Create File BEACHTEN! 
    If CreateFile(0,"DLL-Viewer.pref") 
      WriteStringN(0,last_path) 
      c=CountList(last_file())-1 
      If c>9:c=9:EndIf 
      WriteLong(0,c) 
      If c>-1 
        ResetList(last_file()) 
        For i=0 To c 
          NextElement(last_file()) 
          WriteStringN(0,last_file()) 
        Next 
      EndIf 
        
      c=CountList(liste())-1 
      If c>19:c=19:EndIf 
      WriteLong(0,c) 
      If c>-1 
        ResetList(liste()) 
        For i=0 To c 
          NextElement(liste()) 
          WriteStringN(0,liste()) 
        Next 
      EndIf 
      CloseFile(0) 
    EndIf 
  EndIf 
  
Until quit=1 

End 

Verfasst: 27.04.2009 16:18
von Thorsten1867
ts-soft hat geschrieben:Leider schmiert mir das immer ab, wenn ich das Adobe Object freigebe, im Beispielcode (liegt Comate bei) funktioniert alles wunderbar, integriert in meiner App gehts bis zum beenden :mrgreen: , also nicht so schön
Hast du es schon mit ComMatePLUS probiert?

Verfasst: 28.04.2009 11:41
von ts-soft
Thorsten1867 hat geschrieben: Hast du es schon mit ComMatePLUS probiert?
Ja, der ist noch Absturzfreudiger :mrgreen: , da stürzt das Beispiel schon
am Ende ab.

Update
Version 0.90
+ Lister gibt Infos zu Zipdateien
+ Lister gibt Infos zu DLL-Dateien
+ Wenn keine MP3v1 Infos vorhanden, wird MP3v2 ausgewertet
+ Kontextmenü zum Lister hinzugefügt
(kopieren, alles markieren, zeilenumbruch an/aus, play, pause)
+ Autorefresh aktualisiert nur wenn die Anwendung im Hintergrund ist
+ Nach aktualisierung wird Selektierung wiederhergestellt
* viel Bugs bereinigt