幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3549|回复: 6

[其他教程] 【脚本】伪·文字输入框 Ver1.1〖免dll免exe兼容VX〗

[复制链接]

1

主题

4

帖子

53

积分

②入门

积分
53
发表于 2009-4-5 19:29:39 | 显示全部楼层 |阅读模式
伪·文字输入框

——Defanive

更新 Version 1.1 :
修正了窗口进程被杀导致的游戏卡死


现在的输入法都不怎么方便用,而且还要附带一些DLL和EXE,用起来实在麻烦。。。

利用MsHta弄了个伪劣假冒的文字输入框。。。

话说本来只有5行核心代码的,结果问题太多了,一加代码就多起来。。。

10s问题耗了我5行左右,结果编码问题又浪费了好多时间。。。

目前提示信息不支持中文,但返回信息支持中文。。。

足够了。。。



最新测试:

本脚本兼容VX,只需将55行Graphics.update删去即可



贴图预览:




  1. #==============================================================================#  # ■ Code_Input
  2. #  
  3. #------------------------------------------------------------------------------
  4. #  
  5. #  伪·文字输入框  Version 1.1
  6. #  
  7. #==============================================================================
  8. #==============================================================================
  9. #  
  10. #  伪·文字输入框
  11. #  —— By Defanive
  12. #  
  13. #  能够弹出一个InputBox窗口,输入完成后返回值
  14. #
  15. #  Version 1.1 修正:
  16. #  防止窗口进程被杀导致的游戏卡死
  17. #  
  18. #  目前的缺陷:
  19. #  input参数不支持中文
  20. #  
  21. #------------------------------------------------------------------------------
  22. #  
  23. #  使用:
  24. #  变量 = Input(提示, 标题, 默认值)
  25. #  
  26. #==============================================================================
  27. #==============================================================================
  28. #  API Functions
  29. #==============================================================================
  30. Shell=Win32API.new('kernel32','WinExec','pl','l')
  31. M2w=Win32API.new('kernel32','MultiByteToWideChar','ilpipi','i')
  32. W2m=Win32API.new('kernel32','WideCharToMultiByte','ilpipipp','i')
  33. Find=Win32API.new('user32','FindWindowA','p,p','l')
  34. IsWnd=Win32API.new('user32','IsWindow','l','l')
  35. #==============================================================================
  36. #  Main Function
  37. #==============================================================================
  38. def input(text,title,strs)
  39.   tdir=Dir.getwd+"/input.tmp"
  40.   sname='mshta vbscript:createobject("scripting.filesystemobject").opentextfile("'+tdir+'",2,True).write(inputbox("'+text+'","'+title+'","'+strs+'"))(window.close)'
  41.   Shell.call(sname,1)
  42.   sleep(1)
  43.   hw=Find.call(nil,title)
  44.   while true
  45.     Graphics.update
  46.     break if IsWnd.call(hw)==0
  47.   end
  48.   s=text_conv(File.open(tdir).read)
  49.   return s[0,s.size-1]
  50. end
  51. #==============================================================================
  52. #  Convert Function
  53. #==============================================================================
  54. def text_conv(text)
  55.   len=M2w.call(0,0,text,-1,nil,0)
  56.   buf="\0"*(len*2)
  57.   M2w.call(0,0,text,-1,buf,buf.size/2)
  58.   len=W2m.call(65001,0,buf,-1,nil,0,nil,nil)
  59.   ret="\0"*len
  60.   W2m.call(65001,0,buf,-1,ret,ret.size,nil,nil)
  61.   return ret
  62. end
复制代码

需要使用时 变量 = Input(提示, 标题, 默认值)

具体参考Ver1.1范例:

XP:http://bbs.66rpg.com/upload_prog ... er1.1_119447684.rar
VX:http://bbs.66rpg.com/upload_prog ... er1.1_119449275.rar
回复

使用道具 举报

49

主题

189

帖子

2339

积分

禁止发言

CSCN 汉化组

积分
2339
发表于 2009-4-5 20:22:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
Cleaned.
回复 支持 反对

使用道具 举报

1

主题

4

帖子

53

积分

②入门

积分
53
 楼主| 发表于 2009-4-5 20:24:08 | 显示全部楼层
VX还会有编码问题么。。。

正在制作中。。。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

53

积分

②入门

积分
53
 楼主| 发表于 2009-4-5 20:28:11 | 显示全部楼层
VX中直接有`notepad.exe`会出错吗?

我这边是Vista,XP的帮忙测试下。。。
回复 支持 反对

使用道具 举报

49

主题

189

帖子

2339

积分

禁止发言

CSCN 汉化组

积分
2339
发表于 2009-4-5 20:47:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
Cleaned.
回复 支持 反对

使用道具 举报

14

主题

59

帖子

1860

积分

⑥精研

不知道这里是显示....

积分
1860
发表于 2009-4-5 20:58:40 | 显示全部楼层
这个好~接近真实
你你三嗰三你嗰嗰
回复 支持 反对

使用道具 举报

1

主题

4

帖子

53

积分

②入门

积分
53
 楼主| 发表于 2009-4-5 21:09:05 | 显示全部楼层
想不到直接将代码复制过去VX也能运行。。。

语法没多大变化啊。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-17 00:02 , Processed in 0.020680 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表