15 个解决方案
#1
要分割可以用strtok呀。我刚刚发表了一篇博客《strtok源码剖析 位操作与空间压缩》
http://blog.csdn.net/morewindows/article/details/8740315
获取进程
HANDLE WINAPI OpenProcess(
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwProcessId
);
暂停进程?暂停线程吧。
DWORD WINAPI SuspendThread(
__in HANDLE hThread
);
将进程中所有线程都暂停就相当于暂停进程吧。
-------------------
MoreWindows
计科小硕 迅雷/微软/豌豆荚实习生 CSDN资深博客专家 2012年度CSDN博客之星
我的微博: http://weibo.com/MoreWindows
我的博客: http://blog.csdn.net/MoreWindows
http://blog.csdn.net/morewindows/article/details/8740315
获取进程
HANDLE WINAPI OpenProcess(
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwProcessId
);
暂停进程?暂停线程吧。
DWORD WINAPI SuspendThread(
__in HANDLE hThread
);
将进程中所有线程都暂停就相当于暂停进程吧。
-------------------
MoreWindows
计科小硕 迅雷/微软/豌豆荚实习生 CSDN资深博客专家 2012年度CSDN博客之星
我的微博: http://weibo.com/MoreWindows
我的博客: http://blog.csdn.net/MoreWindows
#2
#3
strtok会改变源字符串的值,这一点觉得很危险。
#4
你能不能不要答非所问啊,我问你函数,你叫我看博客;我问你怎么暂停进程,你去叫我暂停进程。
#5
貌似没见过,一般用find()及含有find的函数来找出某个字符或者字符串
#6
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#7
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#8
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#9
参考:
The following function returns the first portion of the src param.
// Portions are delimited by a semi-colon( ; ),
// a comma( , ), a period( . ), a dash( - ),
// or a colon( : ).
CString GetFirstPart( CString src)
{
return src.SpanExcluding( ";,.- :");
}
The following function returns the first portion of the src param.
// Portions are delimited by a semi-colon( ; ),
// a comma( , ), a period( . ), a dash( - ),
// or a colon( : ).
CString GetFirstPart( CString src)
{
return src.SpanExcluding( ";,.- :");
}
#10
ArrayMemoryxx是不是一个二维数组,是的话可以尝试下Memoryx=ArrayMemoryxx[0]
SuspendThread用过,SuspendProcess没用过,还有sleep()方法可以用下
#11
int SpliteString( LPCTSTR lpszString, const TCHAR *lpszFlag, vector<string> &vectorStr )
{
vectorStr.clear();
if (lpszString && lpszString[0] && lpszFlag && lpszFlag[0])
{
int nSize = _tcslen(lpszString);
int nAddSize = _tcslen(lpszFlag);
TCHAR *lpszBuffer = (TCHAR*)malloc(nSize+ nAddSize +2);//这个空间应该够大了
if (lpszBuffer)
{
memset(lpszBuffer, 0 , nSize+ nAddSize +2);
_tcscpy(lpszBuffer, lpszString);
if (nSize)
{
BOOL bFind = TRUE;
if (nSize > nAddSize)
{
for (int i = 0; i < nAddSize ; i++)
{
if (lpszBuffer[nSize - 1 - i] == lpszFlag[nAddSize - 1 - i])
{
}
else
{
bFind = FALSE;
break;
}
}
}
if (!bFind)
{
_tcscat(lpszBuffer, lpszFlag);
}
TCHAR *pStart = lpszBuffer;
TCHAR *pEnd = _tcsstr(lpszBuffer, lpszFlag);
while (pStart && pEnd && pEnd > pStart && pStart < (lpszBuffer + nSize))
{
*pEnd = _T('\0');
if (pEnd+nAddSize)
{
pEnd += nAddSize - 1;
*pEnd = _T('\0');
}
vectorStr.push_back(pStart);
pStart = ++pEnd;
pEnd = _tcsstr(pStart, lpszFlag);
}
}
free(lpszBuffer);
}
}
return vectorStr.size();
}
#12
123456789Memoryxx是一个字符串对象。
#13
CString里面有返回第二个,第三个.....这样的库函数吗?我这里需要获取多个字符串的类。
#14
太多了,群总表示看不懂;并且我也不知道怎么调用你这个函数。
#15
参考:
CString GetSubString(CString &src)
{
CString sub;
if(src.Find('|')>-1)
{
sub=src.SpanExcvluding("|");
src.Replace(sub+'|',"");// 注意 源串中的子串 被 不断删除。
}
else
{
sub=src;
src="";
}
return sub;
}
调一次 得到一个,直到 源串=“” !
CString GetSubString(CString &src)
{
CString sub;
if(src.Find('|')>-1)
{
sub=src.SpanExcvluding("|");
src.Replace(sub+'|',"");// 注意 源串中的子串 被 不断删除。
}
else
{
sub=src;
src="";
}
return sub;
}
调一次 得到一个,直到 源串=“” !
#1
要分割可以用strtok呀。我刚刚发表了一篇博客《strtok源码剖析 位操作与空间压缩》
http://blog.csdn.net/morewindows/article/details/8740315
获取进程
HANDLE WINAPI OpenProcess(
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwProcessId
);
暂停进程?暂停线程吧。
DWORD WINAPI SuspendThread(
__in HANDLE hThread
);
将进程中所有线程都暂停就相当于暂停进程吧。
-------------------
MoreWindows
计科小硕 迅雷/微软/豌豆荚实习生 CSDN资深博客专家 2012年度CSDN博客之星
我的微博: http://weibo.com/MoreWindows
我的博客: http://blog.csdn.net/MoreWindows
http://blog.csdn.net/morewindows/article/details/8740315
获取进程
HANDLE WINAPI OpenProcess(
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwProcessId
);
暂停进程?暂停线程吧。
DWORD WINAPI SuspendThread(
__in HANDLE hThread
);
将进程中所有线程都暂停就相当于暂停进程吧。
-------------------
MoreWindows
计科小硕 迅雷/微软/豌豆荚实习生 CSDN资深博客专家 2012年度CSDN博客之星
我的微博: http://weibo.com/MoreWindows
我的博客: http://blog.csdn.net/MoreWindows
#2
#3
strtok会改变源字符串的值,这一点觉得很危险。
#4
你能不能不要答非所问啊,我问你函数,你叫我看博客;我问你怎么暂停进程,你去叫我暂停进程。
#5
貌似没见过,一般用find()及含有find的函数来找出某个字符或者字符串
#6
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#7
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#8
我把代码都贴出来,请你帮我看下吧。
这个是调用它的地方的代码
Memoryxx = dm.FindFloat(hwnd,"07589E00-0758A500",3120,3130);
if (strlen(Memoryxx) == 0 )
{
MessageBox("找不到");
SuspendProcess(hwndprocess);
else if (strlen(Memoryxx)>1 )
{
ArrayMemoryxx[10] = Split(Memoryxx, "|");
Memoryx=ArrayMemoryxx(0);
这里是Split函数的定义
CString Split(CString source, CString divKey, CStringArray& dest)
{
string dest[10];
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
return dest;
}
关键是怎么实现这个Memoryx=ArrayMemoryxx(0);Memoryx是一个字符串类型。
另外暂停进程的函数是不是这样的SuspendProcess(hwndprocess);
#9
参考:
The following function returns the first portion of the src param.
// Portions are delimited by a semi-colon( ; ),
// a comma( , ), a period( . ), a dash( - ),
// or a colon( : ).
CString GetFirstPart( CString src)
{
return src.SpanExcluding( ";,.- :");
}
The following function returns the first portion of the src param.
// Portions are delimited by a semi-colon( ; ),
// a comma( , ), a period( . ), a dash( - ),
// or a colon( : ).
CString GetFirstPart( CString src)
{
return src.SpanExcluding( ";,.- :");
}
#10
ArrayMemoryxx是不是一个二维数组,是的话可以尝试下Memoryx=ArrayMemoryxx[0]
SuspendThread用过,SuspendProcess没用过,还有sleep()方法可以用下
#11
int SpliteString( LPCTSTR lpszString, const TCHAR *lpszFlag, vector<string> &vectorStr )
{
vectorStr.clear();
if (lpszString && lpszString[0] && lpszFlag && lpszFlag[0])
{
int nSize = _tcslen(lpszString);
int nAddSize = _tcslen(lpszFlag);
TCHAR *lpszBuffer = (TCHAR*)malloc(nSize+ nAddSize +2);//这个空间应该够大了
if (lpszBuffer)
{
memset(lpszBuffer, 0 , nSize+ nAddSize +2);
_tcscpy(lpszBuffer, lpszString);
if (nSize)
{
BOOL bFind = TRUE;
if (nSize > nAddSize)
{
for (int i = 0; i < nAddSize ; i++)
{
if (lpszBuffer[nSize - 1 - i] == lpszFlag[nAddSize - 1 - i])
{
}
else
{
bFind = FALSE;
break;
}
}
}
if (!bFind)
{
_tcscat(lpszBuffer, lpszFlag);
}
TCHAR *pStart = lpszBuffer;
TCHAR *pEnd = _tcsstr(lpszBuffer, lpszFlag);
while (pStart && pEnd && pEnd > pStart && pStart < (lpszBuffer + nSize))
{
*pEnd = _T('\0');
if (pEnd+nAddSize)
{
pEnd += nAddSize - 1;
*pEnd = _T('\0');
}
vectorStr.push_back(pStart);
pStart = ++pEnd;
pEnd = _tcsstr(pStart, lpszFlag);
}
}
free(lpszBuffer);
}
}
return vectorStr.size();
}
#12
123456789Memoryxx是一个字符串对象。
#13
CString里面有返回第二个,第三个.....这样的库函数吗?我这里需要获取多个字符串的类。
#14
太多了,群总表示看不懂;并且我也不知道怎么调用你这个函数。
#15
参考:
CString GetSubString(CString &src)
{
CString sub;
if(src.Find('|')>-1)
{
sub=src.SpanExcvluding("|");
src.Replace(sub+'|',"");// 注意 源串中的子串 被 不断删除。
}
else
{
sub=src;
src="";
}
return sub;
}
调一次 得到一个,直到 源串=“” !
CString GetSubString(CString &src)
{
CString sub;
if(src.Find('|')>-1)
{
sub=src.SpanExcvluding("|");
src.Replace(sub+'|',"");// 注意 源串中的子串 被 不断删除。
}
else
{
sub=src;
src="";
}
return sub;
}
调一次 得到一个,直到 源串=“” !