Get text z ineho programu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Get text z ineho programu – C / C++ – Fórum – Programujte.comGet text z ineho programu – C / C++ – Fórum – Programujte.com

 

Dodo0
Newbie
26. 6. 2013   #1
-
0
-

Ahoj

Chcel by som sa spytat ci je mozne urobit v C++ program, ktory by dokazal zobrat text z ineho beziaceho programu, a zapisat ho do textoveho suboru

Dakujem

Nahlásit jako SPAM
IP: 195.212.29.–
vitamin
~ Anonymní uživatel
1092 příspěvků
26. 6. 2013   #2
-
0
-

#1 Dodo
Mozes presmerovat vystupny prud z konzoloveho programu na iny prud, cize na vstup svojho programu alebo kludne do suboru. Ak to nie je konzolova aplikacia tak to bude zlozitejsie.

Nahlásit jako SPAM
IP: 195.28.77.–
Matherz0
Newbie
26. 6. 2013   #3
-
0
-

Určite to možné je, ale záleží jak to myslíš.

Například lze jednoduše získat přes Win API handle cizího procesu třeba notepadu, a můžeš měnit obsah, či obash notepad  zkopírovat do proměnné.

#include <windows.h>

#define WINDOW_TITLE "Untitled - Notepad"

int main() 
{
	HWND hwNotepad;
	HWND hwNotepadEdit;

	char szTextBox[255];
	
	hwNotepad = FindWindow(NULL, WINDOW_TITLE);	
	if(!hwNotepad)
	{
		MessageBox(NULL, "Okno notepadu je fuc", "Argh", MB_OK);
		return -1;
	}

	hwNotepadEdit = FindWindowEx(hwNotepad, NULL, "Edit", NULL);
	if(!hwNotepadEdit)
		return -1;

	SendMessage(hwNotepadEdit, WM_GETTEXT, (WPARAM)1024, (LPARAM)szTextBox);	

	OutputDebugStringA(szTextBox);
}

Další možnost je zásah do aplikace pomocí assembleru, a vložit mezi určité instrukce kde probíhá nějaké zpracování výstupního textu, vložit (spíše upravit EXE je) jump instukci která přesměruje kod na tvůj vlastní kde bys provedl  zalogování výstupního textu, a poté po zpracování vloženého kodu opět navrátil na nadcházející instukce abyse nenarušil chod aplikace. Ale tento způsob je pro zkušené mistry.

.... Sekvence zpracování textu
-- jmp mujUsek (push eax)
Navrat
....... 


mujUsek:
mov Zasobnik, Text
call FceZapis
push eax
jmp Navrat
Nahlásit jako SPAM
IP: 212.96.160.–
26. 6. 2013   #4
-
0
-

to "odskočení jinam" se v assembleru nejlépe udělá jako volání podprogramu. Instrukce mívá tvar CALL addr  nebo CALL rel. addr. Návrat pak pomocí RET.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Doomista+1
Stálý člen
26. 6. 2013   #5
-
0
-

Tyhle věci jsem ještě nezkoušel, ale nemohl by běžící program ukládat data do schránky (copy&paste) a program, který by je četl by si je vzal z tohoto sdíleného prostoru?

Nahlásit jako SPAM
IP: 85.71.94.–
Na vše stačí iostream...
KIIV
~ Moderátor
+43
God of flame
26. 6. 2013   #6
-
0
-

#5 Doomista
to uz by bylo lepsi pouzit shared memory nez copy&paste ... kdyz uz by to stejne musel mit v obou programech

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý