Fenter öffnet sich normal nicht minimiert

Sagt mal muss ich nach dem ich den mit CreateProcess gestarteten Prozess beendet habe noch irgendwas freigeben? Hab mein Programm mal mit dem BounceChecker durchlaufen lassen und dieser meinte mein CreateProcess würde ein Speicherleck verursachen!
 
Hast Du nicht einfach Lust, den Quellcode mal mit einem Anwendungsbeispiel rüberzuschicken (oder ist das Projekt geheim und sündhaft teuer)? :rolleyes:

gruß
 
Also das mit dem geheim und sündhaft teuer trifft es schon irgendwie, aber ich werd mal schauen ob ich es nicht für z.B. Notepad umschreiben kann. Soll ich es dir dann mailen, per Zip hier ins Forum stellen oder sogar ein kleines "Wie erstelle ich eine Fernsteuerung"-Tutorial draus machen?
 
Zuletzt bearbeitet:
Lieber zu spät als niemals

Sorry hab es erste jetzt geschafft eine entsprechende Anwendung fertig zu stellen. Du braucht den C++ Builder, ein Formular mit 2 Editboxen und einen Button. In die erste Editbox kommt der Text den man in Notepad schreiben will und in die 2. der Pfad unter dem gespeichert werden soll. Dem Button-klick jetzt noch diese Code:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TProcessInformation ProzessInfo;
 char pfadDesSystemordners[MAX_PATH];
 GetSystemDirectory( pfadDesSystemordners, sizeof( pfadDesSystemordners ) );
 String zielPfad=pfadDesSystemordners;
 zielPfad+="\\Notepad.exe";
 TStartupInfo StartInfos;
 setmem(&StartInfos,sizeof(TStartupInfo),0);
 StartInfos.cb = sizeof(TStartupInfo);
 if(!CreateProcess(NULL,zielPfad.c_str(),
              NULL,NULL,false,
              CREATE_DEFAULT_ERROR_MODE | REALTIME_PRIORITY_CLASS,
              NULL,NULL,
              &StartInfos,&ProzessInfo))
   {
    MessageBoxA(NULL,"Notepad nicht gestartet","Fehler",MB_OK);
    return;
   }
   WaitForInputIdle(ProzessInfo.hProcess, INFINITE);
 HWND hNotepad=NULL;
 int i=0;
 do
 {
  i++;
  hNotepad=FindWindow(0,"Unbenannt - Editor");
 }while(i<10 && !hNotepad);
 if(!hNotepad)
 {
  MessageBoxA(NULL,"Handle zu Notepad nicht gefunden","Fehler",MB_OK);
  return;
 }
 HWND hTextfeld=NULL;
 i=0;

 do
 {
  hTextfeld=FindWindowEx(hNotepad,0,"Edit",0);
 }while(i<10 && !hTextfeld);

 if(!hTextfeld)
 {
  MessageBoxA(NULL,"Handle zum Textfeld nicht gefunden","Fehler",MB_OK);
  return;
 }
  char* halter=Edit1->Text.c_str();
  int iBuchstabenzaehler=0;
  while(halter[iBuchstabenzaehler])
  {
   if(PostMessage(hTextfeld,WM_CHAR,halter[iBuchstabenzaehler],0)==0)
   {
    MessageBoxA(NULL,"Meldung zum eintragen des Textes wurde nicht in Notepad eingereiht","Fehler",MB_OK);
    return;
   }
   iBuchstabenzaehler++;
  }
  if(PostMessage(hNotepad,WM_CLOSE,0,0)==0)
  {
   MessageBoxA(NULL,"Meldung zum beenden von Notepad wurde nicht eingereiht","Fehler",MB_OK);
   return;
  }
  HWND hSpeichernMeldung=NULL;
  i=0;
  do
  {
   hSpeichernMeldung=FindWindow(0,"Editor");
   i++;
  }while(i<10 && !hSpeichernMeldung);

  if(!hSpeichernMeldung)
  {
   MessageBoxA(NULL,"Handle zur Speichern-Meldung nicht gefunden","Fehler",MB_OK);
   return;
  }
  HWND hJaButton=NULL;
  i=0;
  do
  {
   hJaButton=FindWindowEx(hSpeichernMeldung,0,0,"&Ja");
  }while(i<10 && !hJaButton);

  if(!hJaButton)
  {
   MessageBoxA(NULL,"Handle zum Ja-Button nicht gefunden","Fehler",MB_OK);
   return;
  }
  if(PostMessage(hJaButton,BM_CLICK,0,0)==0)
  {
   MessageBoxA(NULL,"Meldung zum Klicken des Ja-Buttons wurde nicht eingereiht","Fehler",MB_OK);
   return;
  }
  HWND hSpeichernDialog=NULL;
  Sleep(3000);
  i=0;
  do
  {
   i++;
   hSpeichernDialog=FindWindow(0,"Speichern unter");
  }while(i<10 && !hSpeichernDialog);

  if(!hSpeichernDialog)
  {
   MessageBoxA(NULL,"Handle zum Speichern-Dialog nicht gefunden","Fehler",MB_OK);
   return;
  }
  HWND hDateinameBox=NULL;
  i=0;
  do
  {
   i++;
   hDateinameBox=FindWindowEx(hSpeichernDialog,0,"ComboBoxEx32",0);
  }while(i<10 && !hDateinameBox);

  if(!hDateinameBox)
  {
   MessageBoxA(NULL,"Handle zur Combobox mit dem Dateinamen nicht gefunden","Fehler",MB_OK);
   return;
  }
  HWND hCombobox=NULL;
  i=0;
  do
  {
   i++;
   hCombobox=FindWindowEx(hDateinameBox,0,"ComboBox",0);
  }
  while(i<10 && !hCombobox);

  if(!hCombobox)
  {
   MessageBoxA(NULL,"Handle zur ComboBox mit dem Dateinamen nicht gefunden","Fehler",MB_OK);
   return;
  }

  HWND hEditbox=NULL;
  i=0;
  do
  {
   i++;
   hEditbox=FindWindowEx(hCombobox,0,"Edit",0);
  }
  while(i<10 && !hEditbox);

  if(!hEditbox)
  {
   MessageBoxA(NULL,"Handle zur EditBox mit dem Dateinamen nicht gefunden","Fehler",MB_OK);
   return;
  }

  char* halter2=Edit2->Text.c_str();
  iBuchstabenzaehler=0;
  while(halter2[iBuchstabenzaehler])
  {
   if(PostMessage(hEditbox,WM_CHAR,halter2[iBuchstabenzaehler],0)==0)
   {
    MessageBoxA(NULL,"Meldung zum eintragen des Dateinamens wurde nicht in Notepad eingereiht","Fehler",MB_OK);
    return;
   }
   iBuchstabenzaehler++;
  }
  HWND hSpeichernButton=NULL;
  i=0;
  do
  {
   i++;
   hSpeichernButton=FindWindowEx(hSpeichernDialog,0,0,"&Speichern");
  }while(i<10 && !hSpeichernButton);

  if(!hSpeichernButton)
  {
   MessageBoxA(NULL,"Handle zum Speichernbutton nicht gefunden","Fehler",MB_OK);
   return;
  }

  if(PostMessage(hSpeichernButton,BM_CLICK,0,0)==0)
  {
   MessageBoxA(NULL,"Meldung zum Klicken des Speichern-Buttons wurde nicht eingereiht","Fehler",MB_OK);
   return;
  }
}

geben und schon hast du eine Fernsteuerung für Notepad.
 
Zurück