Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
22. Jan 2010
Ja, habe alle 12 SW_ Optionen versucht. Wenn eine Anwendung das Messaging über ein unsichtbares Fenster macht (wie Firefox) werden alle SW_ Direktiven ignoriert.
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
Neuer Versuch:
WndBefore := GetForeGroundWindow;
if CreateProcess(nil,
PChar('c:\program files\mozilla firefox\firefox.exe -new-tab http://www.google.de'),
nil,
nil,
FALSE,
NORMAL_PRIORITY_CLASS,
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
LockSetForegroundWindow() hilft leider auch nicht.
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
Nach zwei Stunden mehr googlen stellt sich heraus dass dieses Problem auftritt, wenn man Programme startet die ein verstecktes Message Fenster haben. Sie ignorieren dann alle SW_ switches von CreateProcess() oder ShellExecute(). Eine Lösung hab ich jedoch nicht gefunden.
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
Um genauer zu erklären wieso SetForeGroundWindow() hier nicht zuverlässig funktioniert. FirefoxMessageWindow schnappt sich den Fokus nicht sofort nach CreateProcess(), sondern etwas später. Ich muss deshalb Polling betreiben um zu schauen wann das passiert und den Fokus rücksetzen. Das passiert aber mit einer minimalen Verzögerung, wodurch z.B. beim Tippen von Text ein Buchstab verloren gehen...
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
Diesen Hack hab ich zuvor versucht. Er hat aber leider zwei böse Nebeneffekte.
1. Ist man zu der Zeit als CreateProcess() passiert dabei einen Text (z.B. in einem Texteditor) zu schreiben, dann kann es passieren (nicht immer, aber mehrmals gehabt) dass ein Buchstabe dabei verlorengeht.
2. Launche ich mehrere URLs nacheinander und der User will in der Zwischenzeit (so lange die Webseiten...
Forum: Win32/Win64 API (native code)
Delphi
by Shark99,
21. Jan 2010
Hi!
ich versuche mit CreateProcess einen neuen Tab in Firefox zu öffnen.
Firefox befindet sich schon im Speicher.
Ich habe dabei das Problem dass meine Anwendung den Fokus verliert, dieser landet aber nicht etwa bei Firefox.
Zuerst habe ich Firefox so konfiguriert dass es neue Tabs im Hintergrund starten soll: