tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1858
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    popelmaster popelmaster ist offline Mitglied Bronze
    Registriert seit
    Sep 2003
    Ort
    Dresden
    Beiträge
    29
    ok also mein ziel ist es ein Programm zu schreiben was im Hintergrundläuft und sich auf einer Webseite im webbrowser plugin durch tabbt und dann enter drückt...

    ich habe das so gemacht:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    thunderformdc = FindWindow(vbNullString, "KlickMisch v.1.o")
    shellembedding = FindWindowEx(thunderformdc, 0&, "shell embedding", vbNullString)
    shelldocobjectview = FindWindowEx(shellembedding, 0&, "shell docobject view", vbNullString)
    internetexplorerserver = FindWindowEx(shelldocobjectview, 0&, "internet explorer_server", vbNullString)
     
     
    hwn = shelldocobjectview
    PostMessage hwn, WM_SETFOCUS, 0, 0
    m = GetWindow(hwn, GW_CHILD): Call PostMessage(m, WM_KEYDOWN, vbKeyTab, &H0)
    Call PostMessage(m, WM_KEYDOWN, vbKeyTab, &H1)
    Call PostMessage(m, WM_KEYDOWN, vbKeyTab, &H2)
    Call PostMessage(m, WM_KEYDOWN, vbKeyTab, &H2)
    Call PostMessage(m, WM_KEYDOWN, vbKeyReturn, &H0)

    und so wie es da steht funktioniert es auch aber leider nur wenn das programm im VORDERGRUND ist es soll aber unbedingt im Hintergrund arbeiten is macht 3 mal tab und dann Enter...hmm die hwnd stimmt auch ... also meine theorie war ja...das ich von dem webbrowser die hwnd rausbekomme was ich geschafft habe und dann die nachrichten da einfach hinschicke und dann läuft das aber so bald das fenster im Hintergrund is funktioniert da gar nichts...
    wie kann ich also genau das fenster aktivieren wo der webbrowser läuft...so das genau auf das fenster die postmessage befehle ankommen?

    mein head sieht übrigens so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Const GW_HWNDFIRST = 0: Const GW_HWNDLAST = 1: Const GW_HWNDNEXT = 2: Const GW_HWNDPREV = 3: Const GW_OWNER = 4: Const GW_CHILD = 5
     
    Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" _
     Alias "FindWindowExA" (ByVal hWndParent As Long, _
     ByVal hWndChildAfter As Long, ByVal lpszClass As String, _
     ByVal lpszWindow As String) As Long
     
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Const WM_SYSKEYDOWN = &H104: Private Const WM_SYSKEYUP = &H105
    Const WM_KEYDOWN = &H100: Const WM_KEYUP = &H101
    Const WM_SETFOCUS = &H7: Const WM_KILLFOCUS = &H8
    Dim hwn
    Dim anz
    vielleicht liegt ja der Fehler irgendwo da

    HELFT MIR BITTE....ich verzweifel bald .. danke und Gruss

    Roman
    Geändert von popelmaster (02.03.05 um 21:46 Uhr)
     
    -Theoretisch stimmen Theorie und Praxis über ein....Praktisch nich- Spruch von meinem Programierdozenten...

  2. #2
    popelmaster popelmaster ist offline Mitglied Bronze
    Registriert seit
    Sep 2003
    Ort
    Dresden
    Beiträge
    29
    oook...also jetz wirds kriminell...ich habs hinbekommen es im Hintergrund lauffähig zu bekommen... das is der code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Pause 5
    thunderformdc = FindWindow(vbNullString, "Google-Klicker v1.o ©by TyBalD")
    shellembedding = FindWindowEx(thunderformdc, 0&, "shell embedding", vbNullString)
    shelldocobjectview = FindWindowEx(shellembedding, 0&, "shell docobject view", vbNullString)
    internetexplorerserver = FindWindowEx(shelldocobjectview, 0&, "internet explorer_server", vbNullString)
    hwn = internetexplorerserver
    Me.SetFocus
    ie.SetFocus
    Call PostMessage(hwn, WM_KEYDOWN, vbKeyTab, &H0)
    Call PostMessage(hwn, WM_KEYDOWN, vbKeyTab, &H1)
    Call PostMessage(hwn, WM_KEYDOWN, vbKeyTab, &H2)
    Call PostMessage(hwn, WM_KEYDOWN, vbKeyTab, &H2)
    Call PostMessage(hwn, WM_KEYDOWN, vbKeyReturn, &H0)

    ok jetz kommt der Witz an der Sache Es Klappt nur ... wenn man es Aus Visual Basic herraus startet MUUUUUHAAAAA.... wenn ich die *.exe starte klappts nich mehr dann setzter das fenster zwar in den focus aber das wars dann auch tasten werden dann nicht mehr gesendet...kann mir vll jemand sagen woran das liegt ansonsten nehm ich mirn strick
     
    -Theoretisch stimmen Theorie und Praxis über ein....Praktisch nich- Spruch von meinem Programierdozenten...

Ähnliche Themen

  1. [WINAPI] sendmessage & findwindow "problem"
    Von SkyRaVeR im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 22.10.10, 08:17
  2. SendMessage?
    Von {Eve} im Forum .NET Café
    Antworten: 5
    Letzter Beitrag: 07.02.10, 22:45
  3. (c++) SendMessage() Problem
    Von Hallasas im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 29.06.07, 20:38
  4. Problem mit starten von externen Programmen...
    Von xeon2000 im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 09.10.04, 18:00
  5. SendMessage ?
    Von jessy_musik im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 20.02.04, 12:48