Veröffentlicht am :
Verwaltung CREATION_INTERNE

Automatischer Start von Excel über DDE

Dieser Code ist auch verfügbar auf: English Español Français
Attention : Dieser Code erfordert Administratorrechte.
Dieses Programm verwendet die DDE-Engine (Dynamic Data Exchange), um eine Kommunikation mit Excel herzustellen. Kann der Stream nicht geöffnet werden (was anzeigt, dass Excel geschlossen ist), verwendet das Skript die Funktion `system`, um den DOS-Befehl 'Start Excel' auszuführen. Es enthält eine Warteschleife zur Überprüfung des Starts. HINWEIS: Dieser Code ist spezifisch für Windows-Umgebungen und basiert auf veralteter DDE-Technologie; er ist in einer Standard-SAS© Viya 4-Umgebung unter Linux nicht funktionsfähig.
Datenanalyse

Type : CREATION_INTERNE


Keine externen Daten gelesen. Das Skript verarbeitet nur Systeminteraktionen und Dateizeiger (fileref).

1 Codeblock
DATA STEP
Erklärung :
Überprüft die Erreichbarkeit des DDE Excel Servers. Wenn inaktiv, startet Excel über den Systembefehl und wartet bis zu 5 Sekunden, bis der Dienst verfügbar ist.
Kopiert!
1OPTIONS NOXSYNC NOXWAIT;
2filename cmdexcel DDE 'EXCEL|SYSTEM'; /* Fileref for Excel System */
3 
4DATA _null_;
5 fid = fopen('cmdexcel','S'); /* Check if Excel is open */
6 IF fid le 0 THEN
7 DO; /* Excel is not open, open Excel via Windows registry */
8 rc=system("Start Excel"); /* DOS command to open Excel*/
9 start = datetime(); /* Note start time */
10 stop = start + 5; /* Max time to try opening */
11 DO while (fid le 0); /* Loop while Excel opens */
12 fid = fopen('cmdexcel','S'); /* Check if Excel is open */
13 time = datetime(); /* Reset current time */
14 IF time ge stop THEN
15 fid = time; /* Set FID to terminate loop*/
16 END; /* do while (fid le 0); */
17 END; /* Excel is not open, open Excel via Windows registry */
18 rc = fclose(fid); /* Close fileopen on EXCEL */
19RUN;
2 Codeblock
COMMAND X
Erklärung :
Alternative und direkte Methode zum Starten von Excel über den X-Befehl (Shell-Escape).
Kopiert!
1options noxwait noxsync;
2 x start excel;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.