SHFileOperation
コードインジェクションを使用して呼び出したい。私のコードは、 MessageBox
fromのような単純な関数を呼び出している間は正常に動作しますが、 fromuser32.dll
を呼び出している間は動作しません。ShFileOperation
shell32.dll
問題があると思われるコードの部分を投稿します。問題が構造体の実装にあることはわかっています。
以下は、RemoteInfo 値のイメージです。
http://www.freeimagehosting.net/uploads/219d79fc30.jpg
//構造 タイプ LPSHFILEOPSTRUCT = ^SHFILEOPSTRUCT; SHFILEOPSTRUCT = パックされたレコード ワインド: HWND; wFunc: UINT; pFrom: PAnsiChar; pTo: PAnsiChar; fFlags: FILEOP_FLAGS; fAnyOperationsAborted: BOOL; hNameMappings: ポインタ; lpszProgressTitle: PAnsiChar; 終わり; //リモート情報 タイプ TRemoteInfo = レコード LoadLibrary: 関数 (lpLibFileName: PChar): HMODULE; stdcall; GetProcAddress: 関数 (hModule: HMODULE; lpProcName: LPCSTR): FARPROC; stdcall; shf: SHFILEOPSTRUCT; ; Kernel32: Char の配列 [0..20]。 shell32: Char の配列 [0..20]; SHFileOperationA: Char の配列 [0..20]。 Fromlpbuff: 文字の配列[0..20]; //ソースパス Tolpbuff: Char の配列 [0..20]; //指定パス 終わり; //初期化 .... ZeroMemory(@RemoteInfo, SizeOf(RemoteInfo)); RemoteInfo.shf.Wnd := 0; RemoteInfo.shf.wFunc := FO_COPY; RemoteInfo.shf.pFrom := @remoteInfo.Fromlpbuff; RemoteInfo.shf.pto := @remoteInfo.tolpbuff; lstrcpy(RemoteInfo.shf.pFrom, 'e:\1.jpg' + #0#0); lstrcpy(RemoteInfo.shf.pto, 'f:\1.jpg' + #0#0); RemoteInfo.shf.fFlags := FOF_ALLOWUNDO; RemoteInfo.shf.fAnyOperationsAborted := false; ....