【问题标题】:AutoHotKey to Visual Studio 2010Visual Studio 2010 的 AutoHotKey
【发布时间】:2013-10-31 10:19:03
【问题描述】:

我有 4 个 AutoHotKey 程序,现在有没有办法将自动热键代码转换为 Visual Studio 代码? 我需要这个,因为我正在制作一个 Visual Studio 程序,并且需要一个可以做某事的代码,所以我可以使用 autohotkey 来完成,但不能使用 Visual Studio。 也许有一个网站可以转换它或什么的?

其中一个代码是:

    #SingleInstance force
#Persistent

OnExit, ExitRoutine
xpos := A_ScreenWidth/2
ypos := A_ScreenHeight/2
hDrwArea := DllCall("GetDC", "uint", Null)
SetTimer, SetPixel, 1


SetPixel:

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos - 2, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos + 2, "uint", 255, "uint", 0, "uint", 0)


DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos - 2, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos + 2, "uint", 255, "uint", 0, "uint", 0)


DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos - 2, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos, "int", ypos + 2, "uint", 255, "uint", 0, "uint", 0)


DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 2, "int", ypos, "uint", 255, "uint", 0, "uint", 0)

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 6, "int", ypos + 6, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 6, "int", ypos - 6, "uint", 255, "uint", 0, "uint", 0)
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)

DllCall("SetPixel", "uint", hDrwArea, "int", xpos - 9, "int", ypos + 9, "uint", 255, "uint", 0, "uint", 0)
DllCall("SetPixel", "uint", hDrwArea, "int", xpos + 9, "int", ypos - 9, "uint", 255, "uint", 0, "uint", 0)

Return

ExitRoutine:

ExitApp

【问题讨论】:

  • 什么语言?、visual basic、C#、...

标签: autohotkey


【解决方案1】:

与其将 Autohotkey 代码转换为 C# 或 VB.NET,不如尝试让您的 AHK 脚本可从其他程序调用。将 AHK 脚本编译为 exe 可能是一个很好的解决方案。来回传递数据可能很棘手,但它可能比转换代码更容易。

【讨论】:

  • 您可以使用隐藏窗口在正在运行的应用程序之间进行通信(有更好的方法,但这很容易)。看看这个线程:autohotkey.com/board/topic/2672-inter-script-communication
  • @BGM!非常感谢分享这个!这看起来是我正在处理的问题的完美解决方案。我寻找并寻找一种将数据从脚本传递到脚本的好方法。我最终写入了发送方的文件,并不断地在接收方寻找所述文件。它运作良好,但它让我感到恶心。 :)
猜你喜欢
  • 2018-04-15
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-09
  • 2011-07-13
  • 2017-06-03
相关资源
最近更新 更多