Tengo que decir que a mí sí que me ha funcionado tu código correctamente, salvo lo del CreateProcess que me daba error y el FindWindow, que he tenido que cambiarle el nombre de la ventana.
He abierto el bloc de notas a parte, y desde Delphi he ejecutado:
Código:
wnd := FindWindow (nil,'Sin título - Bloc de notas'); //encuentra la nueva ventana
if wnd=0 then begin
showmessage('Block de notas no abierto.');
Exit;
end;
PostMessage(wnd, WM_COMMAND,HIWORD(1)+2,0);//Con esto abro la ventana "Abrir" del NotePad
PostMessage(wnd, WM_KEYDOWN, VK_CONTROL, 0);
PostMessage(wnd, WM_KEYDOWN, $4F, 0); // VK_O=0x4F
y me ha abierto la ventana "Abrir" en el bloc de notas. Comprueba que tras el FindWindow wnd es distinto de 0, que con lo que tú habías puesto a mí me salía 0 y por eso los PostMessage parece que no hagan nada.
La de CreateProcess no me funcionaba porque no he inicializado si y pi, y la verdad no sabía cómo hacerlo
Ya comentas algo.
Un saludo,
LoPiTaL