Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Helfer & Tools

Helfer & Tools Programme für und in XProfan und Fragen dazu.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Hilfe bei Script Erstellung
Aufrufe: 15, Antworten: 5
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26731, Antworten: 4207
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 121, Antworten: 15
Gehe zum ersten neuen Beitrag Grand Prix 2012 Eurovision
Aufrufe: 36, Antworten: 4
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7572, Antworten: 179
Gehe zum ersten neuen Beitrag Verlust der Internetverbindung
Aufrufe: 43, Antworten: 2
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 34, Antworten: 2
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 25, Antworten: 4
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 34, Antworten: 3
Gehe zum ersten neuen Beitrag Programmvorstellung:...
Aufrufe: 22, Antworten: 1
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07.11.2010, 13:58   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard Eigener Resourcen-Editor/Hacker

Ich habe meinen Code etwas erweitert, mit dem die Iconnamen eines XProfan-Programms gelistet werden konnten. Er könnte jetzt als Basis dienen, um einen eigenen Resourcen-Editor zu schreiben, für alle Dateien, die Resourcen enthalten. Vielleicht hat ja jemand Lust, weiter zu entwickeln.

Code:
'
' © Frank Abbing für Paules-PC-Forum
' http://www.paules-pc-forum.de/forum/xprofan/
'

Def IsBadStringPtr(2) !"kernel32","IsBadStringPtrA"
Def EnumResourceNames(4) !"kernel32","EnumResourceNamesA"
Def GetSysColor(1) !"user32","GetSysColor"
Def ExtractIconEx(5) !"shell32.dll","ExtractIconExA"
Def LoadLibrary(1) !"kernel32","LoadLibraryA"
Def FreeLibrary(1) !"kernel32","FreeLibrary"
Def GetLastError(0) !"kernel32","GetLastError"
Def EnumResourceTypes(3) !"kernel32","EnumResourceTypesA"
Def EnumResourceLanguages(5) !"kernel32","EnumResourceLanguagesA"
Def GetLocaleInfo(4) !"kernel32","GetLocaleInfoA"

Declare x&, y&, text$, hmod&, type&[32], icon&


Proc EnumResLangProc
  Parameters hModule&, lpszType&, lpszName&, wIDLanguage&, lParam&
  Declare name$

  If wIDLanguage& <> 0
    name$ = Space$(256)
    GetLocaleInfo(wIDLanguage& ,$4, Addr(name$), 255)
  Else
    name$="Language Neutral"
  EndIf
  
  x&=TreeView("InsertItem", treeview&, lParam&, 2, name$)
  TreeView("SetChildren", treeview&, lParam&, 1)
  Return 1

EndProc


Proc EnumResNameProc
  Parameters hModule&, lpszType&, lpszName&, lParam&
  Declare name$

  y& = lpszName& >> $10
  IfNot y&
    name$ = "ID " + Str$(lpszName&)
  Else
    name$ = String$(lpszName&,0)
  Endif

  If name$ <> ""
    x&=TreeView("InsertItem", treeview&, lParam&, 1, name$)
    TreeView("SetChildren", treeview&, lParam&, 1)
    EnumResourceLanguages(hmod&, lpszType&, lpszName&, ProcAddr("EnumResLangProc", 5), x&)
    Return 1
  Else
    Return 0
  EndIf

EndProc


Proc EnumResTypeProc
  Parameters hModule&, lpszType&, lParam&
  Declare name$

  y& = lpszType& >> $10
  IfNot y&
    name$ = GetString$(resnames&, lpszType&-1)
  Else
    name$ = String$(lpszType&,0)
  Endif

  If name$ <> ""
    x&=TreeView("InsertItem", treeview&, 0, 0, name$)
    EnumResourceNames(hmod&, lpszType&, ProcAddr("EnumResNameProc", 4), x&)
    Return 1
  Else
    Return 0
  EndIf

EndProc


