Seite 1 von 1

F6 an Tastatur senden

Verfasst: 22.01.2005 18:51
von rayman1970
Hi Leute von heute !

Ich kann alles mögliche an die Tastatur senden , nur bei den F Tasten 1 - 12 klappt es nicht .
Ich habe mehrere Codes im Code Archiv ausprobiert und damit rum experimentiert aber das brachte mich auch nicht weiter .

Hier mal so ein Code :

Code: Alles auswählen

WinTitle$ = "jaPBe"

Procedure SendAKey(key.s) 
     vk = VkKeyScan_( Asc( key )) 
     If vk>320:keybd_event_(#VK_LSHIFT,1,0,0):EndIf 
     keybd_event_(vk,1,0,0) 
     keybd_event_(vk,1, #KEYEVENTF_KEYUP,0)
     If vk>320 
          keybd_event_(#VK_LSHIFT,1,0,0) 
          keybd_event_(#VK_LSHIFT,1,#KEYEVENTF_KEYUP,0)
     EndIf 
EndProcedure 
 
      
handle.l=FindWindow_(0, WinTitle$) 
     
      
If handle>0
     beep_(100,500)
     OpenIcon_(handle) 
     SetForegroundWindow_(handle) 
     SetActiveWindow_(handle) 
     
     
     ; ------- Hier soll die F6 Taste hin ------- 
     SendAKey( "A" )  
     ; ------------------------------------------
EndIf

End


Vielleicht hat ja einer einen Tip oder einen Code parat !

Danke schon mal im voraus !

Gruss Rayman

Verfasst: 22.01.2005 19:02
von Lars
http://www.purearea.net/pb/CodeArchiv/I ... endKeys.pb

Dieser Code kann offensichtlich auch F6 senden.

Verfasst: 22.01.2005 20:37
von rayman1970
Hi Lars !

Da mit geht´s, Danke

:D

Gruss Rayman

Verfasst: 22.01.2005 20:58
von Danilo
Man, was ist Andre nur für ein fauler Sack - da steht noch immer
"; Author: Danilo", obwohl schon 12 mal darauf hingewiesen
wurde es endlich zu ändern. :|

Re: F6 an Tastatur senden

Verfasst: 22.01.2005 21:19
von GPI
rayman1970 hat geschrieben:

Code: Alles auswählen

WinTitle$ = "jaPBe"
Was willst du den erreichen?

Verfasst: 22.01.2005 21:59
von rayman1970
Hi GPI !

Ich schreibe gerade ein Programm mit dem ich die linke Maustaste missbrauchen kann . Da ich zu faul bin immer auf dein Compiler oder Debugger Symbol zu klicken will ich das über einen verlängerten Mausklick steuern . Ich drücke also einfach die linke Maustaste eine halbe Sekunde und jaPBe startet den Compiler bzw. Debugger :D .

Gruss Rayman

Verfasst: 23.01.2005 00:44
von sbehrens
rayman1970 hat geschrieben:...Da ich zu faul bin immer auf dein Compiler oder Debugger Symbol zu klicken...
Sooo weit ist es schon gekommen. Nee, nee. Wo soll das nach hinführen? :mrgreen:

mfG
Basti

Verfasst: 23.01.2005 21:34
von rayman1970
Das Programm ist fertig , jetzt kann ich mein Dasein ganz faul genießen :lol:
Einfach aus dem Code eine EXE machen und starten ! Die mittlere Maustaste ist die magische Taste welche die Arbeit erleichert !

Gruss Rayman

P.S. Danilo , Danke für deinen super Code...... :lol:

Code: Alles auswählen

MessageRequester("jaPBe Tool","Maus Programm ist an ! Mit der mittleren Maustaste Debugger starten !",#PB_MessageRequester_Ok) 

Procedure SendKeys(handle,window$,keys$) 
     If window$<>"" : handle=FindWindow_(0,window$) : EndIf ; Use window$ instead of handle. 
     If IsWindow_(handle)=0 ; Does the target window actually exist? 
          ProcedureReturn 0 ; Nope, so report 0 for failure to type. 
     Else 
          ; This block gives the target window the focus before typing. 
          thread1=GetWindowThreadProcessID_(GetForegroundWindow_(),0) 
          thread2=GetWindowThreadProcessID_(handle,0) 
          If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#True) : EndIf 
          SetForegroundWindow_(handle) ; Target window now has the focus for typing. 
          Delay(125) ; 1/8 second pause before typing, to prevent fast CPU problems. 
          ; Now the actual typing starts. 
          For r=1 To Len(keys$) 
               vk$=Mid(keys$,r,1) 
               If vk$="{" ; Special key found. 
                    s=FindString(keys$,"}",r+1)-(r+1) ; Get length of special key. 
                    s$=Mid(keys$,r+1,s) ; Get special key name. 
                    Select s$ ; Get virtual key code of special key. 
                         Case "ALTDOWN" : keybd_event_(#VK_MENU,0,0,0) ; Hold ALT down. 
                         Case "ALTUP" : keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0) ; Release ALT. 
                         Case "BACKSPACE" : vk=#VK_BACK 
                         Case "CONTROLDOWN" : keybd_event_(#VK_CONTROL,0,0,0) ; Hold CONTROL down. 
                         Case "CONTROLUP" : keybd_event_(#VK_CONTROL,0,#KEYEVENTF_KEYUP,0) ; Release CONTROL. 
                         Case "DELETE" : vk=#VK_DELETE 
                         Case "DOWN" : vk=#VK_DOWN 
                         Case "END" : vk=#VK_END 
                         Case "ENTER" : vk=#VK_RETURN 
                         Case "F1" : vk=#VK_F1 
                         Case "F2" : vk=#VK_F2 
                         Case "F3" : vk=#VK_F3 
                         Case "F4" : vk=#VK_F4 
                         Case "F5" : vk=#VK_F5 
                         Case "F6" : vk=#VK_F6 
                         Case "F7" : vk=#VK_F7 
                         Case "F8" : vk=#VK_F8 
                         Case "F9" : vk=#VK_F9 
                         Case "F10" : vk=#VK_F10 
                         Case "F11" : vk=#VK_F11 
                         Case "F12" : vk=#VK_F12 
                         Case "ESCAPE" : vk=#VK_ESCAPE 
                         Case "HOME" : vk=#VK_HOME 
                         Case "INSERT" : vk=#VK_INSERT 
                         Case "LEFT" : vk=#VK_LEFT 
                         Case "PAGEDOWN" : vk=#VK_NEXT 
                         Case "PAGEUP" : vk=#VK_PRIOR 
                         Case "PRINTSCREEN" : vk=#VK_SNAPSHOT 
                         Case "RETURN" : vk=#VK_RETURN 
                         Case "RIGHT" : vk=#VK_RIGHT 
                         Case "SHIFTDOWN" : shifted=1 : keybd_event_(#VK_SHIFT,0,0,0) ; Hold SHIFT down. 
                         Case "SHIFTUP" : shifted=0 : keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) ; Release SHIFT. 
                         Case "TAB" : vk=#VK_TAB 
                         Case "UP" : vk=#VK_UP 
                    EndSelect 
                    If Left(s$,3)<>"ALT" And Left(s$,7)<>"CONTROL" And Left(s$,5)<>"SHIFT" 
                         keybd_event_(vk,0,0,0) : keybd_event_(vk,0,#KEYEVENTF_KEYUP,0) ; Press the special key. 
                    EndIf 
                    r=r+s+1 ; Continue getting the keystrokes that follow the special key. 
               Else 
                    vk=VkKeyScanEx_(Asc(vk$),GetKeyboardLayout_(0)) ; Normal key found. 
                    If vk>304 And shifted=0 : keybd_event_(#VK_SHIFT,0,0,0) : EndIf ; Due to shifted character. 
                    keybd_event_(vk,0,0,0) : keybd_event_(vk,0,#KEYEVENTF_KEYUP,0) ; Press the normal key. 
                    If vk>304 And shifted=0 : keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) : EndIf ; Due to shifted character. 
               EndIf 

          Next 
          If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#False) : EndIf ; Finished typing to target window! 
          keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0) ; Release ALT key if user forgot. 
          keybd_event_(#VK_CONTROL,0,#KEYEVENTF_KEYUP,0) ; Release CONTROL key if user forgot. 
          keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) ; Release SHIFT key if user forgot. 
          ProcedureReturn 1 ; Report successful typing! :) 
     EndIf 
EndProcedure 


Repeat
 Delay(1)
If GetAsyncKeyState_(#VK_MBUTTON)
     w$="jaPBe"
     SendKeys(0,w$,"{F6}") 
     Delay(500)
EndIf

ForEver

Verfasst: 23.01.2005 22:56
von vonTurnundTaxis
Wozu der Aufwand? Warum nicht einfach F6 drücken?