вы не можете изменить константные переменные,
const courses = [...this.state.courses];
courses[index].courseGrade = courseGrade;
this.setState({courses});
, если у вас есть значение и индекс ваших данных в массиве, просто сделайте это
let state = {...this.state}
state.courses[INDEX].courseGrade = courseGrade;
this.setState({...state})
я надеюсь, что это полезно
Возможно ли это сделать в C #?
Да. Но очень тяжело. Это трудно из собственного приложения, в котором нет импеданса, не соответствующего неуправляемому представлению процессов и их карт памяти, которые вам нужно будет использовать.
Соображения:
Предложения:
Полагаю, вы могли бы использовать ReadProcessMemory Windows API call. Для этого есть даже предварительно созданная подпись P / Invoke , так что вам не нужно беспокоиться о ее ручной обработке. Вы просматриваете память процесса, ищите в ней свой шаблон, и все готово.
Это может помочь вам найти правильный путь:
private static int GetMemoryAddressOfString(byte[] searchedBytes, Process p)
{
//List<int> addrList = new List<int>();
int addr = 0;
int speed = 1024*64;
for (int j = 0x400000; j < 0x7FFFFFFF; j+= speed)
{
ManagedWinapi.ProcessMemoryChunk mem = new ProcessMemoryChunk(p, (IntPtr)j, speed + searchedBytes.Length);
byte[] bigMem = mem.Read();
for (int k = 0; k < bigMem.Length - searchedBytes.Length; k++)
{
bool found = true;
for (int l = 0; l < searchedBytes.Length; l++)
{
if(bigMem[k+l] != searchedBytes[l])
{
found = false;
break;
}
}
if(found)
{
addr = k+j;
break;
}
}
if (addr != 0)
{
//addrList.Add(addr);
//addr = 0;
break;
}
}
//return addrList;
return addr;
}