woersterf
Goto Top

Batchdatei unter XP

Hallo zusammen,

mein Problem:

Sage Lohnprogramm und DB Direct Dll Konflikt.

um Sage Lohnbüro 2010 mit Dakota laufen zu lassen muß ich eine DLL umbenennen das Programm starten, darin arbeiten, Programm schließen und die Dll wieder zurück umbenennen.
Das Umbenennen der dll per Batch funktioniert, wenn ich jedoch das Lohnprogramm in die Batch mit einbinde wird die letzte Befehlszeile nicht mehr abgearbeitet.

move c:\windows\system32\HL_MED32.DLL c:\windows\system32\HL_MED32-DB.DLL
cd\
"c:\programme\Sage_Lohn\Start.exe\"
move c:\windows\\system32\HL_MED32-DB.DLL c:\windows\system32\HL_MED32.DLL

hat Jemand dazu eine Idee???

Gruß Fredy

Content-Key: 133824

Url: https://administrator.de/contentid/133824

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: MASTEQ
MASTEQ 19.01.2010 um 14:46:14 Uhr
Goto Top
Ähm....moin.....versuche doch mal nach dem Aufrufen des Programms wieder in das root Verzeichnis mit cd\\ zu gehen.....außerdem soltlest du anstatt "move" "ren" für rename nehmen.

Außerdem würde ich nach dem Aufrufen der Batch den befehl pause aufrufen, damit du nach beenden des Programms einfach ne Taste drücken kannst damit das Skript zu Ende läuft...
Dadurch das du das programm startest greift es natürlich auch auf die Datei zu und somit lässt diese sich nicht mehr umbenennen!

Probiers mal face-wink

Grüße
Mitglied: Miyamoto
Miyamoto 19.01.2010 um 14:52:03 Uhr
Goto Top
Hi,
ich würde es so machen
ren c:\windows\system32\HL_MED32.DLL HL_MED32-DB.DLL
start /WAIT "c:\programme\Sage_Lohn\Start.exe\"  
ren c:\windows\\system32\HL_MED32-DB.DLL HL_MED32.DLL

Gruß Miyamoto
Mitglied: MASTEQ
MASTEQ 19.01.2010 um 14:54:27 Uhr
Goto Top
oder so....face-wink mir war der /WAIT befehl nicht bekannt!
Mitglied: Woersterf
Woersterf 19.01.2010 um 15:03:40 Uhr
Goto Top
die Ausführung von start /WAIT hilft mir leider auch nicht, nach dem Start des Lohnprogramms wird sofort die Batchdatei zuende ausgeführt.
Das Einfügen einer Pause ist auch nicht so schön da hier immer eine Fehlerquelle existiert da der Benutzer (Buchhalter) schon mal etwas schusselig ist face-wink
Mitglied: SamTrex
SamTrex 19.01.2010 um 15:11:26 Uhr
Goto Top
Hallo,
schau mal hier, es ist zwar eine > VBS < aber es funktioniert.
Die Konstanten im Kopf mußt du natürlich anpassen.
Kannst es ja mal probieren.

Gruß Sam


'Konstanten deklarieren  

	'Zielprogrammm:	  
	Const PROG = "C:\Windows\system32\notepad.exe"  
	Const PROGNAME = "notepad.exe"	'Zu entnehmen im Taskmanager -> Prozesse  

	'Ziel-DLL:  
	Const DLL = "D:\test.dll"  
	Const DLL2 = "D:\test.txt"  

'Objekte deklarieren und erstellen  
	Dim objfso : Set objfso = CreateObject("Scripting.FileSystemObject")  
	Dim objshell : Set objshell = createobject("wscript.shell")  
	
'Programmablauf .............................................................................................................................  

	'DLL umbenennen  
		objfso.movefile DLL,DLL2
		
	'Programm starten  
		objshell.run PROG,,true

	'DLL umbenennen  
		objfso.movefile DLL2,DLL
Mitglied: 60730
60730 19.01.2010 um 15:21:54 Uhr
Goto Top
Servus,
Zitat von @Miyamoto:
Hi,
ich würde es so machen
move c:\windows\system32\HL_MED32.DLL HL_MED32-DB.DLL
start /WAIT "Lohnprogramm" c:\programme\Sage_Lohn\Start.exe  
move c:\windows\\system32\HL_MED32-DB.DLL HL_MED32.DLL

