| |
|
|
Nico Madysa | OK, folgendes:
Ich habe vor Kurzem meinem Programm eine kleine ListBox hinzu gefügt. In Ihr sollen alle EXEn (vornehmlich Zusatztools zu meinem Programm) im selben Ordner wie mein Programm angezeigt werden. Wählt man eine EXE aus, wird daneben ihr Logo und eine kurze Beschreibung angezeigt. Bilder und Strings sind als Ressourcen in den EXEn eingelagert. Nun das Problem:
Bei Draufklick rufe ich das entsprechende Programm mit WinExec auf, erhalte sein Instanzhandle und ziehe mit Create(hPic) und ExtString$() die Sachen raus, die ich brauch. Das Problem: Es kamen weder Bild noch String. Ich probierte die Sache im entsprechenden Programm selbst mit %hInstance - Bild und String kamen.
Meine Frage nun: Kann es sein, dass WinExec gar kein Instanzhandle zurück liefert? Und wenn nicht, wie krieg ich es dann? |
|
|
| |
|
|
|
Rolf Koch | Du hast Dir die Frage mit dem Instancehandle bereits beantwortet und wurde sogar hier schon öfters beschrieben: Winexec liefert nur den Fehlercode zurück |
|
|
| |
|
|
|
| [quote:e25ce0ab4c=Nico Madysa] Meine Frage nun: Kann es sein, dass WinExec gar kein Instanzhandle zurück liefert? Und wenn nicht, wie krieg ich es dann?[/quote:e25ce0ab4c] So ist es. So funktioniert das nicht! Das Instanzhandle der Anwendung ist das Handle des Prozesserzeugenden Moduls im jeweiligen Prozess.
Schau dir mal die API LoadLibraryEx an, die hilft dir weiter. TNT dürfte da ebenfalls gut für dich sein, damit du die Angelegenheit verstehst.. |
|
|
| |
|
|
|
| UseDLL sollte funktionieren, einfach die Exe anstatt einer DLL angeben. Das Ergebnis kannste nutzen, habs mit Profan jetzt nicht getestet, aber falls es nicht geht, nutze die ~LoadLibraryA API |
|
|
| |
|
|
|
Nico Madysa | @A. Hötker: TNT ist definitiv nichts für mich, allerdings nicht aus Abneigung, sonern weil ich Windows ME hab.
@A. Hötker und TS-Soft: Danke für die schnelle Antwort. Sollte UseDLL nicht funktionieren, werde ich die API probieren. (Hehe, das reimt sich.) |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Nico Madysa | OK, Danke, probier ich. |
|
|
| |
|
|
|
| [quote:c0fd4ace4f=Nico Madysa]@A. Hötker: TNT ist definitiv nichts für mich, allerdings nicht aus Abneigung, sonern weil ich Windows ME hab. [/quote:c0fd4ace4f] Einige Funktionen (wie z.B. das Scannen von Prozessspeicher fremder Prozesse oder die Taskmannagerfunktionen) laufen auch unter ME. |
|
|
| |
|
|
|
Nico Madysa | Ach so , wieder was gelernt. Mal sehen, ob ich da was für mich Interessantes finden werde. |
|
|
| |
|
|
|
Nico Madysa | OK, danke an alle, das Problem ist auch für API-Fürchter wie mich einfach geklärt.
Man muss nicht auf LoadLibraryEx zugreifen, UseDLL geht auch. (Ich hatte das Problem fast vergessen, da hatte ich bei nem LoadFile-Dialog aus Versehen ne EXE gewählt und die dann mir UseDLL geöffnet, funktioniert ohne Fehler). |
|
|
| |
|
|
|
| Naja, Andreas hat eine vorliebe fürs Komplizierte |
|
|
| |
|
|
|
| [quote:1fc9eb0811=TS-Soft]Naja, Andreas hat eine vorliebe fürs Komplizierte [/quote:1fc9eb0811] Kann ich von mir nicht behaupten - eher im Gegenteil. Ich habe bloß ganz gerne immer etwas mehr Möglichkeiten als der Rest der Menschheit Versuch mal mit Usedll unter XP die User32 von Windows98 zu laden - und dann mach das mal mit LoadLibraryEx .
|
|
|
| |
|
|