vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: +++MaRuSo+++
Datum: 08.06.11 09:22

Ich nutze den hier wohl schon bekannten Tip Subclassing mit Klasse...funktioniert auch alles rihtig wunderbar...allerdings nur innerhalb der eigenen Anwendung. Sobald ich versuche einen hWnd einer anderen Anwendung zu subclassen liefert die Classe ein False zurück...jemand einen plan woran das liegen könnte, bevor ich jetzt anfang die komplette klasse zu demontieren...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: ModeratorMartoeng (Moderator)
Datum: 09.06.11 22:10

Mit dieser Methode geht es nur in der eigenen Anwendung.

Um Fenster anderer Prozesse auszuspionieren bedarf es härterer Mittel.

SetWindowsHookEx solltest Du Dir da mal anschauen und wenn ich mich recht erinnere musste man sowas auch in eine Standard-DLL auslagern.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: +++MaRuSo+++
Datum: 10.06.11 12:58

Hmm, also irgendwie klappt das Hook'en auch nur in der eigenen Anwendung.

Übergebe ich die TreadID von meinem Programm klappt alles, nehm ich die TreadID von einem anderen Programm liefert die Funktion nur 0 zurück.

So wie ich das aus dem msdn rauslese muss der Parameter hMod auf den hWnd einer DLL verweisen wenn die übergebene TreaadID nicht die des eigenen Programms is.
Setze ich nun als hMod den hWnd meiner Anwendung und eine X-belibige TreadID, bekomme ich ein Fester mit "Datenausführungsverhinderung" und anschließendem abschmieren der gehooken Anwendung. o.o

Kann ich dann das Hook'en auf externe Anwendungen in VB vergessen?

Beitrag wurde zuletzt am 10.06.11 um 13:22:40 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: ModeratorMartoeng (Moderator)
Datum: 10.06.11 13:39

Hast Du denn eine Standard-DLL dafür erstellt?


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: +++MaRuSo+++
Datum: 10.06.11 13:47

Naja, da das erstellen einer Standard-DLL mit VB eher nur getrickse und nicht so ohne weiteres geht hab ich das noch nicht gemacht. Werd ich dann jetzt aber tun. Hätt ja auch sein können dass ich sonst irgendwas falsche mache.
Na mal guggen ob es mit der Semistandard-DLL von VB funktioniert. ^^
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: ModeratorMartoeng (Moderator)
Datum: 10.06.11 14:31

Ohne das geht es ja überhaupt nicht, insofern kannst Du vorher nicht testen, ob Du irgendwas falsch machst.

Was möchtest Du denn genau machen?


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Subclassing funktioniert nur in eigener Anwendung...wieso? 
Autor: +++MaRuSo+++
Datum: 10.06.11 15:08

Ja hab ich mir schon irgendwie auch gedacht. ^^

Also ich will eine fremde RichtTextBox Hooken um die Eingaben die dort gemacht werden zu prüfen bevor sie in die RTB geschrieben werden.

Sinn:
Die RTB gehört zu einem Chat den ich um ein paar lokale Funktionen für den Nutzer erweitern will.
Aktuell steht im Vordergrund dem User -chatüblich- die möglichkeit zu geben einen Befehl a la "/YT" in die RTB einzugeben. Beim absenden mit Entertaste soll allerdings dann mein Programm aktiv werden, löscht die RTB und führt, beim Befehl "/YT", ein paar Aktionen aus. Dazu zählen, alle im Chat geschriebenen Youtube-Links zu filtern und diese dem User dann zum anklicken anzubieten. Darauf hin wird sich, so denn ich den Hook gebacken bekomm, ein kleines Fenster mit dem entspechendem Video öffnen.

Das ganze wäre auch mittels engem Timer möglich, allerdings kann ich ohne Hook nicht verhindern das der "Befehl" in den Chat gesendet wird.

Wobei mir gerade beim schreiben die Idee kommt eine eigene RTB über die externe RTB zu setzten. Was mir angesichts der Tatsache das ich mir jetzt erstmal ne DLL zusammenfrickeln müßte, am sinnvolsten erscheint oder der leichtere Weg wäre.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel