| |
|
|
Julian Schmidt | Ciao, ich versuche gerade dem Hauptfenster, eines von mir erstellten Prozesses, aus dem "Standart-Prozess", den Fokus zuzuweisen. Das funktioniert leider nicht so, wie ich es gerne hätte.
Momentan tue ich einfach per Filemap das Handel des Hauptfensters des Prozesses übertragen und dann per Setactivewindow anfokussieren. Daraufhin folgt eines Fehlermeldung (pro Prozess). Warum funktioniert es nicht, wie von mir angedacht? Kann man überhaupt auf Controls von anderen Prozessen zugreifen? Wenn Ja, wie geht es richtig?
declare prozess_id&
Windowstyle 24
Windowtitle "Hauptfenster"
Window 400,400,200,100
cls RGB(0,255,0)
print "Enter um in den Prozess zu wechseln"
StartProzess()
Usermessages 16
var hfm& = Filemap("Open", "Daten")
var daten& = Filemap("Map", hfm&)
whilenot ((%umessage=16) or iskey(27))
waitinput 30
case iskey(13) : SetActiveWindow(long(daten&,4*0))'Enter betätigt
endwhile
Process("Kill", prozess_id&, 0)
Filemap("Close", hfm&)
end
Proc StartProzess
prozess_id&=pExec("|Prozess")
Proc Prozess
var hfm& = Filemap("Open", "Daten")
var daten& = Filemap("Map", hfm&)
Windowstyle 24
Window 100,100-300,200
cls RGB(255,0,255)
long daten&, 4*0 = %hwnd
whilenot (%key=2)
waitinput
Endwhile
Filemap("Close", hfm&)
Endproc
EndProc
|
|
|
| |
|
|
|
| Schau: [...] Activates a window. The window must be attached to the calling thread's message queue.
Dies ist hier nicht der Fall.
Probiere SetForegroundWindow : [...] und schaue auf die Remarks. |
|
|
| |
|
|
|
Julian Schmidt | Funktioniert leider immernoch nicht wie gewollt.
declare prozess_id&
Windowstyle 24
Windowtitle "Hauptfenster"
Window 400,400,200,100
cls RGB(0,255,0)
print "Enter um in den Prozess zu wechseln"
StartProzess()
Usermessages 16
var hfm& = Filemap("Open", "Comm")
var pcomm& = Filemap("Map", hfm&)
whilenot ((%umessage=16) or iskey(27))
waitinput 30
case iskey(13) : External("User32","SetForegroundWindow",long(pcomm&,(4*0)))'SetActiveWindow(long(daten&,4*0))'Enter betätigt
endwhile
Process("Kill", prozess_id&, 0)
Filemap("Close", hfm&)
end
Proc StartProzess
prozess_id&=pExec("|Prozess")
Proc Prozess
var hfm& = Filemap("Open", "Comm")
var pcomm& = Filemap("Map", hfm&)
Windowstyle 24
Window 100,100-300,200
cls RGB(255,0,255)
long pcomm&, (4*0) = %hwnd
whilenot (%key=2)
waitinput
Endwhile
Filemap("Close", hfm&)
Endproc
EndProc
Soll "There is no foreground process." aus [...] (siehe Remarks) heißen dass, ich erst denn Standart-Prozess ausblenden muss, bevor Io l' neuen Prozess den Fokus zuteilen kann? |
|
|
| |
|
|
|
Julian Schmidt | Es funktioniert auch mit SetActiveWindow! Ich hatte einen Fehler im Code, diesen habe ihn nun entfernt und jetzt corre es....
declare prozess_id&
Windowstyle 24
Windowtitle "Hauptfenster"
Window 400,400,200,100
cls RGB(0,255,0)
print "Enter um in den Prozess zu wechseln"
StartProzess()
Usermessages 16
var hfm& = create("Filemap", "Comm", 36)
var comm& = Filemap("Map", hfm&)
whilenot ((%umessage=16) or iskey(27))
waitinput 30
case iskey(13) : SetactiveWindow(long(comm&,0))'Enter betätigt
endwhile
Process("Kill", prozess_id&, 0)
Filemap("Close", hfm&)
end
Proc StartProzess
prozess_id&=pExec("|Prozess")
Proc Prozess
Windowstyle 24
Window 100,100-300,200
cls RGB(255,0,255)
var hfm& = Filemap("Open", "Comm")
var pcomm& = Filemap("Map", hfm&)
long pcomm&,0=%hwnd
whilenot (%key=2)
waitinput 30
Endwhile
Filemap("Close", hfm&)
Endproc
EndProc
|
|
|
| |
|
|