アプリケーションパスを確認しようとしていますが、指定されたパスでない場合は移動してください。コードはしっかりしているように感じますが、正しく機能しません。
TCHAR pCheck[MAX_PATH];
TCHAR xPath[MAX_PATH];
GetModuleFileName(NULL,xPath,MAX_PATH);
if(SHGetSpecialFolderPath(HWND_DESKTOP, pCheck, CSIDL_DESKTOP, FALSE)){
wcscat(pCheck,L"\\NewFile.exe");
MessageBox(NULL,pCheck,NULL,NULL);
MessageBox(NULL,xPath,NULL,NULL);
if(pCheck!=xPath){
CopyFile(xPath,pCheck,0);
ShellExecute(0,L"open",pCheck,NULL,NULL,SW_SHOW);
return 0;
}else{
MessageBox(NULL,L"New Location",NULL,NULL);
return 0;
}
}
ファイルが新しいパスにある場合でも、結果はpCheck!=xPathになります。
「新しい場所」メッセージボックスが表示されません。最初の2つのメッセージボックスが表示されるとき、パスは同じです...