Eingabe an CEdit senden



  • ich hab ein programm dafür (wenn du willst schick ichs dir per msn). es kann 2 verschiedene nachrichten abwechselnd in einem von dir bestimmten abstand an ein von dir bestimmtes fenster schicken. aber du kannst nich parallel am pc arbeiten weil es den inputfokus auf das fenster setzten muss in das es eingeben soll.

    man kann sich sowas aber auch leicht selbst programmiern:

    #include <stdio.h>
    #include <conio.h>
    #include <windows.h>
    
    int main()
    {
    	char fenstername[81], str1[81], str2[81];
    	int warten;
    
    	printf("Fenstername eingeben: ");
    	gets(fenstername);
    	printf("String 1 eingeben: ");
    	gets(str1);
    	printf("String 2 eingeben: ");
    	gets(str2);
    	printf("Wartezeit eingeben: ");
    	scanf("%d", &warten);
    
    	printf("\nZum Beenden eine beliebige Taste druecken");
    
    	int i = 0;
    
    	while(!kbhit())
    	{
    		HWND hWin = FindWindow(NULL, fenstername); 
    		SetForegroundWindow(hWin);     // Focus auf gewuenschtes Fenster setzen
    
    		char* str;
    		if(++i%2)
    			str = str1;
    		else
    			str = str2;
    
    		for(int i = 0; str[i] != '\0'; i++) 
    		{ 
    			keybd_event(VkKeyScan(str[i]), 0, 0, NULL);			   //taste drücken... 
    			keybd_event(VkKeyScan(str[i]), 0, KEYEVENTF_KEYUP, 0);    // und wieder loslassen 
    		}
    		keybd_event(VK_RETURN, 0, 0, NULL);     // ENTER taste drücken... 
    		keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
    
    		Sleep(warten * 1000);
    	}
    
    	return 0;
    }
    

    dieses programm macht genau das gleiche wie das das ich hab bis auf, dass es auf der konsole is und das es keine groß-klein-schreibung kann. (falls du groß kleinschreibung willst kann ich dir das auch noch schreiben...)

    ich habs auch mit deinem chat getestet...funktioniert



  • Erst mal vielen Dank dass du dir so viel Mühe gemacht hast :-),jedoch

    so weit war ich leider auch schon....
    Aber genau des bräuchte ich nämlich-> eben dass des Fenster den Eingabefocus nicht verliert,wenn man parallel arbeitet. Also ich müsste des quasi über einen Zeiger auf des Eingabefeld vom Main-Dialog regeln, damit auch wirklich des Fenster die Eingabe erhält...und nicht ein anderes, das mir währenddessen möglicherweise in die Arbeit funkt _
    Und des is des schwierige... leider...:-(

    Du weißt auch net wie man des über nen Zeiger regeln könnte oder ?
    Also des mit der VM_KEYDOWN über die SendMessage-Funktion des geht ja komischerweise schon mal nicht, warum auch immer...

    Schönen Gruß und Danke nochmals
    CMan



  • Läuft dieser Chat über den Browser oder ist das ein eigenes Programm?



  • Der Chat läuft über den Browser...des is ein Java-Applet... wieso gibts da Unterschiede ?!



  • (Nachtrag:) Des Applet erscheint aber als eigenes Fenster ! Also nicht im Browser direkt. Wollt ich nur noch hinzufügen.



  • ok danke, ich bin jetzt über das applet im chat und versuche es hinzubekommen. schaffe es aber auch nicht. text in das edit-feld zu schreiben ist via WM_SETTEXT kein problem, aber das absenden bleibt eins. 😃



  • Ich muss mich wenn dann bedanken _-
    ey des freut mich echt rießig dass so viele sich die Mühe gemacht haben da
    mitzuarbeiten...einfach super.

    Deshalb vielen Dank an alle die mir versucht haben zu helfen...so wie's
    aussieht is des ein größeres Problem 🙂 aber die Unterstützung hat auch schon viel geholfen.

    Sollte es einer jedoch trotzdem noch schaffen _ (was mir nun schon ziemlich unrealistisch vorkommt) dann wär des natürlich.....*dann würden mir die worte fehlen* *lol*

    Gruß
    CMan



  • Endlich. Ich habs. Man muss PostMessage verwenden. Ich Trottel hab die ganze Zeit SendMessage genommen für die WM_KEYDOWN und mich gewundert warum es nicht geht.

    HWND hEdit = (HWND)0x000902B0;
    SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)"Alawalaschabalambaluiblaogalilowampa");
    PostMessage(hEdit, WM_KEYDOWN, VK_RETURN, 0);
    


  • Mist, geht doch nicht. 😃
    Hätte schwören können das es gerade funktioniert hat. hmmmmm, ich bleib aber noch dran. 😉



  • Also obiger Code geht, aber nur wenn das Edit-Feld gerade den Fokus hat. 🙄



  • Vielen Dank des hilft mir glaub ich schon mal um einiges weiter...also wenn wir des gar nich mehr rausbringen dann probier ich's halt so._

    Thanks


Anmelden zum Antworten