急请高手解决(ShellExecute问题)

pj411 2003-06-04 10:23:56
我用VC调用C#写的一个程序,shellexecute一次成功,但我需要反复调用,只是传入的参数不同,但第二次shellexecute就启动不起来这个进程,请各位大虾指点
ShellExecute(NULL,"open","webwizzard.exe",parm,NULL,SW_MINIMIZE);
...全文
50 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
potatoli 2003-06-04
  • 打赏
  • 举报
回复
临时文件在进程终止时会被系统自动删除,所以不能这样判断。为什么要用临时文件呢,直接用普通的文件不就行了吗
pj411 2003-06-04
  • 打赏
  • 举报
回复
没有返回,没运行起来,我发现错误来源了,在第一次运行完后,我要生成一个临时文件,我在此后面加了一个查找此文件是否生成的函数,然后就运行不起来了,包括调试到执行这句,我把查找这个函数去掉就解决了问题,但是我没想通为什么会这样。我的查找文件函数如下:
int CWizzardDlg::FindFile()
{
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

BOOL fFinished = FALSE;

// Create a new directory.

if (!SetCurrentDirectory(szDirPath))
{
return E_ERROR;
}


hSearch = FindFirstFile("temp.tmp", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
return E_ERROR;
}


while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
return E_SUCCESS;
}

if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
fFinished = TRUE;
}
else
{
return E_ERROR;
}
}
}



FindClose(hSearch);
return E_SUCCESS;
}
potatoli 2003-06-04
  • 打赏
  • 举报
回复
返回值呢
pj411 2003-06-04
  • 打赏
  • 举报
回复
试过,也不对,我参数设成一样也没调用起来
potatoli 2003-06-04
  • 打赏
  • 举报
回复
会不会是参数传错了,第二次调用时也用第一次的参数试一试
pj411 2003-06-04
  • 打赏
  • 举报
回复
up
BlueSky2008 2003-06-04
  • 打赏
  • 举报
回复
faint, 那不是你自己定义的逻辑吗?
potatoli 2003-06-04
  • 打赏
  • 举报
回复
用注册表不是很方便嘛
pj411 2003-06-04
  • 打赏
  • 举报
回复
哦,进程终止时我也需要删除此文件啊,考虑到安全问题。不知楼上的兄弟有什么高招

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