|
|
2013/8/26(Mon) 20:30:01|NO.56668
観覧していただき、ありがとうございます。
a = -1
optionparam = "1\n2\n3\n4\n5\n6\n7\n8"
pos 17, 45
objsize 40
combox a, 100, optionparam
sdim var_26
var_27 = "プロセス名"
GetID var_27, var_26
DWriteMemory var_26,$436DB5, int(a)+1, 1
という感じに、1〜8という数字をメモリ書き換えはできるのですが、
これを例えば
A1
A2
A3
A4 と選択できるようにし、
A1であれば、75
A2であれば、EB
などのように書き換えをできるようにしたいのです。
忙しいところかもしれませんが、もしよかったら
ソース教えていただけないでしょうか?
|
|
2013/8/26(Mon) 21:02:52|NO.56672
何が「という感じに」なのか、中途半端すぎて分かりません。
|
|
2013/8/26(Mon) 21:17:54|NO.56673
A1
A2
A3
A4 と選択できるようにし、
A1であれば、75
A2であれば、EB
などのように書き換えをできるようにしたいのです。
どういう意味なのか, もう少し分かり易く教えてください.
|
|
2013/8/27(Tue) 12:47:10|NO.56682
comboxの中には
A1
A2
A3 などを選択できるようにし、
A2を選択されたら、75 という数字にプロセスにメモリ書き換え。
A2を選択したら、74 という数字にプロセスにメモリ書き換えしたいのです。
と言う風な感じなのですが理解いただけるでしょうか?
少し説明下手ですみません。
optionparam = "A1\nA2"
pos 17, 45
objsize 40
combox a, 100, optionparam
sdim var_26
var_27 = "プロセス名"
GetID var_27, var_26
DWriteMemory var_26,$436DB5, int(a)+1, 1
combox欄で A1を選択したら
74 と言う数字を、int(a)の場所にいれたい。
|
|
2013/8/27(Tue) 15:46:05|NO.56684
/*こう言う事?(コンボボックスの監視)*/
objsize 40
combox ii,100,"A1\nA2\nA3\nA4\n"
oncmd gosub *label,$111 ;WM_COMMAND
stop
*label
if (lparam == objinfo(0,2)) { ;
if ((wparam >>16 & $FFFF) == 1) {switch ii ;CLICK
case 0 :ss = 74 :swbreak
case 1 :ss = 75 :swbreak
case 2 :ss = 76 :swbreak
case 3 :ss = 77 :swbreak
swend
title str(ss)} }
return
|
|
2013/8/27(Tue) 17:04:04|NO.56688
A2で来れば75という数字に置き換えるだけ。
>>プロセスにメモリ書き換え。
余計な部分はスッキリ消去して、不明点だけに集中しましょう。
|
|
2013/8/27(Tue) 20:28:06|NO.56694
#uselib "HMemory.dll"
#func DWriteMemory "DWriteMemory" var, int, int, int
#func GetID "GetID" str, var
ii = -1
objsize 40
combox ii,100,"A1\nA2\nA3\nA4\n"
oncmd gosub *sssw,$111
stop
sdim var_5
var_6 = "SChatPC.exe"
GetID var_6, var_5
*sssw
if (lparam == objinfo(0,2)) { ;
if ((wparam >>16 & $FFFF) == 1) {switch ii ;CLICK
case 0 :ss = $74 :swbreak
case 1 :ss = 75 :swbreak
case 2 :ss = 76 :swbreak
case 3 :ss = 77 :swbreak
swend
DWriteMemory var_5, $004FC5B0, str(ss) ,1
} }
return
ソースありがとうございます。
改良し、ちょっとやってみたのですがエラーがおきます
当然やり方を間違っているのだと思いますが。。
どうすればよいでしょう・・
|
|
2013/8/27(Tue) 20:56:06|NO.56699
これでどうでしょうか(高校1年生より).
#uselib "HMemory.dll"
#func DWriteMemory "DWriteMemory" var, int, int, int
#func GetID "GetID" str, var
#define WM_COMMAND 0x0111
// 上位ワードと下位ワード
#define ctype LOWORD(%1) (%1 & $FFFF)
#define ctype HIWORD(%1) ((%1 >> 16) & $FFFF)
screen 0, 640, 480, 0
cls
oncmd gosub *sssw, WM_COMMAND
ss = 0
SelectedIndex = -1
objsize 40
combox SelectedIndex, 100, "A1\nA2\nA3\nA4"
hCombox = objinfo_hwnd(stat)
sdim pid
pname = "SChatPC.exe"
GetID pname, pid
stop
*sssw
if (lparam == hCombox) {
if (HIWORD(wParam) == 1) {
switch SelectedIndex
case 0 :ss = 74 :swbreak
case 1 :ss = 75 :swbreak
case 2 :ss = 76 :swbreak
case 3 :ss = 77 :swbreak
swend
DWriteMemory pid, $004FC5B0, ss, 1
title str(ss)
}
}
return
|
|
2013/8/27(Tue) 21:01:36|NO.56700
ところで, SChatPC.exeって何ですか?
また, 何のためにメモリ書き換えをするのでしょうか?
|
|
2013/8/27(Tue) 21:17:00|NO.56701
特に理由はありませんw
フッと思いついてできるのかなと思い
試してみたかったのですw
|
|
2013/8/27(Tue) 21:17:26|NO.56702
解決です!
ありがとうございました!
|
|