我正在尝试从另一个应用程序中提取文本。这个应用程序现在可能很简单,我只是希望它能够工作(目前)。
我使用的代码:
public static class ModApi
{
[DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern uint SendMessageTimeoutText(IntPtr hWnd, int Msg, int countOfChars, StringBuilder text, uint flags, uint uTimeoutj, uint result);
public static string GetText(IntPtr hwnd)
{
var text = new StringBuilder(1024);
if (SendMessageTimeoutText(hwnd, 0xd, 1024, text, 0x2, 5000, 0) != 0)
{
return text.ToString();
}
MessageBox.Show(text.ToString());
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
我使用以下方式调用此代码:
IntPtr MytestHandle = new IntPtr(0x00788600);
HandleRef hrefHWndTarget = new HandleRef(null, MytestHandle);
Run Code Online (Sandbox Code Playgroud)
其中0x00788600是我正在运行的应用程序之一的示例(我 …
我已经搜索了整个Stack Overflow,但我找不到以下答案:
当我使用我的OpenFileDialog时,我打开的文件被阻止使用我的程序,直到我关闭我的程序.因此,如果我打开图像,则不允许在Windows资源管理器中替换该图像.
我认为这是处理我的OpenFileDialog的问题,但我不知道如何解决它...
我的代码:
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Title = "Open Image";
ofd.Filter = "PNG Image(*.png|*.png" +
"|GIF Image(*.gif|*.gif" +
"|Bitmap Image(*.bmp|*.bmp" +
"|JPEG Compressed Image (*.jpg|*.jpg";
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(ofd.FileName);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为该using块可以解决这个问题,但是没有...它仍然被程序使用.我想在图片框中加载图像,然后我希望图像再次可用(所以我可以重命名,替换它等等).
我正在运行一些完全为效率而构建的实现.我对这个主题还不是很有经验,并且想知道何时最好地声明变量.我的代码的以下部分特别是:
//Variables not declared in the next part are declared here (like xx, y1, x1.....)
for(s = 0; s < this.Width; s++)
{
y = ymin;
for(z = 0; z < this.Height; z++)
{
x1 = 0;
y1 = 0;
looper = 0;
while(looper < curMaxIter && Math.Sqrt((x1 * x1) + (y1 * y1)) < 2)
{
looper++;
xx = (x1 * x1) - (y1 * y1) + x;
y1 = 2 * x1 * y1 + y;
x1 = …Run Code Online (Sandbox Code Playgroud) c# ×3
cpu-speed ×1
declaration ×1
dispose ×1
extract ×1
performance ×1
picturebox ×1
text ×1
using ×1
variables ×1