Unerfahren und wissbegierig... (Zugriff auf 3rd-parties)



  • Hallo zusammen,
    ich habe ein Problem dessen Lösung in c oder c++ zu liegen scheint; habe davon aber keine Ahnung... Sehr wohl sind mir loops und diverse andere Dinge aus php, bzw. sql bekannt, in c kenne ich mich aber nicht aus.

    Folgendes hätte ich gerne maschinell erledigt:
    - Zyklisches(nicht periodisches) klicken mit der linken Maustaste auf einem bestimmten Pixelbereich
    - Prüfen ob sich darauf hin eine Variable ändert(dies ginge sogar grafisch; also ebenfalls ein Pixelbereich der mit dem Vorangegangenen verglichen wird. Es müsste kein Wert geprüft werden)
    - Wenn sich die Variable verändert: Linksklick auf einen bestimmten Pixelbereich danach 2 mal bestätigen(also enter) klicken (diesen Vorgang in kurzen, d.h. z.B. 0,001-0,005 Sekunden, zyklischen Zeitintervallen ein paar mal wiederholen. Sagen wir 7-10mal; die intervalle dürfen nicht gleich lang sein. "Randoms between" wären super.)

    Dann das ganze von vorne, also

    enum SystemMetric{
      SM_CXSCREEN = 0,
      SM_CYSCREEN = 1,
    }
    
    [DllImport("user32.dll")]
    static extern int GetSystemMetrics(SystemMetric smIndex);
    
    int CalculateAbsoluteCoordinateX(int x){
      return (x * 65536) / GetSystemMetrics(SystemMetric.SM_CXSCREEN);
    }
    
    int CalculateAbsoluteCoordinateY(int y){
      return (y * 65536) / GetSystemMetrics(SystemMetric.SM_CYSCREEN);
    }
    
    public static void ClickLeftMouseButton(int x, int y){
      INPUT mouseInput = new INPUT();
      mouseInput.type = SendInputEventType.InputMouse;
      mouseInput.mkhi.mi.dx = CalculateAbsoluteCoordinateX(x);
      mouseInput.mkhi.mi.dy = CalculateAbsoluteCoordinateY(y);
      mouseInput.mkhi.mi.mouseData = 0;                     
      mouseInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_MOVE |MouseEventFlags.MOUSEEVENTF_ABSOLUTE;
      SendInput(1, ref mouseInput, Marshal.SizeOf(new INPUT()));
    
      mouseInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_LEFTDOWN;
      SendInput(1, ref mouseInput, Marshal.SizeOf(new INPUT()));
    
      mouseInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_LEFTUP;
      SendInput(1, ref mouseInput, Marshal.SizeOf(new INPUT()));            
    } 
    
    int main(){
       for(int i = 0; i <= 5; ++i){
          $x=array($current, $new);
          foreach ($x as $value){
             if ($value != $current){
    
                UINT WINAPI SendInput(
                _In_  UINT nInputs,
                _In_  LPINPUT pInputs,
                _In_  int cbSize
                );
                int sub_main_a(){
                   UINT WINAPI SendInput(VK_EXECUTE);
                Sleep(500);
                }
                int sub_main_b(){
                   UINT WINAPI SendInput(VK_EXECUTE);
                Sleep(500);
                }
                // Linksklick auf einen bestimmten Pixelbereich danach 2 mal bestätigen(also enter) klicken (diesen Vorgang in kurzen, d.h. z.B. 0,001-0,005 Sekunden(Random), zyklischen Zeitintervallen ein paar mal wiederholen. Sagen wir 7-10mal(Random)
                $new = $current;
             }
          }
       }
    Sleep(2000);
    }
    

    Auch der Sleep wäre hilfreich als Random 😃

    Wie gesagt, habe keine Ahnung von c++, das hier ist ein unbrauchbarer PHP-C++(sleep)Code-Mix. Soll nur veranschaulichern was ich so in etwa vor habe. Ach ja, eine start/stop-Funktion per Tastenkombination müsste da auch bei sein.

    Benötige Hilfe für den Ansatz.

    MfG,
    afs



  • Schau dir am besten AutoIT o.Ä. an, da musste nicht viel können um so etwas zu programmieren.

    €: Oder du lernst gescheit C++, wobei ich nicht glaube, dass du das bezweckst.


Anmelden zum Antworten