Новичок
-
Автор темы
- #1
Именно на C# нигде не мог найти рабочую реализацию поиска строк в процессе, так что покажу свою:
Обязательно Для работы рядом нужна mem.dll!!!
Click ->
(
Пример использование:
Source:
using s_buffer = System.String;
public class Memory
{
public static class MemoryProcessor
{
public const string DLL_PATH = "mem.dll";
#region DLL Import
[DllImport(DLL_PATH)]
private static extern int setPID(int pID);
[DllImport(DLL_PATH)]
private static extern void setString(string str);
[DllImport(DLL_PATH)]
private static extern IntPtr getResult(int index);
[DllImport(DLL_PATH)]
private static extern int run();
[DllImport(DLL_PATH)]
private static extern int getIndex();
[DllImport(DLL_PATH)]
private static extern void clearALL();
#endregion
public static void Run() => run();
public static string getRegion()
{
StringBuilder buffer
= new StringBuilder();
int index = getIndex();
for (int i = 0; i < index; i++)
{
buffer.AppendLine(Marshal.PtrToStringAnsi(getResult(i)));
}
return buffer.ToString();
}
public static void startRegion(int pID) => setPID(pID);
public static void setRegion(string str) => setString(str);
public static void stopRegion()
{
clearALL();
}
}
public static string SearchString(int pID, params string[] search)
{
//Создаем буффер типа string,
// и запускаем регион с нашим pID
s_buffer buffer;
MemoryProcessor.startRegion(pID);
//Проходимся по всем параметрам
// и добавляем в setRegion
foreach (string line in search)
{
MemoryProcessor.setRegion(line);
}
//Запускаем наш процесс
MemoryProcessor.Run();
//Получаем итоговый результат
// типа string.
buffer = MemoryProcessor.getRegion();
//Очищаем наш процесс, для
// наших будущих процессов.
MemoryProcessor.stopRegion();
//Возвращаем итоговый результат.
return buffer;
}
}
Обязательно Для работы рядом нужна mem.dll!!!
Click ->
Пожалуйста, авторизуйтесь для просмотра ссылки.
<- Click(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)Пример использование:
How use:
int pid = Process.GetProcessesByName("telegram")[0].Id;
string result
= Memory.SearchString(pid, "hello");
Console.WriteLine(result);