phlegma
Goto Top

Vista- Batch, vbs, Administratoren...

heyho, I'm back.

Und dieses mal habe ich wieder ein kompliziertes Problem im Gepäck ;D

Also: Ich habe eine Batchdatei geschrieben, die ich serialwriter nenne, sie liest ein Serial (den productkey einer sofware) aus einer Datei um sie dann per VBS-script wiederauszugeben und in die Installation zu schreiben. (Ich muss Programme und Spiele oft neu installieren, daher speichere ich meine Serials auf den Computer, aber bisher konnte ich sie nur mit Copy&Paste in die Installation eintragen...).
Mein Script läuft auch schon, aber nur unter WinXP, komischerweise (Oh wartet, ich glaub ich hab das ding noch gar nicht an einer Installation getestet, sondern nur den Script selbst, mach ich sobald ich kann.).
- Testobjekt is das Spiel C&C3 TW, die Installation wird über eine AutoRun-Batchdatei gestartet, die auch danach noch einen Patch anwendet.
-> AutoRun Batch keine Adminrechte
-> setup.exe, die Installation des Spiels erfordert Adminrechte und holt sich diese auch sofort (Userabfrage kommt "wollen sie dieses Programm wirklich ausführen?")

Nun, das Problem:
Der Script gibt wunderbar das Serial aus, aber er will es partout nicht in die Installation schreiben.

Hier der Script:
(ach wie ging das nochmal mit dem textfeld?, achja < code >)
@echo off
setlocal ENABLEDELAYEDEXPANSION
set ver=v.0.2
title  Serialwriter %ver% Ph
cls
echo.
echo.
echo  Serialwriter %ver% Ph
echo.
echo.
echo  Reading Serial...

if "%1"=="" (set "serialdatei=serial.txt") else (set "serialdatei=%1")  
::set "serialdatei=serial.txt" 

FOR /F " delims=;" %%i in ('findstr /i "serial" %serialdatei%')  do Set %%i  
if not defined serial FOR /F %%i in (%serialdatei%)  do set serial=%%i
FOR /F " delims=;" %%i in ('findstr /i "serialcount" %serialdatei%')  do Set %%i  

echo.
echo.
echo  ..reading finished
echo.
echo.
echo  Preparing...

cd /d %temp%
echo Set wshshell = CreateObject("WScript.Shell") > serialwriter.vbs  
echo wshshell.AppActivate "setup.exe" >> serialwriter.vbs  
echo wscript.sleep 5000 >> serialwriter.vbs

rem anzahl der zeichen des serial zählen, maximum 40
if /i "%serialcount%" LEQ "0" (  
  for /l %%i in (0,1,40) do (
  set cut%%i=!serial:~%%i,1!
  if not "!cut%%i!"=="" set /a serialcount+=1  
  )
)

set /a serialcount-=1
rem count 20 = 21 vorgänge -1 = 20

::Herzstück, Patent!! ;D
for /l %%a in (0,1,%serialcount%) do (
set serialcut%%a=!serial:~%%a,1!
echo wshshell.Sendkeys "!serialcut%%a!" >> serialwriter.vbs  
echo wscript.sleep 100 >> serialwriter.vbs
)
echo wshshell.Sendkeys "{Enter}" >> serialwriter.vbs  

echo.
echo.
echo  ... ready!
::pause >nul
ping -n 2 127.0.0.1 > nul
cls
echo.
echo.
echo  Bereit^^! nachdem du eine beliebige Taste gedrckt hast,
echo   hast du 5 Sekunden Zeit das richtige Fenster auszuw„hlen. 
echo     ^(sofern das automatische Ausw„hlen fehlschl„gt^)
echo   Danach wird die Tasteneingabe des Serials emuliert
echo.
echo  Okay? Los gehts, drcke eine beliebige Taste...
pause >nul

cscript //nologo serialwriter.vbs

cls
echo.
echo.
echo  5..
echo.
echo.
ping -n 2 127.0.0.1 > nul
echo  3..
echo.
echo.
ping -n 2 127.0.0.1 > nul
echo  ...loslos!

ping -n 5 127.0.0.1 > nul
del serialwriter.vbs

:end


Hoffe ihr könnt mir wieder mal aus der Patsche helfen!
gruß, Ph

Content-ID: 72482

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

Phlegma
Phlegma 02.11.2007 um 20:00:42 Uhr
Goto Top
.. ich stell mal die Frage die mich hauptsächlich interessiert und die das ganze schnell zusammenfasst:
vbs sendkeys? dieses commando schreibt etwas, aber wieso schreibt es nicht in die Textfelder einer administratorgestarteten Installation?
Phlegma
Phlegma 07.11.2007 um 20:37:58 Uhr
Goto Top
es ist nun fast eine woche her, daher frag ich nochmal nach...
haben da nichmal die spezialisten biber und bastla ne idee?
Phlegma
Phlegma 19.11.2007 um 19:55:34 Uhr
Goto Top
schade, das ist das erste mal das ich hier keine hilfe bekomme.