getsha (07.09.2018), x failstar (24.05.2012), xPaT (12.12.2011)
- 
	11.12.2011, 17:25 #1 [VB.NET] Knuddels Fenster manipulieren [VB.NET] Knuddels Fenster manipulierenHallo  
 
 Hier mal die Source wie man das Fenster von Knuddels manipulieren kann bzw. was in den Chat Senden ohne Focus.
 
 Klasse Win32API
 Klasse Form1PHP-Code:'API Deklarationen / Structuresc usw..'
 Public Class Win32API
 'FindWindow'
 <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
 Public Shared Function FindWindow( _
 ByVal lpClassName As String, _
 ByVal lpWindowTitle As String) As IntPtr
 End Function
 
 Public Declare Auto Function GetWindowText Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal lpString As String, ByVal cch As Integer) As Integer
 Public Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hwnd As IntPtr, ByVal lpClassName As String, ByVal nMaxCount As Integer) As Integer
 
 'FindWindowEx'
 <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
 Public Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
 ByVal childAfter As IntPtr, _
 ByVal lpClassName As String, _
 ByVal lpWindowTitle As String) As IntPtr
 End Function
 
 
 Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
 
 
 'Fenster suchen'
 Public Function enumWindowsProc(ByVal hWnd As IntPtr, ByVal lpParam As IntPtr) As String
 Dim len As Integer
 ' get Title
 Dim title As String = Space(255)
 len = GetWindowText(hWnd, title, 255)
 title = title.Substring(0, len)
 ' get className
 Dim className As String = Space(255)
 len = GetClassName(hWnd, className, 255)
 className = className.Substring(0, len)
 ' format output
 Dim formattedOutput As String = String.Format("{0,-10} {1,-50} {2} ", hWnd, className, title)
 
 If title.StartsWith("Channel") Then
 Return className & "" & title
 Else
 Return Nothing
 End If
 End Function
 
 'SendMessageByInt (um die Textlänge auszulesen)'
 Public Declare Function SendMessageByInt Lib "user32.dll" Alias "SendMessageA" _
 (ByVal hWnd As IntPtr, _
 ByVal uMsg As Integer, _
 ByVal wParam As Integer, _
 ByVal lParam As Integer) As Integer
 
 'SendMessageByString'
 Public Declare Function SendMessageByString Lib "user32.dll" Alias "SendMessageA" _
 (ByVal hWnd As IntPtr, _
 ByVal uMsg As Integer, _
 ByVal wParam As Integer, _
 ByVal lParam As StringBuilder) As Integer
 
 
 'SendMessage'
 Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
 (ByVal handle As IntPtr, ByVal uMsg As Integer, _
 ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr
 
 
 
 End Class
 
 
 Was wir brauchen:
 Button = Button1
 Button = Button2
 Textbox = Textbox1
 
 Viel SpaßPHP-Code:'Konstante'
 Const WM_SETTEXT As Integer = &HC
 Const WM_GETTEXT As Integer = &HD
 Const WM_GETTEXTLENGTH As Integer = &HE
 Public Const EM_GETSEL = &HB0
 Public Const WM_CHAR = &H102
 Public Const WM_KEYDOWN As Integer = &H100
 Public Const WM_KEYUP As Integer = &H101
 
 Dim Hauptfenster As IntPtr = Win32API.FindWindow("SunAwtFrame", titel())
 Dim Control1 As IntPtr = Win32API.FindWindowEx(Hauptfenster, IntPtr.Zero, "SunAwtCanvas", Nothing)
 Dim Control2 As IntPtr = Win32API.FindWindowEx(Control1, IntPtr.Zero, "SunAwtCanvas", Nothing)
 Dim Control3 As IntPtr = Win32API.FindWindowEx(Control2, IntPtr.Zero, "SunAwtCanvas", Nothing)
 Dim Textbox1 As IntPtr = Win32API.FindWindowEx(Control3, IntPtr.Zero, "Edit", Nothing)
 Private Const BM_CLICK As Long = &HF5&
 
 'Auslesen-Funktion:'
 Public Function GetText(ByVal hwnd As IntPtr) As String
 If (Not hwnd.Equals(IntPtr.Zero)) Then
 Dim length As Integer = Win32API.SendMessageByInt(hwnd, WM_GETTEXTLENGTH, 0, 0)
 
 If length > 0 Then
 Dim SB As New StringBuilder(length)
 Dim Result As Int32 = Win32API.SendMessageByString(hwnd, WM_GETTEXT, length + 1, SB)
 
 If Result <> 0 Then
 Return SB.ToString()
 Else
 Return String.Empty
 End If
 Else
 Return "Kein Text"
 End If
 Else
 Return "Handle nicht gefunden"
 End If
 End Function
 
 Private Function titel() As String
 Dim pl As Process() = Process.GetProcesses
 For Each p As Process In pl
 If p.MainWindowTitle.StartsWith("Channel") Then
 Return p.MainWindowTitle
 Else
 Return Nothing
 End If
 Next
 End Function
 
 
 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
 'Text aus Knuddels Editbox auslesen und in unserer Textbox anzeigen...'
 TextBox1.Text = GetText(Textbox1) 'Falls kein Knuddels Fenster vorhanden ist erscheint in der TextBox der Text "Handle nicht gefunden"'
 End Sub
 
 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
 'Text in Knuddels Editbox schreiben..'
 Win32API.SendMessage(Textbox1, WM_SETTEXT, 0, TextBox1.Text)
 'Fokus auf die Knuddels Editbox setzen'
 Win32API.SendMessage(Textbox1, &H7, 0, TextBox1.Text)
 'Threader kurz warten lassen...'
 Threading.Thread.Sleep(10)
 'Taste simmuliern...'
 Win32API.PostMessage(Textbox1, WM_KEYDOWN, &HD, &H1C0001)
 'Angegeben dass es sich um ein Enter druck handelt..'
 Win32API.PostMessage(Textbox1, WM_CHAR, &HD, &H1C0001)
 'Threader kurz warten lassen...'
 Threading.Thread.Sleep(10)
 'Enter Taste losgelassen...'
 Win32API.PostMessage(Textbox1, WM_KEYUP, &HD, &HC01C0001)
 'Fokus aufheben..'
 Win32API.SendMessage(Textbox1, &H8, 0, TextBox1.Text)
 End Sub
   Geändert von uncopyable (29.02.2012 um 23:04 Uhr)    
 
 while( behappy() ) { code(); }
 
- 
	The Following 3 Users Say Thank You to uncopyable For This Useful Post:
 
- 
	26.02.2012, 13:46 #2U-Labs Legende  
 - Registriert seit
- 19.11.2011
- Beiträge
- 2.128
 Thanked 1.937 Times in 1.180 Posts AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulierenDas funktioniert leider nichtmehr. Der Text wird zwar an die TextBox gesendet aber das Enter drücken funktioniert nicht mehr. Kann das mal vllt. jemand aktualisieren? 
 
- 
	The Following User Says Thank You to !lkay For This Useful Post:Jack DanieLs (04.08.2013) 
 
- 
	26.02.2012, 13:59 #3
 
- 
	26.02.2012, 14:06 #4U-Labs Legende  
 - Registriert seit
- 19.11.2011
- Beiträge
- 2.128
 Thanked 1.937 Times in 1.180 Posts AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulieren
 
 Bei mir kommen da ziemlich viele Fehler TextBox8, wundert mich sowieso wofür man beim Focus setzen noch einen String parameter beim SendMessage braucht.
 Hab die versucht zu beheben und es wird nur der Text an die TextBox gesendet mehr nicht.
 
 Kannst Du mal deinen Code vllt. zeigen?Geändert von !lkay (26.02.2012 um 14:37 Uhr) 
 
- 
	29.02.2012, 00:46 #5 AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulierenPoste mal deine Code die du bis jetzt hast. Eigentlich kannst du es 1 zu 1 von oben kopieren und verwenden.    
 
 while( behappy() ) { code(); }
 
- 
	29.02.2012, 16:25 #6U-Labs Legende  
 - Registriert seit
- 19.11.2011
- Beiträge
- 2.128
 Thanked 1.937 Times in 1.180 Posts AW: [VB.NET] Knuddels Fenster manipulieren
				Die Zeile macht Probleme.Code: AW: [VB.NET] Knuddels Fenster manipulieren
				Die Zeile macht Probleme.Code:Win32API.SendMessage(Textbox1, &H7, 0, TextBox8.Text) 
 
 Die ist ja eigentlich zum fokussieren des Fensters aber was soll der Parameter TextBox8.Text darstellen?
 
- 
	29.02.2012, 23:05 #7
 
- 
	04.03.2012, 13:28 #8U-Labs Legende  
 - Registriert seit
- 19.11.2011
- Beiträge
- 2.128
 Thanked 1.937 Times in 1.180 Posts AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulierenTut sich gar nichts. 
 
 Der Code ist ehrlichgesagt das reinste Wirrwarr.
 
- 
	04.03.2012, 14:10 #9 AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulierenOhne deinen Code zu wissen, können wir dir nicht helfen, wurde aber schon mehrmals gesagt. 
 
 Der Code ist strukturiert und Kommentiert, weiß ehrlich gesagt nicht, was daran ein Wirrwarr sein soll.
 
 btw. Eben getestet und funktioniert ohne Probleme und macht genau das, was er soll . .  
 
 
- 
	The Following User Says Thank You to iToxic For This Useful Post:uncopyable (04.03.2012) 
 
- 
	04.03.2012, 14:46 #10U-Labs Legende  
 - Registriert seit
- 19.11.2011
- Beiträge
- 2.128
 Thanked 1.937 Times in 1.180 Posts AW: [VB.NET] Knuddels Fenster manipulieren AW: [VB.NET] Knuddels Fenster manipulierenDann lad mal die Projektmappe hoch. 
 
 Bei mir kommen da andauernd Fehler und wenn man die korrigiert funktioniert es auch nicht.
 
Ähnliche Themen
- 
  Knuddels schließt sich immer bei neuen FensterVon Cracker im Forum Fragen & ProblemeAntworten: 4Letzter Beitrag: 14.01.2013, 21:51
- 
  [CSS] Windows-Style FensterVon Comu im Forum CSSAntworten: 0Letzter Beitrag: 28.07.2012, 21:38
- 
  USA manipulieren Al Kaida Website!Von Waterpolo im Forum RealLife NewsAntworten: 4Letzter Beitrag: 24.05.2012, 14:05
- 
  Knuddels Applet bearbeiten / manipulierenVon Salvos im Forum Knuddels ProgrammierungAntworten: 14Letzter Beitrag: 17.12.2011, 20:21
- 
  /code Fenster neuVon helfen im Forum Knuddels-NewsAntworten: 10Letzter Beitrag: 26.11.2011, 14:36
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
 
									 
														 
														 
			 
					
					
					
						 Zitieren
  Zitieren Zitat von NightMareG
 Zitat von NightMareG
					
