kostenloser Webspace werbefrei: lima-city


Programmabläufe Automatisieren

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    HOI,
    also ich würde gerne in c++ programmabläufe für windows automatisieren, sprich ich will nen feld z.B. von einem Programm auslesen und dann entsprechend vom wert optionen in dem Programm aktiviern oder deaktiviern (sind check boxen) ....
    wie kann ich so was machen ???

    danke schon mal für die Antwort

    cya
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Wenn du Programmabläufe automatisieren willst, warum benutzt du dann kein Scriptprogramm wie AutoIt?
    Ist bestimmt einfacher, als es per Hand in C++ zu schreiben.
  4. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    hab bei dem teil leider keine funktion gefunden womit ich die werte z.b aus einem feld auslesen kann
    und des kann ich halt mit c ++ schon machen wenn ich direkt in aus dem speicher eines programms lese ....
    cya
  5. thunderlord schrieb:
    hab bei dem teil leider keine funktion gefunden womit ich die werte z.b aus einem feld auslesen kann
    und des kann ich halt mit c ++ schon machen wenn ich direkt in aus dem speicher eines programms lese ....
    cya


    ja, dann suche mal schön im Seicher nach den Werten... natürlich kannst du das machen...

    und da das Programm immer neu in den Speicher geladen wird, kannst du immer neu nach den Positionen suchen ;-)

    von daher ist dein Vorhaben aussichtslos... selbst wenn du es fertigbringst, die struktur der Daten im RAM zu ermitteln, bis dahin waren 3 neue Programmversionen da und du kannst von Vorne beginnen... -.-

    was denkst du, wie die Daten im RAM gespeichert sind? dnekst du, du gibst den Objektnamen an und bekommst die dazugehörige Nummer???

    was denkst du, warum so wenige was mit den Bluescreen-Medlungen anfangen können, in denen meist 20-Zeichen Lange Hex-Zahlen stehen? Weil eben nciht dahinter steht, welchem Element, ja nicht mal welchem Prozess dieser Wert zugeordnet wird... du bekommst über den Prozess raus, welche Werte ihm zugeordnet sind, aber das sind dann nur hintereinandergelistete werte... -.-
  6. kannst du auch mit autoit
    was du auslesen willst musst du mit dem fokus makieren
    und dann mit read oder get den wert holen
  7. kannst du auch mit autoit
    was du auslesen willst musst du mit dem fokus makieren
    und dann mit read oder get den wert holen

    Ja, ein bisschen googlen vorher schadet nicht....dann hättest du auch die vollständige Dokumentation zu allen Befehlen gefunden.
    Klick ma einfach auf den Link, den ich oben schon gepostet hab, thunder. :wink:

    Beitrag zuletzt geändert: 18.3.2010 18:22:29 von adelwoehrer
  8. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    Ok sorry das mit autoit habe ich nicht gewusst.... habe dazu irgend wann mal in der c't nen bericht dazu gelesen und dann selber damit herumprobiert und hab nicht in der richtung dazu gelesen.. JJJJAAAAAAAAAA JJJJAAAAAAAAA mein fehler ^^ :biggrin:

    Hab jetzt mal mit den tutorials angefangen und wie ich sehen schickt autoit die befehle direkt an das programm oder ???
    sprich ich könnte des zu automatisierende programm auch im minimierten modus laufen lassen oder ???

    cya
  9. Ja, aber nur mit einem kleinen Zusatzbefehl, damit er sämtliche vom User getätigte Eingaben ignoriert.
    Dann läuft das Script auch unabhängig im Hintergrund.

    Den Befehl solltest du im Tutorial finden....ich werd ihn auch mal suchen. =)


    EDIT: Der Befehl lautet: BlockInput(1)
    Damit werden sämtliche Eingaben des Benutzers wie gesagt ignoriert.
    Um die Funktion wieder auszuschalten, verwende einfach BlockInput(0).

    schickt autoit die befehle direkt an das programm oder ???

    Ich glaube, mit dem send-Befehl nicht....da simuliert er bloß Tastendrücke, als wenn du sie auf der Tastatur eingegeben hättest.
    Es gibt aber bestimmt auch Möglichkeiten, das Programm direkt anzusprechen.

    Beitrag zuletzt geändert: 22.3.2010 10:38:34 von adelwoehrer
  10. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    bin noch nicht mit dem ganzen tutorial durch, sorry wenn also die frage bischen unnötig war. und danke für deine schnelle antwort.
    und die andere geschichte was ich noch nicht so wirklich gefundne habe, autoit ist ja wie ne programmiersprache auftgebaut, hab ich da nen interface zur pc hardware oder so was das ich z.b. lpt oder auf com in mein script einbauen kann um so dateneingaben vom rs232 protokoll zu nutzen ???

    cya
  11. Ja, geht auch.
    Auf Hardware kann zugegriffen werden....sofern du den richtigen Befehl dazu findest.
    Hier mal ein Code-Schnipsel, das ein paar Sachen ausliest....einfach mal in ne Textdatei (oder wenn du Scite hast da rein) und mit AutoIt ausführen.
    Das selbe gibts bestimmt auch für deine Verwendungszwecke.
    #Include <Constants.au3>
    
    Dim $strComputer, $objWMIService
    Const $wbemFlagReturnImmediately = 0x10
    Const $wbemFlagForwardOnly = 0x20
    
    $strComputer = inputbox( "Please enter the name of the computer you want", "Input","localhost")
    $objWMIService = ObjGet("winmgmts:{(RemoteShutdown)}//" & $strComputer & "\root\CIMV2")
    
    _Read_BioS()
    _Read_CPU()
    _Read_OS()
    _Read_OS_Inst()
    _Read_DriveInfo()
    
    Func _Read_BioS()
    Local $colItems = ""
      $colItems = $objWMIService.ExecQuery("Select * from Win32_BIOS")
    
       For $objItem in $colItems
         Local $item = $objItem.SerialNumber
            MsgBox(0,'Output','Bios Serial #: ' & $Item)
       Next
    EndFunc
    
    Func _Read_CPU()
    Local $colItems = ""
      $colItems = $objWMIService.ExecQuery("Select * from Win32_Processor")
    
       For $objItem in $colItems
         Local $item = $objItem.Name
            MsgBox(0,'Output','CPU Type: ' & $Item)
       Next
    EndFunc
    
    Func _Read_OS()
    Local $colItems = ""
      $colItems = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    
       For $objItem in $colItems
         Local $item = $objItem.SerialNumber
            MsgBox(0,'Output','OS Serial #: ' & $Item)
       Next
    EndFunc
    
    Func _Read_OS_Inst()
    Local $colItems = ""
      $colItems = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    
       For $objItem in $colItems
         Local $date = $objItem.InstallDate
    
        $CDate = (StringMid($Date, 5, 2) & "/" & _
            StringMid($Date, 7, 2) & "/" & StringLeft($Date, 4) _
                & " " & StringMid ($Date, 9, 2) & ":" & _
                    StringMid($Date, 11, 2) & ":" & StringMid($Date, _
                        13, 2))
        MsgBox(0,'Output','Install Date/Time #: ' & $CDate)
        Next
    EndFunc
    
    Func _Read_DriveInfo()
        Local $colItems = ""
        $colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_DiskDrive", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
        For $objItem in $colItems
         Local $item = $objItem.Model
            MsgBox(0,'Output','Drive Model : ' & $Item)
            Local $item = $objItem.Signature
            MsgBox(0,'Output','Drive Signature : ' & $Item)
         Next
    EndFunc

    Viel mehr kann ich dann aber auch nicht mehr helfen.
    Für solche Sachen hatte ich bisher noch nie ne Verwendung....ich routiniere eher Installationen für Firmen damit.

    Beitrag zuletzt geändert: 22.3.2010 19:14:17 von adelwoehrer
  12. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    Ich will ein Kind von dir ^^


    Weist du noch wo du das her hast???
    cya
  13. Weist du noch wo du das her hast???

    Den Beispielcode da oben hab ich vom AutoIt-Forum.
    Währe wohl die erstbeste Anlaufstelle für dich.
    Ansonsten liefert auch google sehr gute Ergebnisse durch Eingabe der Wörter "AutoIt" und "Hardware". :wink:
  14. Autor dieses Themas

    thunderlord

    thunderlord hat kostenlosen Webspace.

    Bin im Forum schon angemeldet, aber ist nen bischen unübersichtlich wenn ich nicht so richtig den plan hab wonach ich suchen muss ^^
    cya
  15. everydaynormalguy

    everydaynormalguy hat kostenlosen Webspace.

    Hi,
    Wenn Du unter windows mit cpp programmierst,
    probiers mal mit "windows.h"

    #include <windows.h>
    ...

    // cusor position setzen (x und y beziehen sich auf obere linke ecke)
    SetCursorPos(100,100);

    // click links
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

    viel spaß


  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!