Læs "procedure" adresse fra et andet program (Debug)

Tags:    delphi

Nogle som ved hvordan man "læser" et andet programs "procedure" adresse.

F.eks. hvis notepad er åbent og der bliver trykkey på Filer->Gem som. Hvordan laver jeg et delphi program som gør når du har notepad åbent kan trykke på Filer->Gem som. Det kunne lige så godt en knap.

Jeg ved godt man kan bruge PostMessage/SendMessage og trykke på knappen, men er det muligt at starte den procedure som knappen ville have kørt når der blev trykket.

Jeg kunne forstille mig man er nød til at finde den "adresse" hvor proceduren er.



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
GetProcAddress http://msdn.microsoft.com/da-dk/library/ms683212(en-us,VS.85).aspx

Den kræver at du har et HMODULE til det program hvor du vil finde proceduren, og at du kender procedurens navn.



GetProcAddress http://msdn.microsoft.com/da-dk/library/ms683212(en-us,VS.85).aspx

Den kræver at du har et HMODULE til det program hvor du vil finde proceduren, og at du kender procedurens navn.

Det kræver så også at den eksporterer de symbols, hvilket den ikke gør ifølge objdump

Så til OP, nej uden en debugger og hardkodning af pointer offsets, eller hooks på bestemte window messages, så er det ikke muligt. Og generelt er de andre ting jeg nævnte heller ikke nemme eller hensigtsmæssige at bruge



Nu baserede jeg mit svar på at han brugte notepad som et eksempel, og ikke som et konkret bud på hvad han skulle bruge det til. :)

Men ja, du har ret, proceduren skal være eksporteret.



Kig på detours biblioteket fra Microsoft research, det kan netop det




Men hvad findes der er kode debug programmer? så man kan få nogle informationer omkring et program og så skrive noget delphi kode til det.



detours kan jo også kun bruges til Visual Studio?



?



t