timothy: Wie Mauszeiger mit Perl unter WIN98 bewegen

Hi Folks,
fein, daß das Forum wieder  offen ist. Deshalb auch hier gleich eine Frage:

Weiß jemand, wie man unter WIN98 mit Perl (kann aber auch C++ oder Turbo-Pascal sein) den Mauszeiger positioniert?
Also: welcher Interrupt ist dafür verantwortlich? In welche Register setzt man die gewünschten Werte? Und wie macht man dies mit z.B. Perl (Interrupt ansprechen mit Register-wert-Übergabe)?

Danke für Eure Bemühungen

Bye
Timothy

  1. hi!

    Weiß jemand, wie man unter WIN98 mit Perl (kann aber auch C++ oder Turbo-Pascal sein) den
    Mauszeiger positioniert?
    Also: welcher Interrupt ist dafür verantwortlich? In welche Register setzt man die gewünschten Werte?
    Und wie macht man dies mit z.B. Perl (Interrupt ansprechen mit Register-wert-Übergabe)?

    Interrupt? Register? Du lebst wohl noch in der Steinzeit ;) Windows wird dir schön was erzählen, wenn du
    versuchst, Interrupts zu verändern. Kommunikation von Programmen, zb. mit der Benutzerschnittstelle von
    Windows, finden höchstens über die WINAPI statt. Es gibt Perl-Module, um auf die WINAPI-Funktionen
    zuzugreifen (keine Ahnung, ob damit alle Funktionen verfügbar sind):
      ftp://ftp.gmd.de/packages/CPAN//modules/by-category/22_Microsoft_Windows_Modules/Win32API/

    Eine passende WINAPI-Funktion für die Steuerung der Maus kenne ich leider nicht. Aber im Microsoft
    Developer Network dürfte es eine Referenz der WINAPI geben:
      http://www.microsoft.com/developer/

    bye, Frank!

    1. Moin!

      Eine passende WINAPI-Funktion für die Steuerung der Maus kenne ich leider nicht. Aber im Microsoft

      Nun, sowas wie SetCursorPos wuerde mir als naheliegend erscheinen. Zitat aus der Platform SDK documentation (oder wie auch immer das richtig heisst):

      SetCursorPos

      The SetCursorPos function moves the cursor to the specified screen coordinates. If the new coordinates are not within the screen rectangle set by the most recent ClipCursor function, Windows automatically adjusts the coordinates so that the cursor stays within the rectangle.

      BOOL SetCursorPos(
          int X,  // horizontal position
          int Y   // vertical position
      );

      Parameters

      X
      Specifies the new x-coordinate, in screen coordinates, of the cursor.

      Y
      Specifies the new y-coordinate, in screen coordinates, of the cursor.

      Return Values

      If the function succeeds, the return value is nonzero.
      If the function fails, the return value is zero. To get extended error information, call GetLastError.

      Remarks

      The cursor is a shared resource. A window should move the cursor only when the cursor is in its client area.
      The calling process must have WINSTA_WRITEATTRIBUTES access to the window station.

      See Also

      ClipCursor, GetCursorPos, SetCaretPos, SetCursor, ShowCursor
      <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

      Ob man mit Perlmodulen auf diese Funktion zugreifen kann, bezweifel ich mal (wozu denn?), aber spaetestens mit C und den entsprechenden Libs geht's.

      So long

      1. Hi Calocybe,

        das SDK muß man sich zusätzlich besorgen (ist bei keinem MS -C - Compiler dabei denke ich mal) , oder?

        Habe mit C (eigentlich C++) gerade erst angefangen.
        Weißt du näheres zum SDK?

        Danke
        Timothy

    2. Interrupt? Register? Du lebst wohl noch in der Steinzeit ;)

      Oh oh - da hast du wohl irgendwie Recht.
      Ende der 80er habe ich mit TurboPascal an den Interrupts "rumgeschraubt". Seitdem nichts mehr.

      »»Kommunikation von Programmen, zb. mit der Benutzerschnittstelle von

      Windows, finden höchstens über die WINAPI statt. Es gibt Perl-Module, um auf die WINAPI-Funktionen
      zuzugreifen (keine Ahnung, ob damit alle Funktionen verfügbar sind):

      Na, da werde ich mich wohl noch einmal auf den Hosenboden setzen.
      Danke für deine Hinweis - und einen schönen Tag noch.

      Bye
      Timothy