Proc LoadNewFile
  
  WindowTitle "Alle Resourcen auflisten."
  TreeView("DeleteItem", treeview&, 0)

  text$ = LoadFile$("Datei öffnen:","Ausführbare Dateien|*.EXE;*.DLL;*.CPL;*.SYS;*.SCR;*.OCX;*.AMC")
  
  If text$<>""
    Case hmod&: FreeDll hmod&
    hmod& = UseDll(text$)
    If hmod&
      WindowTitle "Alle Resourcen auflisten: "+text$
      SendMessage(treeview&,11,0,0)
      UseCursor 2
      x&=EnumResourceTypes(hmod&, ProcAddr("EnumResTypeProc", 3), 0)
      SendMessage(treeview&,11,1,0)
      UseCursor 0
    Endif
  EndIf

EndProc


WindowStyle 31 + 512
Cls GetSysColor(15)

Var resnames& = Create("List", 0)
AddString(resnames&, "Cursor")
AddString(resnames&, "Bitmap")
AddString(resnames&, "Icon")
AddString(resnames&, "Menu")
AddString(resnames&, "Dialog")
AddString(resnames&, "String")
AddString(resnames&, "FontDir")
AddString(resnames&, "Font")
AddString(resnames&, "Accelerator")
AddString(resnames&, "RCData")
AddString(resnames&, "MessageTable")
AddString(resnames&, "Group_Cursor")
AddString(resnames&, "13")
AddString(resnames&, "Group_Icon")
AddString(resnames&, "15")
AddString(resnames&, "Version")
AddString(resnames&, "DlgInclude")
AddString(resnames&, "18")
AddString(resnames&, "PlugPlay")
AddString(resnames&, "Vxd")
AddString(resnames&, "AniCursor")
AddString(resnames&, "AniIcon")
AddString(resnames&, "Html")
AddString(resnames&, "Manifest")

PopUp "&Datei"
   AppendMenu 100,"Laden"
   AppendMenu 200,"Beenden"

Var il& = Create("ImageList", 16, 16)
ExtractIconEx("shell32.dll", 4, 0, Addr(icon&),1)
ImageList("AddIcon", il&, icon&)
ExtractIconEx("shell32.dll", 2, 0, Addr(icon&),1)
ImageList("AddIcon", il&, icon&)
ExtractIconEx("shell32.dll", 13, 0, Addr(icon&),1)
ImageList("AddIcon", il&, icon&)

Var treeview& = Create("TreeView", %hwnd, il&, 16, 16, 240, 392)
LoadNewFile

While 1
  WaitInput
  Case %key=2: BREAK

  If MenuItem(100)
    LoadNewFile

  ElseIf MenuItem(200)
    BREAK
  Endif

EndWhile

End
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (15.11.2010 um 06:36 Uhr)
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 08.11.2010, 17:10   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Ich habe den Code nochmal angepasst, weil ich übersehen hatte, dass Resource-Typen auch einen Namen besitzen können, anstelle einer Resourcen-Typ-Nummer. Deswegen funktionierte z.B. das Laden der Shell32.dll nicht. Jetzt geht's.

Würde mich freuen, wenn jemand den Code als Anregung für ein eigenes Tool benutzen würde. Resource-Editoren sind ja immer noch rar gesäht.

