冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 593|回覆: 1
打印 上一主題 下一主題

[求助] C#寫入CE數據請益

[複製鏈接]

52

主題

1

好友

140

積分

註冊會員

Rank: 2

UID
191737
帖子
322
主題
52
精華
0
積分
140
楓幣
680
威望
124
存款
2601
贊助金額
0
推廣
1
GP
53
閱讀權限
20
在線時間
327 小時
註冊時間
2017-6-13
最後登入
2024-11-1

Android勳章 2021端午節紀念勳章 2024年紀念勳章 私服達人 太陽勳章 解說達人 論壇粉絲 發帖達人 神手勳章 積分勳章

跳轉到指定樓層
1
發表於 2023-8-3 19:00:40 |顯示全部樓層 |倒序瀏覽
小弟因為私服不能使用CE,所以開始研究如何用其他方式寫入數據,目前嘗試使用C#來引用CE的DLL來達到CE數據的功能,但是遇到一個問題,雖然已經可以得到遊戲的視窗ID與PID,但是數據開關都沒反應,想請大神們幫小弟解惑QQ
以下是我引用DLL的程式碼:
  1. [DllImport("User32.dll", EntryPoint = "FindWindow")]
  2.         public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
  3.         [DllImport("User32.dll",CharSet = CharSet.Auto)]
  4.         public extern static int GetWindowThreadProcessId(IntPtr hWnd, out int ID);


  5.         [DllImport("kernel32.dll")]
  6.         public static extern int OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

  7.         [DllImport(@"C:\path_to_dll\ceautoassembler.dll", EntryPoint = "CEInitialize")]
  8.         public extern static int CEInitialize
  9.             (
  10.                 int ngPassedPID,
  11.                 int Phandle
  12.             );
  13.         [DllImport(@"C:\path_to_dll\ceautoassembler.dll", EntryPoint = "CEAutoAsm")]
  14.         public extern static bool CEAutoAsm
  15.             (
  16.                 string Script,
  17.                 bool AllocID,
  18.                 int Alloc
  19.             );
複製代碼
再來是偵測PID與開啟數據的程式碼:
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             IntPtr maindHwnd = FindWindow(null, "MapleStory");
  4.             const int PROCESS_ALL_ACCESS = 0x1F0FFF;
  5.             if (maindHwnd != IntPtr.Zero)
  6.             {
  7.                 int ID;
  8.                 int Process;
  9.                 MessageBox.Show("鎖定成功!");
  10.                 GetWindowThreadProcessId(maindHwnd, out ID);
  11.                 Process = OpenProcess(PROCESS_ALL_ACCESS, false, ID);
  12.                 label3.Text = maindHwnd.ToString();
  13.                 label4.Text = ID.ToString();
  14.                 if (ID != 0)
  15.                 {
  16.                     CEInitialize(ID, Process);
  17.                 }
  18.             }
  19.             else
  20.             {
  21.                 MessageBox.Show("鎖定失敗!");
  22.             }
  23.         }

  24.         private void label1_Click(object sender, EventArgs e)
  25.         {

  26.         }

  27.         private void checkBox1_CheckedChanged(object sender, EventArgs e)
  28.         {
  29.             if(checkBox1.Checked)
  30.             {
  31.                 //取出字串
  32.                 label2.Text = Properties.Resources.script;
  33.                 CEAutoAsm(Properties.Resources.script, true, 0);

  34.             }
  35.             else
  36.             {
  37.                 label2.Text = "";
  38.                 CEAutoAsm(Properties.Resources.script, false, 0);
  39.             }

  40.         }

  41.         private void checkBox2_CheckedChanged(object sender, EventArgs e)
  42.         {
  43.             if (checkBox2.Checked)
  44.             {
  45.                 CEAutoAsm(Properties.Resources.script2, true, 0);


  46.             }
  47.             else
  48.             {
  49.                 CEAutoAsm(Properties.Resources.script2, false, 0);
  50.             }
  51.         }
複製代碼
補充:CE數據已經從resources建立,並可以正常使用呼叫,所以不太可能是數據寫錯的問題
[發帖際遇]: u11334342 因為參加「太陽花學運」被黨看見,而成功加入DDP側翼網軍,領取網軍獎勵 1 楓幣 幸運榜 / 衰神榜
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1彩票
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

52

主題

1

好友

140

積分

註冊會員

Rank: 2

UID
191737
帖子
322
主題
52
精華
0
積分
140
楓幣
680
威望
124
存款
2601
贊助金額
0
推廣
1
GP
53
閱讀權限
20
在線時間
327 小時
註冊時間
2017-6-13
最後登入
2024-11-1

Android勳章 2021端午節紀念勳章 2024年紀念勳章 私服達人 太陽勳章 解說達人 論壇粉絲 發帖達人 神手勳章 積分勳章

2
發表於 2023-8-3 21:44:42 |顯示全部樓層
smilelin0419 發表於 2023-8-3 20:13
現在 X64 的楓谷 「好像」不能用ceautoassembler.dll (?)
有請專業的來回答 @qwas963563
  ...

對對我現在就是猜CEautoassembler現在不能用,如果用64位元編譯程式就會報錯,用32位元就沒事但是數據沒反應..

點評

u11334342  目前查到的資料好像都沒看到有人在C#用asm_...  發表於 2023-8-4 22:11
smilelin0419  噢對 那個是給x86的 c#應該也可以用 asm_ 吧  發表於 2023-8-3 23:15
回覆

使用道具 舉報

您需要登入後才可以回文 登入 | 立即註冊

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-11-1 08:03

回頂部