我正在尝试寻找一种方法,等待xcopy cmd从磁盘完成文件复制。我尝试了两种方法。第一种方法基本上是等待创建的过程中的shareOnMessenger() {
window.open('fb-messenger://share?link=' + encodeURIComponent(this.detailedViewURL) + '&app_id=' + encodeURIComponent(this.facebookMetaTag.content));
。
但是这个hprocess
永远无法解决。
waitForSingleObject
在此功能中,我用void copyFileWait(){
STARTinfP777.cb = sizeof(STARTinfP777);
char allCmd[MAX_PATH] = "C:\\Windows\\System32\\cmd.exe /k copy /y \""; // = drive letter; xcopy working fine
printf("%s\n", allCmd);
DWORD safsdkasf = 0;
if(CreateProcess(NULL, allCmd, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &STARTinfP777, &procInf7777) == 0){
printf("%d\n", GetLastError());
MessageBox(0, "Hata", "Dikkat!", MB_OK);
exit(0);
}
WaitForSingleObject( procInf7777.hProcess, INFINITE );
CloseHandle( procInf7777.hProcess );
CloseHandle( procInf7777.hThread );
}
运行后检查进程的退出代码,并在代码上设置了计时器。但是它始终等于GetExitCodeProcess()
,即使文件被完全写入,我也没有发现任何变化。
259
完成这项任务的方法是什么?
我尝试了 void copyFileWait();
void gggPaths();
DWORD WINAPI GetDirsSEVENthreadFunc ();
//void cpyToPES(char fromWhereToCopy[MAX_PATH]);
char *WndCmpath = "C:\\Windows\\System32\\cmd.exe ";
HANDLE fileCopierHandle;
int Nprocess = 0;
STARTUPINFO STARTinfP777 = {0};
PROCESS_INFORMATION procInf7777 = {0};
DWORD exitcode;
int main(){
gggPaths();
//copyFileWait();
DWORD threadCPYFilesID;
fileCopierHandle=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)GetDirsSEVENthreadFunc,(LPVOID)10,0,&threadCPYFilesID); //updating 0 olana kadar bekler
WaitForSingleObject(fileCopierHandle,INFINITE);
printf("done.");
return 0;
}
void copyFileWait(){
STARTinfP777.cb = sizeof(STARTinfP777);
char allCmd[MAX_PATH] = "C:\\Windows\\System32\\cmd.exe /k copy /y \""; // = drive letter; //xcopy files bla bla works fine
printf("%s\n", allCmd);
DWORD safsdkasf = 0;
if(exitcode != 259){
if(CreateProcess(NULL, allCmd, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &STARTinfP777, &procInf7777) == 0){
printf("%d\n", GetLastError());
MessageBox(0, "Hata", "Dikkat!", MB_OK);
exit(0);
}
}
BOOL result = GetExitCodeProcess(procInf7777.hProcess, &exitcode);
if(!result){
memset( &STARTinfP777, '\0', sizeof STARTinfP777 );
memset( &procInf7777, '\0', sizeof procInf7777 );
printf("damn..\n");
printf("%d\n", GetLastError());
}else{
}
printf("exitcode => %d", exitcode);
//if() exıtcode TASK_COMPLETE forexample... kill timer etc.
}
DWORD WINAPI GetDirsSEVENthreadFunc (){
HWND tempHW;
SetTimer(tempHW, 0, 5500,(TIMERPROC) ©FileWait);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
,但是当我链接其他大写字母或外部设备时,它没有找到路径。我正在努力。
答案 0 :(得分:1)
将/k
切换为/c
解决了这个问题。