der kleine - aber gemeine und notwendige Unterschied findet sich u.a im Start, das partout gerne eine Bezeichnung in "" haben möchte.
btw: start.exe\ - da war auch eher ein Zeichen am Ende zuviel face-wink
..Und das man für das ganze Adminrechte braucht - eh klar.
Daher die Gegenfrage:
Für was ist denn die störendedll?

Gruß Miyamoto
Mitglied: ObiWanMacGyver
ObiWanMacGyver 19.01.2010 um 16:09:43 Uhr
Goto Top
Warum kopierst du die DLL-Datei nicht einfachund hast 2 Dateien mit dem gleichen Inhalt und verschiedenen Namen?

COPY C:\WINDOWS\System32\HL_MED32.DLL C:\WINDOWS\System32\HL_MED32-DB.DLL

Und keine weitere Umbenennerei...
Mitglied: 60730
60730 19.01.2010 um 16:20:15 Uhr
Goto Top
Zitat von @ObiWanMacGyver:
Warum kopierst du die DLL-Datei nicht einfachund hast 2 Dateien mit dem gleichen Inhalt und verschiedenen Namen?

Servus,

weil zu 99.9999% der Grund der Umbenamserei derjenige ist, daß das Lohnprogramm nur dann läuft wenn die Dll eben nicht erreichbar ist.

Aber ich finde den Weg auch kosmisch - aber "Dakota" macht ja gerne was krummes face-wink

Gruß
Mitglied: Woersterf
Woersterf 20.01.2010 um 08:13:55 Uhr
Goto Top
genau richtig,
Sage LohnbüroPro, Dakota und DB-Direct verursachen einen Dll-Konfilkt.
die Antwort der Sage Hotline auf einen ARCript-Fehler war das dauernde Umbenennen der DLL,
Der Fehler ist schon seit Jahren bekannt wird aber nicht abgestellt.
Soviel zur Kundenfreundlichkeit.

Gruß
Mitglied: 60730
60730 20.01.2010 um 10:46:31 Uhr
Goto Top
Salü,

  • änder mal den Namen der dll.
  • Welches Programm läuft dann nicht mehr?
  • Die dll dann in den Programmordner verschieben, dessen Programm nicht mehr läuft
  • C:\WINDOWS\System32\HL_MED32.DLL /unregServer
  • c:\programme\programm\HL_MED32.DLL /regServer
  • läuft das Programm dann?
  • Wenn nicht auch mal in dem Alias/Link nachsehen -ob das Programm im jeweiligen Programmordner läuft - bzw. wenn nicht die dll in diesen Ordner verschieben/kopieren.
  • notfalls nochmal alter Pfad\dll /unregserver neuer Pfad dll\ /regserver -siehe oben

  • Erfolg/Mißerfolg posten


Gruß
Mitglied: Woersterf
Woersterf 20.01.2010 um 11:45:10 Uhr
Goto Top
Danke @ Sam Trex

Das Script funktioniert sauber, Klasse Idee und sehr gut nachzuvollziehen face-smile

Dank auch an alle Anderen die sich gekümmert haben !!
Mitglied: 60730
60730 20.01.2010 um 13:58:08 Uhr
Goto Top
Zitat von @Woersterf:
Danke @ Sam Trex

Das Script funktioniert sauber, Klasse Idee und sehr gut nachzuvollziehen face-smile

Dank auch an alle Anderen die sich gekümmert haben !!

"schade", dass es dann doch dieser Weg wurde...
Aber warum einfach, wenns auch kompliziert geht face-wink

Denn "immer noch" - der user, der das Konstrukt bedienen muß", muß adminrechte haben ...

Gruß
Mitglied: Woersterf
Woersterf 20.01.2010 um 14:04:58 Uhr
Goto Top
Der komplizierte Weg war in diesem Fall der bessre da ich an dem Rechner nur als "Gastadmin" tätig war. Bei der nächsten Installation einer Software ist so einfacher nachzuvollziehen was hier gemacht wurde.
Dein Vorschlag hätte in meinem Netz bestimmt Anwendung gefunden.

Danke nochmal.

Gruß Fredy