C# System.Diagnostics.Process发送邮件&修改内存中值&发送表格格式内容邮件
来源:互联网 发布:icloud备份微信数据 编辑:程序博客网 时间:2024/06/02 05:31
StringBuilder sb = new StringBuilder("mailto:?");
sb.Append("subject=");
sb.Append(dgv.Rows[e.RowIndex].Cells["工位"].Value+" ");
sb.Append(Convert.ToDateTime(dgv.Rows[e.RowIndex].Cells["日期"].Value).ToString("yyyy-MM-dd"));
sb.Append(dgv.Rows[e.RowIndex].Cells["班次"].Value);
sb.Append(dgv.Rows[e.RowIndex].Cells["机台"].Value+"异常");
sb.Append("&body=hi,%0d发生时间:"); //%0d表示回车换行
sb.Append(dgv.Rows[e.RowIndex].Cells["发生时间"].Value);
sb.Append("%0d异常程度:" + dgv.Rows[e.RowIndex].Cells["异常程度"].Value);
sb.Append("%0d异常描述:" + dgv.Rows[e.RowIndex].Cells["异常描述"].Value);
System.Diagnostics.Process.Start(sb.ToString());
或用以下方法
using System.Runtime.InteropServices;
public class Win32
{
[DllImport("shell32.dll", EntryPoint = "ShellExecuteA")]
public static extern int ShellExecute(
int hwnd,
String lpOperation,
String lpFile,
String lpParameters,
String lpDirectory,
int nShowCmd
);
}
Win32.ShellExecute(0, string.Empty, sb.ToString(), string.Empty, string.Empty, 1);
----修改内存值
using System.Threading;
namespace WindowsApplication1
{
public partial class frmProcessMemory : Form
{
public frmProcessMemory()
{
InitializeComponent();
}
private const int BaseAddress = 0x00A35DB4;
private const string ProcessName = "notepad";
private void frmProcessMemory_Load(object sender, EventArgs e)
{
// while (true)
//{
if (Helper.GetPidByProcessName(ProcessName) == 0)
{
label1.Text=("对不起,您还没有启动红色警戒Ⅱ游戏!");
return;
}
var moneyAddress = Helper.ReadMemoryValue(BaseAddress, ProcessName) + 0x24C;//基址+偏移地址
Helper.WriteMemoryValue(moneyAddress, ProcessName, 999999999);
Helper.WriteMemoryValue(0x005402AA, ProcessName, 999999999);//直接写入地址
label1.Text=(DateTime.Now + ":" + Helper.ReadMemoryValue(moneyAddress, ProcessName));
Thread.Sleep(1000);
// }
}
}
}
---
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace WindowsApplication1
{
public abstract class Helper
{
#region API
[DllImport("kernel32.dll")]
public static extern bool ReadProcessMemory
(
IntPtr hProcess,
IntPtr lpBaseAddress,
IntPtr lpBuffer,
int nSize,
IntPtr lpNumberOfBytesRead
);
[DllImportAttribute("kernel32.dll")]
public static extern bool WriteProcessMemory
(
IntPtr hProcess,
IntPtr lpBaseAddress,
int[] lpBuffer,
int nSize,
IntPtr lpNumberOfBytesWritten
);
[DllImportAttribute("kernel32.dll")]
public static extern IntPtr OpenProcess
(
int dwDesiredAccess,
bool bInheritHandle,
int dwProcessId
);
[DllImport("kernel32.dll")]
private static extern void CloseHandle
(
IntPtr hObject
);
#endregion
#region 方法
/// <summary>
/// 根据窗口标题获取PID
/// </summary>
/// <param name="windowTitle">窗口标题</param>
/// <returns></returns>
public static int GetPidByTitle(string windowTitle)
{
int rs = 0;
Process[] arrayProcess = Process.GetProcesses();
foreach (Process p in arrayProcess)
{
if (p.MainWindowTitle.IndexOf(windowTitle) != -1)
{
rs = p.Id;
break;
}
}
return rs;
}
/// <summary>
/// 根据进程名获取PID
/// </summary>
/// <param name="processName">进程名字</param>
/// <returns></returns>
public static int GetPidByProcessName(string processName)
{
Process[] arrayProcess = Process.GetProcessesByName(processName);
foreach (Process p in arrayProcess)
{
return p.Id;
}
return 0;
}
/// <summary>
/// 根据窗口标题查找窗口句柄
/// </summary>
/// <param name="title">窗口标题</param>
/// <returns></returns>
public static IntPtr FindWindow(string title)
{
Process[] ps = Process.GetProcesses();
foreach (Process p in ps)
{
if (p.MainWindowTitle.IndexOf(title) != -1)
{
return p.MainWindowHandle;
}
}
return IntPtr.Zero;
}
/// <summary>
/// 读取内存中的值
/// </summary>
/// <param name="baseAddress">地址</param>
/// <param name="processName">进程名</param>
/// <returns></returns>
public static int ReadMemoryValue(int baseAddress, string processName)
{
try
{
var buffer = new byte[4];
IntPtr byteAddress = Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0); //获取缓冲区地址
IntPtr hProcess = OpenProcess(0x1F0FFF, false, GetPidByProcessName(processName));
ReadProcessMemory(hProcess, (IntPtr)baseAddress, byteAddress, 4, IntPtr.Zero); //将制定内存中的值读入缓冲区
CloseHandle(hProcess);
return Marshal.ReadInt32(byteAddress);
}
catch
{
return 0;
}
}
/// <summary>
/// 将值写入指定内存地址中
/// </summary>
/// <param name="baseAddress">地址</param>
/// <param name="processName">进程名</param>
/// <param name="value"></param>
public static void WriteMemoryValue(int baseAddress, string processName, int value)
{
IntPtr hProcess = OpenProcess(0x1F0FFF, false, GetPidByProcessName(processName)); //0x1F0FFF 最高权限
WriteProcessMemory(hProcess, (IntPtr)baseAddress, new[] { value }, 4, IntPtr.Zero);
CloseHandle(hProcess);
}
#endregion
}
}
////////////发送HTML表格格式内容邮件
private string GetHTMLData(string title,DataTable dt, int startCol)
{
StringBuilder sb = new StringBuilder(title);
sb.Append("<html><body><table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' BorderColor='#222222' bgcolor='#FFFFFF'>");
int rowCount = dt.Rows.Count;
int colCount = dt.Columns.Count;
sb.Append("<tr>");
for (int i = startCol; i < colCount; i++)
{
sb.Append("<td width=70>" + dt.Columns[i].ColumnName + "</td>");
}
sb.Append("</tr>");
for (int i = 0; i < rowCount; i++)
{
sb.Append("<tr>");
for (int j = startCol; j < colCount; j++)
{
sb.Append("<td> " + dt.Rows[i][j].ToString() + "</td>");
}
sb.Append("</tr>");
}
sb.Append("</table></body></html>");
return sb.ToString();
}
private bool SendHTMLMail(string SendFrom, string SendTo, string SendSubject, string SendBody)
{
bool flag;
try
{
string username = Environment.UserName;
MailMessage message = new MailMessage();
message.From = new MailAddress(SendFrom);
message.To.Add(SendTo);
message.Subject = SendSubject;
message.Body = SendBody;
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Priority = MailPriority.Normal;
SmtpClient sc=new SmtpClient();
sc.Host="172.66.222.22";
sc.Send(message);
flag = true;
}
catch
{
flag = false;
}
return flag;
}
- C# System.Diagnostics.Process发送邮件&修改内存中值&发送表格格式内容邮件
- C#发送邮件 C#发送自定义的html格式邮件
- 如何发送hmtl格式的邮件内容(网页邮件)
- C# 发送邮件内容嵌入图片
- .NET C# 发送邮件内容嵌入图片
- C# 发送邮件内容嵌入图片
- magento修改发送邮件内容和订单邮件提醒设置
- c#邮件发送 邮件类
- C#发送邮件
- C# 发送邮件
- C#发送邮件
- C#发送邮件
- 用C#发送邮件
- C# 发送注册邮件
- c# 发送邮件
- C#发送邮件
- C# 发送邮件
- c#发送邮件
- Client向HDFS写入数据的过程解析
- 2013年微软实习生招聘笔试题目(c/c++你懂多少?)
- Ubuntu下安装Nginx
- 仿苹果的产品展示菜单(横向滚动)
- GCC编译器
- C# System.Diagnostics.Process发送邮件&修改内存中值&发送表格格式内容邮件
- Ubuntu 用户安装漂亮易操作 Cinnamon
- poj 2141
- 传递动态内存
- Swt/Jface treeViewer的使用
- jmeter- 函数测试模式
- 结构体的内存对齐问题与位域
- CSS入门系列:第一部分 基础知识
- sql server 当月第一天和最后一天的SQL