Schrift
[thread]7240[/thread]

Win32::GuiTest: SendKeys auch für background

Leser: 1


<< >> 6 Einträge, 1 Seite
jan
 2005-08-28 18:52
#57497 #57497
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
ist es eigentlich möglich, mit Win32::GuiTest auch keys an fenster zu senden, die _nicht_ im vordergrund sind?

ich bin recht unerfahren, was den umgang mit den windowhandles und so führt, und habe in den beispielen nichts gefunden, was mir hilft.
falls es so nicht geht - andere keys an fenster im bg zu senden?
esskar
 2005-08-28 19:47
#57498 #57498
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
eigentlich kann man an jedes fenster schicken, egal ob sichtbar oder nicht.
man muss nur ein Handle des fensters haben.
was willst du tun?
code?
jan
 2005-08-28 22:53
#57499 #57499
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
naja, mag sein, dass man nur das handle haben muss, aber sendkeys sendet meinen tests nach immer an das aktive fenster und nimmt laut doku auch nur einen parameter, nämlich, wie lang der delay zwischen den gesendeten eingaben sein soll. ich will eingaben an ein fenster schicken, dass im hintergrund (=nicht aktiv) ist.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
  use Win32::GuiTest qw(FindWindowLike GetWindowText 
SetForegroundWindow SendKeys);

$Win32::GuiTest::debug = 0; # Set to "1" to enable verbose mode

my @windows = FindWindowLike(0, "^Microsoft Excel", "^XLMAIN\$");
for (@windows) {
print "$_>\t'", GetWindowText($_), "'\n";
SetForegroundWindow($_);
SendKeys("%fn~a{TAB}b{TAB}{BS}{DOWN}");
}


und den schritt
Code: (dl )
      SetForegroundWindow($_);


würde ich mir gerne ersparen und trotzdem an das entsprechende fenster schicken können...
esskar
 2005-08-29 02:52
#57500 #57500
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm;
stimmt; hab mir gerade mal den code angesehen.
die funktion verwendet die Funktion keybd_event
dadurch kommst du nicht an SetForegroundWindow nicht vorbei!
jan
 2005-08-29 03:33
#57501 #57501
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
gibt es einen anderen weg, sendkeys oder ein äquivalent von perl aus unter win32 zu benutzen, der das nicht benötigt?
esskar
 2005-08-29 03:58
#57502 #57502
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
du kannst versuchen, mit Win32::API, die user32.dll zu wrappen...

du musst die SendMessage funktion benutzen, und dann WM_KEYDOWN und WM_KEYUP schicken
<< >> 6 Einträge, 1 Seite



View all threads created 2005-08-28 18:52.