Qt是从Linux移植的,Linux下完全没有回收站这种东西(个别Linux发行版也只是用特殊的方式实现了自己的回收站),所以Qt没有对回收站的支持。
Windows独有的东西就要用Windows的API来做(可以在Qt程序中使用,包含需要的头文件就行),不过说实的,我一直认为Windows的API设计得很屎。
所以我建议你下载个CmdUtils:http://www.maddogsw.com/cmdutils/cmdutils.zip
解压后你可消中以选择:
把recycle.exe拷贝到你拿陵山的项目,用QProcess来调用
参考压缩包里的源文件,recycle.c,看它是怎么写的汪芹
重点看或者干脆复制这个函数:
BOOL RecycleFiles (char** filenames, int nFiles, BOOL bConfirmed)
如果你懒得下载,直接把代码拷给你:(但是个人觉得,其他的文件也许也会对你有帮助)
#include <windows.h>#include <stdlib.h>
BOOL RecycleFiles (char** filenames, int nFiles, BOOL bConfirmed)
{
SHFILEOPSTRUCT opRecycle
char* pszFilesToRecycle
char* pszNext
int i, len
BOOL success = TRUE
char szLongBuf[MAX_PATH]
char* lastComponent
//fill filenames to delete
len = 0
for (i = 0 i < nFiles i++)
{
GetFullPathName (filenames[i], sizeof(szLongBuf), szLongBuf, &lastComponent)
len += lstrlen (szLongBuf) + 1
}
pszFilesToRecycle = malloc (len + 1)
pszNext = pszFilesToRecycle
for (i = 0 i < nFiles i++)
{
GetFullPathName (filenames[i], sizeof(szLongBuf), szLongBuf, &lastComponent)
lstrcpy (pszNext, szLongBuf)
pszNext += lstrlen (pszNext) + 1 //advance past terminator
}
*pszNext = 0 //double-terminate
//fill fileop structure
opRecycle.hwnd = NULL
opRecycle.wFunc = FO_DELETE
opRecycle.pFrom = pszFilesToRecycle
opRecycle.pTo = "\0\0"
opRecycle.fFlags = FOF_ALLOWUNDO
if (bConfirmed)
opRecycle.fFlags |= FOF_NOCONFIRMATION
opRecycle.lpszProgressTitle = "Recycling files..."
if (0 != SHFileOperation (&opRecycle))
success = FALSE
if (opRecycle.fAnyOperationsAborted)
success = FALSE
free (pszFilesToRecycle)
return success
}
1、首先要复制备份一个御龙在天备份一个御龙在天文件夹,即电脑里安装2个御龙在天客户端
2、分别创建一个游戏快捷方式,御龙在天主程序是御龙在天目录里的\TCLS\Client.exe
3、删除无QT御龙在天目录中的QT内置程序,内置程序目录为御龙在天目录里的\cross\Apps\CQS\QTalk,删除QTalk中的内容即可
删除Qtalk文渣嫌件夹中内容
4、以后开大号只要点开“御龙在顷链天有QT”,开小号点开“御龙在天无QT”。用如乎手“御龙在天无QT”登陆游戏会发现游戏中QT指挥已经消失。没有QT的御龙在天还可以降低电脑资源消耗。
后悔了怎么办,恢复QT有两方法:
1、在有QT的版本中复制出QT文件夹中的内容(注意要关闭所有客户端),粘贴进无QT的御龙在天QTalk文件夹中。
2、在无QT的御龙在天登陆界面选择“修复游戏”即可。
选择项目文件*.pro
找到
"RESOURCES +=\"
删除相关文件蚂帆,全此迹部资源都不要就把整个这一段都删除
保存闷扒雹
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)