我用的是2003 .net,
解决方案 »
- winform下listview 上面的item覆盖下面item.
- C# 向word写入数据后,关闭word时出错
- 求高手赐教,如何通过HTTP、SOCKS代理发送邮件
- 弱弱的问一个泛型的问题
- 关于iframe的问题请教
- 如何在标题栏重画后,使它的按钮也能改变?
- 如何把输入法的词库道出来,比如搜狗输入法的词库?
- dataView的排序问题。在线等!
- 配置文件appsetting中只能有key和value属性么?
- C##################!!关于vc有而c#中没有的一些功能的问题请教!!########################C
- 在有框架的页面中怎么在点一个框架中的数据时让另一个页面自动刷新呢
- 关于类似“编程思想”、“设计模式”等理论的重要性的问题,与各位探讨,欢迎踊跃发言!
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为: kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun (注:这项内容也可以用记事本程序打开Mscomm.srg文件看到) 这是手工注册的过程,非常繁琐。我得程序也是按照这个顺序执行的。 源代码: //
#i nclude
#i nclude
#i nclude void CPFile(char file);
void regsted();
void regOCX(); void CPFile(char file[],char tarpath[]) //将三个文件拷贝到系统目录
{
char tempsys[100];
char *r;
char *t; r=tarpath;
t=tempsys;
strcpy(t,r); char path[256];
char *p;
char *q;
GetModuleFileName(GetModuleHandle(NULL),path,sizeof(path)); p = path;
while(strchr(p,'\\'))
{
p = strchr(p,'\\');
p++;
}
*p = '\0';
p=strchr(path,'\0');
q=file;
strcpy(p,q); p=strchr(tempsys,'\0');
*p = '\\';
p++;
q=file;
strcpy(p,q); CopyFile(path,tempsys,FALSE); } void regsted() //将相关信息写入注册表
{
HKEY hKey;
DWORD dwDip;
LPBYTE owner_Get=new BYTE[80];
DWORD type_1=REG_SZ;
DWORD cbData_1=80;
long exist=RegQueryValueEx(HKEY_CLASSES_ROOT, "Licenses\\4250E830-6AC2-11cf-8ADB-00AA00C00905", NULL, &type_1, owner_Get, &cbData_1); if(exist!=ERROR_SUCCESS)
{
long ret = RegCreateKeyEx(HKEY_CLASSES_ROOT,"Licenses\\4250E830-6AC2-11cf-8ADB-00AA00C00905",0l,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDip);
DWORD leng=37; char key[37]="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun";
LPBYTE lpb=new BYTE(37);
for(int i=0;i<37;i++)
lpb[i]=key[i];
long ret2 = RegSetValueEx(hKey,NULL,NULL,REG_SZ,lpb,leng); }
}
void regOCX()//调用新进程注册组件
{ char commandline[256];
char windowsdir[256];
char lastcommandline[257]; PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)}; char OCXfile[50]="\\MSCOMM32.OCX";
char REGfile[50]="\\regsvr32.exe";
char *p,*q;
GetSystemDirectory(windowsdir, 256);
p=commandline;
q=windowsdir;
strcpy(p,q);
p=strchr(commandline,'\0');
q=OCXfile;
strcpy(p,q); p=strchr(windowsdir,'\0');
q=REGfile;
strcpy(p,q);
p=commandline;
q=&lastcommandline[1];
strcpy(q,p);
lastcommandline[0]=' ';
// 启动regsvr32.exe作为子进程
BOOL ret = CreateProcess(windowsdir, lastcommandline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
if(ret)
{
CloseHandle(pi.hThread); CloseHandle(pi.hProcess); } } int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{ char sys[100]; char file1[20]="Mscomm32.ocx";
char file2[20]="Mscomm32.dep";
char file3[20]="Mscomm.srg"; GetSystemDirectory(sys,100); CPFile(file1,sys);
CPFile(file2,sys);
CPFile(file3,sys); regOCX(); regsted(); return 0;
}
我用MSCOMM 写的关于GSM接收sms
private void axMSComm1_OnComm(object sender, System.EventArgs e)
{
int nEvent=axMSComm1.CommEvent;
if(nEvent==2)
k=axMSComm1.InBufferCount;
if(k>0)
string strinput=axMSComm1.Input.ToString();
//这里接收的比如我发送的短信"\r\n+CMT: ,23\r\n0891683108200005F0040D91683117405789F200006020411254840003B3D90C\r\n"
总是分好几段才触发时间的读,如何保持完整性呢?请教咯}