EDIT: Es werden übrigens auch gepackte Exen/Dlls richtig analysiert. Grad nochmal zwei Abfragen trivialisiert.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (08.11.2010 um 20:53 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 09.11.2010, 22:21   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Nicht interessant genug? Na von mir aus. Hab noch einen länderspezifischen Abzweig eingebaut, sollte ja dabei sein, haben alle, ist wichtig.
EDIT: Die Ländercodes berechnen übrigens die beiden großen Resourcen-Editoren nicht richtig. Z.B. besitzt die Shell32.dll zwei Version-Resourcen (entweder das, oder mein Code spinnt), einmal in deutsch und einmal in englisch. Angezeigt wird aber bei beiden Programmen aber nur die englische! Mein Code zeigt beide an.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (09.11.2010 um 22:29 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 10.11.2010, 00:05   #4 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Es geht eigentlich nicht darum ob das interessant ist, aber wenn ich einen Resourceeditor programmieren würde, müsste er auf jeden Fall sehr viel besser sein als z.B. der Resourcehacker, da der aber eigentlich meine Ansprüche erfüllt, wüsste ich nicht ob ich meinen eigenen Editor überhaupt selbst benutzen würde.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 10.11.2010, 06:36   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Es kann ja z.B. schnell passieren, dass ein altes Programm wie der Resourcen-Hacker mit der nächsten Windows-Version nicht mehr richtig funktioniert. Dann würdest du deinen Editor schon benutzen.
Und wie schon gesagt, ich vermute, der RH und der XNRE unterstützen nur Resourcen für eine Sprache. Gibt aber durchaus die Möglichkeit eine Resource in mehreren Sprachen zu benutzen. Sicher z.B. bei Stringresourcen sehr interessant.
Ich teste grad ein bischen damit rum und hab den Code einfach mal für alle eingestellt. Vielleicht kann's jemand irgendwann gebrauchen.
Und sonst war's für XProfan zumindest ein guter Test, dass auch verschachtelte Callbacks einwandfrei funktionieren.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 13.11.2010, 11:45   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Erweitert und für alle testbar als ausführbare Datei: http://frabbing.bplaced.net/FResEditor.zip

Einige System-Dll's benutzen tatsächlich Resourcen in mehreren Sprachen, was ja auch Sinn macht. Der Resourcen-Hacker und der XN-Resource-Editor zeigen das nicht an. Mit diesem Minitool lassen sich alle Resourcen in Hexform anzeigen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 13.11.2010, 23:14   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Bug entfernt. Ist wohl fertig jetzt.
http://frabbing.bplaced.net/FResEditor.zip
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 14.11.2010, 22:47   #8 (Direktlink)
Ist öfter hier
 
Benutzerbild von GAST-0815
 
Registriert seit: 12.10.2009
Ort: Berlin
Alter: 48
Beiträge: 52
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Erweitert und für alle testbar als ausführbare Datei: http://frabbing.bplaced.net/FResEditor.zip
Hi Frabbing,
es ist eine gute Idee, kann dieses aber leider nicht probieren da dein CODE erst ab XProfan 11.XX läuft. Benutze XPofan 10.
Auch dein letzter link meldet mir :



MFG
__________________
Ubuntu 10.04 LTS 64 , Win XP-Prof. SP3 , Win 7 Ultimate 32 ,XProfan 10,XProfan 11Free
GAST-0815 ist offline   Mit Zitat antworten
Alt 15.11.2010, 06:39   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Ahrg, ist nur (m)eine Testcode-Zeile, damit ich nicht bei jedem Start den Load-Dialog erhalte. Hab das mal aus dem Code rausgenommen.

Anpassung an XProfan 10 sollte auch leicht sein. Einfach die Vars rausnehmen und stattdessen diese Variablen mit Declare zuweisen.
Oder waren die Callbacks erst ab XProfan 11? Ne, glaube nicht.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Helfer & Tools

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Resourcen: Schickere Icons und Toolbar-Bitmap(s) Frabbing Anregungen & Bugreports 75 06.11.2010 19:57
Wenn Hacker Hacker hacken Info Sicherheitsmeldungen von heise.de 0 26.07.2010 17:30
Raubt Vista Resourcen für Spiele? Lässie Windows Vista 2 18.11.2006 19:29
Vom Notebook aus über Netzwerk die Resourcen des PC´s nutzen buddha Netzwerke 1 17.02.2003 09:41
startcenter -> ungenügend resourcen krapfen_de Software - Allgemein 2 14.01.2003 13:38



Alle Zeitangaben in WEZ +2. Es ist jetzt 16:46 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2