HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0826
ミュウcombosで指定し、メモリ書き換え方法10解決


ミュウ

リンク

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

などのように書き換えをできるようにしたいのです。

忙しいところかもしれませんが、もしよかったら
ソース教えていただけないでしょうか?



この記事に返信する


KA

リンク

2013/8/26(Mon) 21:02:52|NO.56672

何が「という感じに」なのか、中途半端すぎて分かりません。



Keisuke

リンク

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)の場所にいれたい。



fortunehill

リンク

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



KA

リンク

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


ソースありがとうございます。
改良し、ちょっとやってみたのですがエラーがおきます
当然やり方を間違っているのだと思いますが。。
どうすればよいでしょう・・



Keisuke

リンク

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



Keisuke

リンク

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

解決です!
ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.