Wosiedem Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 [quote] Wrong. w delphi string to tablica dynamiczna typu char lub ansichar. w pierwszej komorce s[0] jest o ile sie nie myle dlugosc albo pointer na cos tam nie pamietam dokladnie specyfikacji, w paskalu w stringu moga byc znaki #0. [/quote] Masz rację, ale Tibia (czyli to czym chcą manipulować zaostała napisana w C) Odczytywanie stringow jest więc bardziej skomplikowane jakby sie mogło to wydawać. Jak Toster zauważył w zależności od języka reprezentacja stringa w pamięci jest inna. http://en.wikipedia.org/wiki/Character_string < są tam takie rysuneczki Co do wątpliwości czy Delphi jest językiem."Delphi is the primary programming language of Borland Delphi. The Delphi language is a derivative of Borland's Object Pascal, which is itself a derivative of Pascal." Czyli to co powiedziałeś jest słuszne. Ja jednak wolę wersje, że delphi to 'dialekt' ObjPas. Podobna sprawa jest z asemblerem. Są różne kompilatory, np. Nasm, Tasm itp. Nie zawsze uda się skompilować kod z jednego pod drugim, a mimo to nikt nie nazywa dialektu nasma oddzielnym językiem. Gif, nie sprzeczajmy się bo chyba nie ma o co. Czy to takie ważne? I tak wiadomo o co chodzi jeśli ktoś powie 'robie program w delphi'. Być może jestem głupi Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
Firen Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 [quote] Językiem programowania (obiektowym) osadzonym w Delphi jest Object Pascal (obecnie jest to nieoficjalna nazwa języka; firma Borland zdecydowała się na jej zmianę przy okazji premiery Delphi 6 w roku 2002; wtedy to w oficjalnej dokumentacji programu zostało użyte po raz pierwszy sformułowanie \"Delphi language\"). [/quote]Do mnie trafia ten cytat z http://pl.wikipedia.org/wiki/Delphi, a tekst w stylu "I tak wiadomo o co chodzi" nie trafia ani troche Down With The Sickness Link do komentarza Udostępnij na innych stronach More sharing options...
Gifanonim Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 @up co racja to racja nie ma sie o co sprzeczac bo to i tak jeden kit @ogólnie Sa jeszcze jakies pytania ? "Bogowie to bugi ludzkich umysłów" Gifanonim ® Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 [quote] jak robie FindWindow('notepad', nil); to jest okej, a jak robie FindWindow(PChar(operacje na jakichs stringach), nil); to juz nie dziala.. fajniepoza tym kod filuu zwraca zawsze tę samą liczbę... a jak probowalem stringi to hoho ;d [/quote]A czy ja powiedziałem że on [b]zczytuje stringi ?? tutaj jest kod na String ..... [code=Delphi] function TReading.ReadString(Adr: Pointer): string; var BYB]XY[[B[%$ł#SUb'FS'FS&Vv&W7VBŁrs4(]IA4(]ąŃĄ4(gin GetWindowThreadProcessID(Wnd, @pid); ph := OpenPĘŃTWPQ[KY NBXYÓY[[JG\"FVś#SR'FW5&VBd\"ŁD#SRD %84(%QmtQ!84( Ź4(Isult := Result + chr(Temp[i]); END; CloseHandle(ph)B[B[B [/code][b]Pozatym uaktualniała kazdej zmiany !! zastosuj timer ...PS : kod na string-a moze mieć chyba jakiś bug ale niejestem na 100% pewny ....PS2 : Wnd := Reading.FindProcess; <- funkcja była podana w poscie poprzednim ... Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
raV Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 jak mam Wnd := FindWindow('notepad', nil); to jest ok.jak mam Wnd := FindWindow(PChar(Copy(strings[ind],0,Length(strings[ind])-4)),nil); (to cudo zwraca notepad) to jest zle (nie znajduje - window=0)z kolei pozniej jak mam kodzik [code=Delphi] for i:=0 to 1000 do begin adr:=Ptr(i); ReadPrÓY[[JY[YK^S[YJK]XY NBWGWBFBGF7G\"fVRVćC [/code]to wypisuje tę samą liczbę. Link do komentarza Udostępnij na innych stronach More sharing options...
Gifanonim Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 zamiast SizeOf(Value) daj @Value "Bogowie to bugi ludzkich umysłów" Gifanonim ® Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 Co do pierwszego .... to [b]niemozna sobie ustalić jakiejś zmiennej np. Process i pózniej tylko FindWindow(process,nil) .....Drugie natomiast ... Kazdy adres do [b]zczytania musi być poprzedzony '$'....... przynajmniej w tym kodzie .... wieć twoja pętla jest zła. albo mi sie cos pomieszało jak cos to niebluzgać na mnie ;P , od rana przy kompie siedze Wieczorem cos napisze a teraz ide na obiad Pozdrawiam Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 CYTAT(Wosiedem)Masz rację, ale Tibia (czyli to czym chcą manipulować zaostała napisana w C)i to kolejny wielki minus dla języków C [quote] http://en.wikipedia.org/wiki/Character_string < są tam takie rysuneczki [/quote]tam nie ma takich rysunków Link do komentarza Udostępnij na innych stronach More sharing options...
raV Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 gif - dlaczego? ilosc zczytanych bajtow to adres value? hę?fliu - dlaczego nie mozna ustawic takiej zmiennej? i dlaczego adres musi zaczynac sie od $? (czyli musi byc hex?) Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 Tak , to są hex-y ze zmienna to niewiem dokońca .....Twoja pętla poprawiona: [code=Delphi] procedure TForm1.Button1Click(Sender: TObject); var i : [YBY[BBNI BY[BBY[óĆćW2FBGF7G\"7FćR&VDg&&6W72G\"ŚV4)4(4( [/code]Wszystko sprawdzone !! - to dot. integer-ów ... do stringów tez tak mozesz zrobić... , wszystkie funkcje podane były wyżej ...PS : program bedzie troche długo działał i moze z pozoru wyglądać ze sie zawiesił ....Pozdrawiam Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 raV, a może to że wypisuje taką samą liczbe to przypadek? Probowałeś z innymi zakresami?CYTATi to kolejny wielki minus dla języków C A mi sie to podoba - jest bardziej hardkorowa! [quote] tam nie ma takich rysunków [/quote] Albo czepiasz sie słówek albo jesteś ślepy... Jest tabelka która przedstawia stringa w pamięci. Specjalnie napisałem 'takie rysuneczki' - to miała być przenośnia. Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
raV Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 dobra, a jak to jest z tym FindWindow? Jak mu podaje zmienną, to sie wykrzacza... (zarowno przy konwersji na PChar jak i PAnsiChar...) Link do komentarza Udostępnij na innych stronach More sharing options...
Gifanonim Napisano Czerwiec 21, 2006 Zgłoś Share Napisano Czerwiec 21, 2006 [quote] for i:=0 to 1000 do begin adr:=Ptr(i); ReadProcessMemory(ph, Adr, @Value), BytesRead); output.Add(inttostr(Value)); end;[/syntax:dee4aff3da] [/quote]Value używasz jako adresu i rownocześnie probujesz zapisać podnią ilość sczytanych bajtów -.-użyj 2 roznych zmiennych jedna na adres i jedna na dane. "Bogowie to bugi ludzkich umysłów" Gifanonim ® Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 [quote=Gifanonim]Sory zle przeczytalem ale spojrz na swoj kod[quote=delphi]for i:=0 to 1000 do begin adr:=Ptr(i); ReadProcessMemory(ph, Adr, @Value), BytesRead); output.Add(inttostr(Value)); end;[/syntax:509abf70aa][/quote]Value [b]urzywasz bajtów -.-[b]urzyjMSDN:[quote]BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead);[/quote]Gif, chyba wszystko sie zgadza. Przecież:ph - uchwytadr - wskaznik na dany adres@value - wskaznik do bufora do ktorego zostanie wstawiona pamiecsizeof(value) - wielkosc buforaBytesread - ile bajtow przeczytano (malo istotne)Adres (adr:=Ptr(i) zmienia się z kazdym kolejnym cyklem petli. Wydaje mi sie ze powinno dzialac dobrze. :? Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
raV Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 xDa czy ktoś wie coś o tej funkcji FindWindow? Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 [quote] HWND FindWindow(LPCTSTR classname, LPCTSTR caption) [/quote]albo szukasz po nazwie klasy ( :idea: ), albo po napisie na niebieskim pasku (nie wiem jak to na polski przetlumaczyc... naglowek?).Ps.Ide do szkoly Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
filuu Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 [b]Niewiem ja tu cos pisze ... podałem 2(3?) kody które działają .... aby dostosować je do swoich potrzeb trzeba dosłownie 3 minuty ... a tutaj nawet chyba nikt na to nie zwrócił uwagi .. Lubię cytryny ! Link do komentarza Udostępnij na innych stronach More sharing options...
Gifanonim Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 [quote] Gif, chyba wszystko sie zgadza. Przecież:ph - uchwyt adr - wskaznik na dany adres @value - wskaznik do bufora do ktorego zostanie wstawiona pamiec sizeof(value) - wielkosc bufora Bytesread - ile bajtow przeczytano (malo istotne) Adres (adr:=Ptr(i) zmienia się z kazdym kolejnym cyklem petli. Wydaje mi sie ze powinno dzialac dobrze. [/quote]No tak ale używasz jednej zmiennej do 2 rzeczy rownoczesnie :?: :!: "Bogowie to bugi ludzkich umysłów" Gifanonim ® Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 [quote=Gifanonim][quote]Gif, chyba wszystko sie zgadza. Przecież:ph - uchwyt adr - wskaznik na dany adres @value - wskaznik do bufora do ktorego zostanie wstawiona pamiec sizeof(value) - wielkosc bufora Bytesread - ile bajtow przeczytano (malo istotne) Adres (adr:=Ptr(i) zmienia się z kazdym kolejnym cyklem petli. Wydaje mi sie ze powinno dzialac dobrze.[/quote]No tak ale [b]urzywaszHę? Żeby zapisać coś do zmnienne musisz wiedzieć gdzie jest zapisana w pamięci (@value) oraz jaka ma wielkość (sizeof(value)). Nie wiem na czym polega problem.Filuu podał już działający kod więc nie wiem po co ciągniemy tę dyskusję...Niech autor tematu, destruction, powie czy problem został rozwiązany i koniec tematu Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
DarkAndrew Napisano Czerwiec 22, 2006 Zgłoś Share Napisano Czerwiec 22, 2006 Rav tu masz kodzik mi działa znajduje uchwyt okna notatnika [code=Delphi] 9Łz!+hvj2I+3HjxhvZ'j$j-jh'zśł)n3<(ZŹZ+WŚ*hŚ,śvzZaB[ÓB[LB[H[[Ę[6\"vf&Óć6Fr [/code]umnie to działa "Może wam pomoge, może nie, może pierdolcie w dupę się"-prof. Jarząbek Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.