"출력 유형"이 "Windows 응용 프로그램"인 콘솔 앱이 있습니다 (헤드리스 동작, 즉 UI가없고 콘솔 창이 없음). 목적은 Windows 클립 보드에서 텍스트를 "정리"하는 것입니다. 즉 앞뒤 공백을 모두 지우고 서식을 제거하는 것입니다.Visual Studio 외부에서 실행할 때 내 클립 보드 조작 응용 프로그램이 다르게 동작하는 이유는 무엇입니까?
디버깅 할 때 유용하지만 탐색기에서 실행하면 클립 보드 내용이 지워집니다. 나도 "디버그"에서합니다 (dubugger에서 프로그램을 실행 한 후
: MS Word에서 서식
[STAThread]
internal static void Main(string[] args)
{
var currentClipboardText = System.Windows.Clipboard.GetText();
// only if the clipboard has text; leave any other content intact.
if(!string.IsNullOrEmpty(currentClipboardText))
{
currentClipboardText = currentClipboardText.Trim();
var pattern = @"[\t\r\n\v\f\u2028\u2029]"; // match vert. whitesp & tabs
currentClipboardText = Regex.Replace(currentClipboardText, pattern, " ");
System.Windows.Clipboard.SetDataObject(currentClipboardText);
}
}
샘플 입력, 클립 보드에 복사 : 여기
내 코드입니다 모드 또는 "릴리스"모드는 아무런 차이가 없습니다.) 클립 보드에서 Word로 다시 붙여 넣은 결과는 다음과 같습니다.동일한 운동을하고 Windows 탐색기에서 두 번 클릭하여 프로그램을 실행하면 (예 :
여기 차이점은 무엇입니까 다음 \bin\Debug
디렉토리에), Word에 붙여 클립 보드에 남아있는 텍스트가 없다? Visual Studio 외부에서 작동하지 않는 이유는 무엇입니까?
흥미 롭습니다. 이제 내 질문은 짐작할 수 있습니다. 디버깅 할 때 * 분명하지 않은 이유는 무엇입니까? –
@ adv12 -하지만 그것은 자식 프로세스에서 발생합니다. –
이 변경되면 탐색기에서 실행할 때 응용 프로그램이 충돌합니다. 아직도 VS 디버그에서 잘 작동합니다. –