Hook ...

Anfängerfragen zum Programmieren mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Tafkadasom2k5 hat geschrieben:SetWindowsHookEx
:? Kann man damit neuerdings auch API Hooks veranslassen? :?

Sorry, aber mit SetWindowsHookEx schaffst du es allerhöchstens einen Tastatur/Maus Hook oder WM Hook aufzustellen, aber doch keinen API Hook. Desshalb gibt es ja RemoteAPI (Local Hooks) und Rootkits (Global Hooks). :wink:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Aso...

Das wusste ich nicht. Entweder es steht nicht in der Hilfe oder ich habs überlesen.


//Edit: Bevor ichs vergesse...

:allright: Danke :allright:
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

DarkDragon hat geschrieben:
Tafkadasom2k5 hat geschrieben:SetWindowsHookEx
:? Kann man damit neuerdings auch API Hooks veranslassen? :?
Das habe ich nie gesagt, es geht ums Grunprinzip vorerst...
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Ich habe einmal die Variablen im CodeArchiv gesehen, und hab mir das noch einmal angesehen aber ich weiß nicht was ich mit welcher Variable vergleichen muss um zB. die Taste K zu hooken.
Die dazugehörigen wParams und lParams stehen in (wie sollte es anders sein Wink ) in lParam und wParam.
Was repräsentieren die Variablen noch schnell?
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Es geht nicht nur um das "Danke". Es wäre nett wenn Du das was die Leute Dir schreiben komplett lesen und in Deinen Posts darauf eingehen würdest. Das einzige was mich veranlasst Dir immer noch helfen zu wollen ist Dein "Größenwahnsinn". Du erinnerst mich da ein wenig an mich vor gar nicht langer Zeit.
http://www.purebasic.fr/german/viewtopi ... e&start=10 Allerdings war ich bereit Zeit, Schweiß und Geld zu investieren um etwas zu lernen. Frust gehört übrigens dazu. Wenn Du dazu bereit und ein Steh-Auf-Mänchen bist ist es kein Fehler große Ziele zu haben.

Alle haben versucht Dir zu helfen aber keiner will es Dir abnehmen auf eigenen Füßen zu laufen. Kennst Du den Spruch "Der Weg ist das Ziel" ? Also versuche doch erst einmal die Tipps zu verarbeiten, recherchiere die Antwort auf Deine Fragen zunächst selbst (PB-Hilfe, Forum, Code-Archiv, Goggle - lesen und verstehen - nicht nur Copy & Paste) und freue Dich wenn es klappt. Wenn nicht wird man Dir danach sicher viel lieber helfen.

Neben dem Tipp mit dem Buch (aus dem sich für Dich 1000 neue Fragen ergeben werden, die ihrerseits dann wieder neuer Fragen aufwerfen) habe ich Dir auch einige Suchbegriffe geliefert. Hier http://www.codingcrew.de/programmierung/win32hlp.php findest Du noch eine wichtige Quelle für Deine zukünftigen Recherchen.

PS Filtertreiber und globale Hooks werden in dem Buch auch behandelt. Ich für meinen Teil habe aber beschlossen nicht sooo tief hinein zu tauchen. Wie gesagt der Hook soll ja auch eine Aufgabe erfüllen und je tiefer man eintaucht um so schwieriger wird dann auch das.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Also denn Spruch kenn ich nicht "Der Weg ist das Ziel" aber er ist einleuchtend. Das Buch werd ich mir höchtwarscheinlich bestellen. So, und nun such ich mal nach der Variable im CA...

Danke :allright: !
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Ahhh, da ist es ja...

Code: Alles auswählen

Main = OpenWindow(1, 0, 0, 320, 200, #PB_Window_MinimizeGadget, "My Form")

Repeat
  Event=WindowEvent()
  If Event=256 ;Keypress detected
    kk=EventwParam() ;Value of the key in ascii
  EndIf
  If kk=27 ;if ESC key is pressed, terminate application
    End
  EndIf
  
  Delay(1) ;don't take all CPU power
ForEver
>>EventwParam() ;Value of the key in ascii<<
Also wenn das ein ASCII-Wert ist dann ist es nicht so schwer

Code: Alles auswählen

Global hook
Global Quit


Procedure HookProc(nCode.l,wParam.l,lParam.l)
  If nCode=#HC_ACTION
   If wParam=Asc("ESC")
    MessageRequester("","")
    Quit=1
   EndIf
  EndIf
 ProcedureReturn CallNextHookEx_(hook,nCode,wParam,lParam)
EndProcedure


hInstance=GetModuleHandle_(0)
hook=SetWindowsHookEx_(#WH_KEYBOARD_LL,@HookProc(),hInstance,0)


Repeat
 
 Delay(1)
Until Quit=1
warum aber funktioniert das nicht? Wenn man ein Debug oder einen MessageRequester in die Procedure schreibt sollte doch immer was ausgegeben werden wenn man ein Keyboard-Event durchführd.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Das Erste was mir gerade so ausm Stehgreif einfällt: Probiere es mal lieber mit ASC("A") oder so. Bin mir gerade nicht sicher, ob ESC als ASCII geht. Aber ich schaue morgen nochmal in aller Seelenruhe. Werde jetzt ersteinmal schlafen.

Übrigends: "Der Weg ist das Ziel" ist auch das Motto beim Ten-Sing, und es ist eine unglaubliche Erfahrung, wenn man geschnallt hat, wieviel Wahres, und vor Allem Wichtiges hinter diesem Satz steht.
Wenn man das alles als Mitarbeiter beim TenSing so mitbekommt, sieht, wie sich Leute dadurch entfalten und entwickeln, dann merkt man erst, wieviel da eigentlich hintersteckt, und was das Ausleben dieses Mottos für grundlegende Veränderungen mit sich führen kann.

(Im Übrigen wird das "christliche", was in dem Artikel übers TS steht, nicht derbst bei uns praktiziert. Es gehört mit dazu, aber es gibt auch viele ohne Konfession in dieser Gruppe. Es ist nicht gefdacht, jemanden zu belehren oder jemanden zu "fangen". Nicht das das jemand als Sekte falsch versteht- zumindest in unserer Gruppe nicht ;) )
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Bin mir gerade nicht sicher, ob ESC als ASCII geht.

ESC = Chr(27)

...sowas weiß man einfach... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Kaeru Gaman hat geschrieben:> Bin mir gerade nicht sicher, ob ESC als ASCII geht.

ESC = Chr(27)

...sowas weiß man einfach... ;)
Ja, DAS weiß ich wohl, aber ob ASC("ESC") auch 27 ausspuckt, weiß ich nicht ;)
Kann ja auch sein, dass er bei "mehreren Buchstaben" das als Fehleingabe interpretiert, oder nur den Ersrten Buchstaben gelten lässt, oder gar alle aufaddiert. (Okay, letzteres wäre sinnfrei, aber wer weiß :D)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten