C\#다 중 프로 세 스 가 PPT 의 예제 튜 토리 얼 을 엽 니 다.
4438 단어 c#다 중 프로 세 스ppt 열기
PPT 파일 열기 와 작업 은 하나의 프로 세 스에 서 이 루어 집 니 다.여러 개의 PPT 를 조작 하면 PowerPoint 프로 세 스 는 기본적으로 차단 방식 으로 순서대로 진 행 됩 니 다.만약 에 열 린 PPT 가 너무 크 면(예 를 들 어 1GB 초과)PPT 가 응답 하지 않 기 쉬 워 서 거의 모든 PPT 작업 을 할 수 없습니다.
PPT 무 응답 을 해결 하 는 방법 은 PPT 프로 세 스(POWERPNT.exe)가 응답 하지 않 았 는 지 정기 적 으로 확인 하고 응답 이 없 으 면 POWERPNT.exe 프로 세 스 를 Kill 하고 PPT 를 다시 여 는 것 입 니 다.이런 방식 으로 는 여러 개의 PPT 조작 이 필요 한 문 제 를 해결 할 수 없 으 며,여러 개의 PPT 파일 이 크다 면 여러 개의 PPT 를 조작 하면 PPT 가 응답 하지 않 는 경우 가 빈번 하 다.
PPT 무 응답 을 해결 하 는 또 다른 방법 은 다 중 프로 세 스 방식 으로 PPT 를 여 는 것 이다.PPT 는 기본적으로 여러 프로 세 스 를 사용 하여 열 수 없습니다.사용자 별로 PPT 를 열 때 서로 다른 PPT 프로 세 스 를 열 수 있 습 니 다.그 이 유 는 참고 문 서 를 참조 하 십시오.
2.구체 적 인 방법
다 중 사용자 가 PPT 를 여 는 방법 을 사용 하려 면 먼저 다른 사용 자 를 내장 해 야 합 니 다.이 는 코드 를 통 해 이 루어 질 수도 있 고 Windows 사용자 설정 을 통 해 지정 한 사용 자 를 추가 할 수도 있 습 니 다코드 조작 사용 자 는 잠시 후에 참고 코드 가 있 을 것 입 니 다. 。
그 다음으로 지 정 된 사용자(및 비밀번호)를 사용 하여 PPT 작업 을 봉인 한 프로 세 스 를 시작 한 다음 프로 세 스 간 통신 방식(파이프,COPYDATA 메시지,MQTT,추천 파이프 또는 COPYDATA 메시지,제3자 라 이브 러 리 에 의존 하지 않 아 도 됨)을 통 해 PPT 제어(열 림,뒤 집기,점프,미디어 제어 등)를 한다.
3.참조 코드
(1)지정 한 사용자 가 프로 세 스 를 여 는 코드 세 션 을 사용 합 니 다(args 매개 변 수 는 파이프 이름 이나 사용자 정의 메 시 지 를 전달 할 수 있 습 니 다)
public void StartProcess(string fileName, string userName, string password, string args)
{
var pwd = new SecureString();
if (!string.IsNullOrEmpty(password))
{
password.ToCharArray().ToList().ForEach(c => pwd.AppendChar(c));
}
try
{
var process = new Process
{
StartInfo =
{
UseShellExecute = false,
LoadUserProfile = true,
UserName = userName,
Password = pwd,
Domain = ".",
FileName = $"\"{fileName}\"",
Arguments = args
}
};
process.Start();
}
finally
{
pwd.Dispose();
}
}
(2)PPT 조작 부분
private void OpenPpt()
{
var app = new Microsoft.Office.Interop.PowerPoint.Application();
}
private void ClosePpt(ref Application app)
{
try
{
app?.Quit();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
app = null;
GC.Collect();
}
public void Open(object app, string filePath)
{
var ppt = app as Microsoft.Office.Interop.PowerPoint.Application;
if (ppt == null)
{
return;
}
//
filePath = filePath.Replace('/', '\\');
try
{
// ,
// (AssemblyGuid) PPT,
var presentation = ppt.Presentations.Open(
$"{filePath}::{Password}",
MsoTriState.msoTrue, //ReadOnly: true
MsoTriState.msoTrue, //Untitled: true
MsoTriState.msoFalse); //WithWindow: false
//
var officeWidth = presentation.PageSetup.SlideWidth;
var officeHeight = presentation.PageSetup.SlideHeight;
//
var pageNumber = presentation.Slides.Count;
var slideShowSettings = presentation?.SlideShowSettings;
if (slideShowSettings == null)
{
return;
}
var window = slideShowSettings.Run();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public void Close(SlideShowWindow window)
{
try
{
window?.View.Exit();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public void GotoSlide(SlideShowWindow window, int index)
{
try
{
window?.View.GotoSlide(index);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public void Next(SlideShowWindow window)
{
try
{
window?.View.Next();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public void Previous(SlideShowWindow window)
{
try
{
window?.View.Previous();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
이상 은 C\#다 중 프로 세 스 가 PPT 를 여 는 예제 튜 토리 얼 의 상세 한 내용 입 니 다.C\#다 중 프로 세 스 가 PPT 를 여 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.