[Suche] Skript

darofin

Ungläubiger
Hey, kann mir bitte jemand ein skript schreiben, dass ein Programm ausführt (Pfad suche ich noch raus), 2 Stunden wartet, das Programm schließt und wieder ausführt (und das ganze wiederholt)?


Es geht um eine Probeversion eines Programms, das leider nur 2 Stunden lang funktioniert ;)
 

Zero

Chief 0perating 0fficer
Teammitglied
Admin
windows?
Bei windows kannst das über den Taskplaner so machen lassen.
oder auch Aufgaben Planen
 

darofin

Ungläubiger
sehr schöne Idee, daran habe ich gar nicht gedacht!

Falls jemand dennoch Langeweile haben sollte und mir ein Skript schreiben möchte (oder mir erklärt, wie das geht), wäre ich höchst zufrieden^^
 

Zero

Chief 0perating 0fficer
Teammitglied
Admin
es kommt auf die Sprache an ;P

aber es geht über die WinApi.
mit CreateProcess kannst du den Prozess aufrufen und dir die Prozess-ID geben lassen.
mit TerminateProcess und der ID kannst du es dann wieder schließen.
Zwischendrin nen simplen Timer ;P


oder wenn du nur den namen hast:
PHP:
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
 
void printError( TCHAR* msg );
BOOL KillProcessByName(char *szProcessToKill);
 
 
int main()
{
KillProcessByName("Icq.exe");      // Anstatt Icq.exe halt "Test.exe" eingeben!
return 0;
}
 
 
BOOL KillProcessByName(char *szProcessToKill)
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;
 
hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
 
if( hProcessSnap == INVALID_HANDLE_VALUE )
  {
    printError( "CreateToolhelp32Snapshot (of processes)" );
    return( FALSE );
  }
 
pe32.dwSize = sizeof( PROCESSENTRY32 );
 
if( !Process32First( hProcessSnap, &pe32 ) )
  {
    printError( "Process32First" );  
    CloseHandle( hProcessSnap );     
    return( FALSE );
  }
 
do{
    if(!strcmp(pe32.szExeFile,szProcessToKill))
    {
    printf("Prozess: %s \n",pe32.szExeFile);
    printf("PID: %d \n",pe32.th32ProcessID );  
    hProcess = OpenProcess(PROCESS_TERMINATE,0, pe32.th32ProcessID);
    TerminateProcess(hProcess,0);
    CloseHandle(hProcess);
    } 
  } while( Process32Next(hProcessSnap,&pe32) );
 
 
CloseHandle( hProcessSnap );
return( TRUE );
}
 
void printError( TCHAR* msg )
{
  DWORD eNum;
  TCHAR sysMsg[256];
  TCHAR* p;
 
  eNum = GetLastError( );
  FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
         NULL, eNum,
         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
         sysMsg, 256, NULL );
 
  // Trim the end of the line and terminate it with a null
  p = sysMsg;
  while( ( *p > 31 ) || ( *p == 9 ) )
    ++p;
  do { *p-- = 0; } while( ( p >= sysMsg ) &&
                          ( ( *p == '.' ) || ( *p < 33 ) ) );
 
  // Display the message
  printf( "\n  WARNING: %s failed with error %d (%s)", msg, eNum, sysMsg );
}
nicht mein code und ich habs auch nicht getestet ^^

wir brauche nen cpp-Tag xD
 

Zero

Chief 0perating 0fficer
Teammitglied
Admin

darofin

Ungläubiger
ah sehr gut, nach so einem kommando "wait 7200" habe ich gesucht.

Ich meine, es gab für .bat auch ne "kill process", da schaue ich mal nach. Der Kumpel meiner Mutter hat mir schonmal was geschrieben, da kam das drin vor^^

Danke Leute :)
 
Oben