-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
11. Aug 2009
ja, stimmt schon, irgendwann reicht es dann auch.
Ich werde bewerkstelligen, das man diese externen Programme auch aus meiner Anwendung heraus starten kann und den Start aus dem Modul heraus verhindern. Das ist, glaube ich, der einfachste und zugleich sicherste Weg. Mit diesem Modul gibt es nichts außer Probleme. Ich zweifel schon bald an mir selbst :(, nichts der StandardWindows-Funktionen...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
11. Aug 2009
Nein, so ist es leider nicht. Ich habe nur die für mich relevante Funktionalität aufgezeigt. Das ganze ist schon ein komplizierte Datenbankanwendung mit Multiuserfunktionalität. Mit selbt schreiben ist da leider nichts.
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
11. Aug 2009
Das ist eine Art CRM-Modul, was man dahingehend bearbeiten kann, daß es auch andere Programme öffnen und ausführen kann. Und das ist dann auch der für mich wichtige Teil, die Abarbeitung der externen Programme in meiner Taskbar. Dieses Modul minimiert sich beim Öffnen eines externen Programmes und ist disabled oder zumindest unsichtbar. Wird das externe programm beendet, wird dann auch...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
11. Aug 2009
Guten Morgen,
und ich dachte eben, da es ja trotzdem um das gleiche Ausgangsthema ist, überfulte ich das Forum nicht jedes mal mit einem neu eröffneten Thema. Vielleicht kann das ja ein Moderator richten, wenn er meint daß das besser ist.
Nein, genau das ist mein Problem. Diese Taskbar ist von mir, und die möglichen Endprogramme. Das Programm, was sich aus der Taskbar öffnen lässt, ist eben...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
10. Aug 2009
Und noch ein Punkt:
Habe ich irgendwie die Möglichkeit herauszufinden, welches Programm ein anderes gestartet hat? Wenn ein externes Programm ein anderes externes Programm startet, dann läuft das ja nicht mehr über ChildHandle, oder doch?
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
7. Aug 2009
Was mache ich, wenn SetForegroundWindow(handle) True zurückliefert, obwohl es zur zeit gar kein Fenster des Handles gibt, was in den Vordergrund gesetzt werden kann? Wieso wird trotzdem True zurückgegeben? So wird mir doch jegliche Möglichkeit der Auswertung genommen.
Der Grund ist ein 2. geöffnetes externes Programm das 1. externen Programmes, welches ich aus meiner "Taskleiste" heraus...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
6. Aug 2009
Oh, jetzt wo du es sagst, da habe ich doch wirklich das "t" überlesen *g*.
Na dann danke schön für die Optimierung :).
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
6. Aug 2009
Ok, dann warte ich so lange^^.
Ist es eigentlich egal, ob man THandle oder HWND vereinbart?
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
6. Aug 2009
Endlich funktioniert mal etwas und liefert mir sogar die passenden Handle zurück. Kann ich das noch irgendwie optimieren?
function TFormMainDlg.getTWHandle: HWND;
var
tmpTW: HWND;
begin
Result := 0;
tmpTW := FindWindowEx(0, 0, 'abc', 'xyz');
if (tmpTW = 0) then Exit;
if (tmpTW = twH1) then begin
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
5. Aug 2009
Eine Frage:
ich arbeite nun mit der EnumWindowsUnit, wie von mir schon verlinkt.
Nun kommt es vor, das ein externes Programm wiederum ein anderes externes Programm startet. Ist das der Fall, sieht man zwar in der Windows-Taskleiste unten noch den Eintrag, dieser ist aber disabled, bei einem Klick passiert nichts.
EnumWindows bzw. EnumTopLevelWindows aus der Unit kann dieses Fenster...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
5. Aug 2009
Der Fehler liegt bei mir :? .
Durch das Probieren mit EnumWindows bin ich drauf gekommen, daß die Handle schon noch existieren, FindWindowsEx jedoch 0 zurückliefern muß, da ich ja immer noch bei der Suche nach dem speziellen Fenstername gesucht habe. Nehme ich den raus, wird das Handle gefunden, auch wenn ein anderes Fenster aktiv ist bzw. ein Unterpgrogramm und der Timer kann nun...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
5. Aug 2009
Danke, zusätzlich konnte ich noch EnumWindows & Co gekapselt finden. Das sollte weiter helfen.
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
5. Aug 2009
Ich hoffe ich nerve nicht :(, aber die Probleme gehen weiter.
Leider konnte ich im Netz nichts finden. Gibt es eine einfache Möglichkeit, alle Fensterhandle zu ermitteln und z.B. in einer TStringList zu speichern?
ich habe große Probleme, nach dem Fensterhandle zu suchen, wenn das Programmfenster des externen Programmes minimiert ist, das Hauptprogramm mit den Buttons den Fokus hat oder...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
4. Aug 2009
Ok, danke für deine Hilfe und die ausführlichen Erklärungen! :)
So wie du es beschrieben hast, funktioniert das Ganze sehr gut. Ich kann so nun alle 3 Programme bestimmen und die maximale Anzahl der Programme trotzdem auf 3 beschränken. Nun geht es an das in den Vordergrund holen der haupt- bzw. geöffneten Unterfenster.
Ich danke dir für deine Hilfe!
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
3. Aug 2009
So langsam steige ich durch dieses Handle-Thema.
Würde in diesem Fall nicht auch FindWindow ausreichen, was mir ja das Handle zurückliefert? Gibt das alle gefundenen Handle zurück oder nur das zuerst gefunde?
Mit FindWindowEx kann ich ein spezielles Fenster bzw. Handle suchen, wenn ich das richtig verstehe. Allerdings funktioniert das bei mir auch noch nicht so recht.
Das Handle bekomme...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
3. Aug 2009
Doch, du hast Recht. Das wäre durchaus machbar. Das ist dann genau das Prinzip, was ich anfangs ansetzten wollte, nun aber mit dem Handle.
Da mir jedoch im Laufe der Überlegungen und Nachforschungen noch die 2. Variante ins Auge gefallen ist, ist jetzt die Frage, welche der beiden Varianten die bessere bzw. elegantere Lösung ist. Suche ich nach dem Start nach einem Handle, vergleiche,...
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
31. Jul 2009
Das ich die PID unbedingt benötige, davon bin ich noch heut morgen ausgegangen, siehe erste Zeilen meines Beitrages, da ich die Exe-Datei mittels ShellExecute starte. Da jedoch 3 mal das gleiche Programm gestartet wird, nützt mir da ein Fesnter-Handle nicht so viel. Deswegen meine Lösungsansätze.
-
Forum: Win32/Win64 API (native code)
Delphi
by LokutusvB,
31. Jul 2009
Guten Morgen,
ich habe ein Programm geschrieben, mit dem ich einfach mittels
wh := ExecuteFile(xdir+EXE_NAME, '', xdir);
ein anderes Programm starte. Durch eine Auswertung prüfe ich, wie oft das Programm gestartet wurde und lasse so 3 gleichzeitige Instanzen zu. Das passiert zur Zeit über nur einen Button. Nun möchte ich das Programm ähnlich wie die Taskleiste gestalten. Es soll nun 3...