我一直在尝试使用互斥体的代码,但在单击按钮后我无法打开我的exe,我成功地没有在单击按钮时在任务栏上创建应用程序的多个条目,但我的应用程序仅在我关闭表单时启动。我想要在单击按钮时启动我的应用程序,如果应用程序已经启动,那么我需要专注于以前正在运行的应用程序..我如何才能解决我启动以及聚焦并再次重新打开该应用程序的需要..我正在向您发送我在按钮单击事件上使用的代码,请修改我的错误...
在program.cs处编码
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
System.Diagnostics.Process.Start("filename.exe");
}
Run Code Online (Sandbox Code Playgroud)
:
在 form1.cs 中完成编码
private void button1_Click(object sender, EventArgs e)
{
try
{
bool createdNew;
Mutex m = new Mutex(true, "e-Recording", out createdNew);
System.Diagnostics.ProcessStartInfo f = new System.Diagnostics.ProcessStartInfo("C:\\windows\\system32\\rundll32.exe", "C:\\windows\\system32\\shimgvw.dll,ImageView_Fullscreen " + "filename.exe".TrimEnd(null));
if (createdNew) Launch();
else
{
MessageBox.Show("e-Recording is already running!", "Multiple Instances");
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个jp2的字节数组,如何将其转换为JPG文件?谢谢
谢谢所有的答案.我做了一些分歧,几乎成功了.我是这样做的:
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
String id = (String)reader["ID"];
blob = (byte[])reader["Data"];
using (MemoryStream ms = new MemoryStream(blob))
{
FIBITMAP dib = FreeImage.LoadFromStream(ms);
if (dib.IsNull)
{
continue;
}
string jpgName = getJpgName(id);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib, jpgName, FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYNORMAL);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我byte[]从数据库中读取.现在又出现了另一个问题; 存在内存泄漏!有人可以把它拿出来吗?
在mysql MyISAM类型表中有一个列Image类型mediumblob并存储捕获的图像.我得到了一些有趣且有问题的图像.一些图像是gradually losing数据.
Field type
--------------------------
image mediumblob
Run Code Online (Sandbox Code Playgroud)
my.ini 最大允许数据包大小设置 max_allowed_packet = 8M

这就是问题
当C#应用程序每次从服务器获取数据时,这些图像逐渐丢失数据并随机大小.我10-12在100000+图像数据中得到了这样的坏图像.
这种行为可能是什么原因?任何人都有任何想法/解决方案如何解决/避免这个问题.
更新1:
从PictureBox读取字节
MemoryStream ms = new MemoryStream();
byte[] ret = null;
try
{
picturebox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Data = new byte[ms.Length];
ms.Read(Data, 0, (int)ms.Length);
ret = byteData;
ms.Close();
}
Run Code Online (Sandbox Code Playgroud)
将bytes数组保存为数据库作为中等blob数据.从数据库中检索数据时,我正在转换读取器数据
byte[] Data = (byte[])reader["Image"];
Run Code Online (Sandbox Code Playgroud) 我有这个问题,
当我运行vs2010(调试)(打开cv 2.4.0)时facerec_demo.cpp给我程序这个错误
OpenCV错误:图像步骤错误(矩阵不连续,因此其行数无法更改)在未知函数中,文件......\src\opencv\modul es\core>\src\matrix. cpp,801行
这个错误导致我在facerec.cpp中的这一行
(Fisherfaces :: train(InputArray src,InputArray _lbls)
Mat data = asRowMatrix(src, CV_64FC1); <-- this gets a exeption, not handled.
Run Code Online (Sandbox Code Playgroud)
和ai在pgm img数据库中使用,这是我原来的*facerec_demo.cpp*文件
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
using namespace cv;
using namespace std;
vector<string> split_at_commas(const string& row)
{
vector<string> res;
istringstream buf(row);
string s;
while (getline(buf, s, ';'))
res.push_back(s);
return res;
}
Mat toGrayscale(InputArray _src) {
Mat src = _src.getMat();
// only allow one channel
if(src.channels() != …Run Code Online (Sandbox Code Playgroud) 我试图在C#和Java中加密相同的数据.如果数据超过7个字节,则Java和C#加密值不相同.
输入1:一
java的输出:FrOzOp/2Io8 =
C#输出:FrOzOp/2Io8 =
输入2:abc
j:H9A/ahl8K7I =
c#:H9A/ahl8K7I =
输入3:aaaaaaaa (问题)
j:Gxl7e0aWPd7j6l7uIEuMxA ==
c#:Gxl7e0aWPd7sf1xR6hK4VQ ==
这是C#和Java方法的实现.
C#代码:
public String saltTxt = "12345678";
public String Encrypt(String txt)
{
byte[] data = Encrypt(Encoding.UTF8.GetBytes(txt));
DESCryptoServiceProvider alg = new DESCryptoServiceProvider();
alg.Key = Encoding.UTF8.GetBytes(saltTxt.ToCharArray(), 0, cprovider.KeySize / 8);
alg.IV = new byte[8];
MemoryStream ms = new MemoryStream();
CryptoStream stem = new CryptoStream( ms, cprovider.CreateEncryptor(),CryptoStreamMode.Write);
stem.Write(txt, 0, txt.Length);
stem.FlushFinalBlock();
data = ms.ToArray();
return …Run Code Online (Sandbox Code Playgroud)