Fenter öffnet sich normal nicht minimiert

Test

Erfahrenes Mitglied
Ich habe doch den Startinfos gesagt, das sich das Programm minimiert starten soll. Wiso startet es dann trotzdem normal?

Code:
TProcessInformation ProzessInfo;
TStartupInfo StartInfos; 
setmem(&StartInfos,sizeof(TStartupInfo),0); 
StartInfos.cb = sizeof(TStartupInfo); 
StartInfos.wShowWindow=SW_SHOWMINIMIZED;
CreateProcess(NULL,Exepfad.c_str(),
                NULL,NULL,false,
                CREATE_DEFAULT_ERROR_MODE | REALTIME_PRIORITY_CLASS,
                NULL,NULL,
                &StartInfos,&ProzessInfo);
 
Du solltest dwFlags auf "STARTF_USESHOWWINDOW" setzen, sonst wird der Parameter wShowWindow ignoriert:

Code:
TProcessInformation ProzessInfo;
TStartupInfo StartInfos; 
setmem(&StartInfos,sizeof(TStartupInfo),0); 
StartInfos.cb = sizeof(TStartupInfo); 
StartInfos.dwFlags=STARTF_USESHOWWINDOW;
StartInfos.wShowWindow=SW_SHOWMINIMIZED;
CreateProcess(NULL,Exepfad.c_str(),
                NULL,NULL,false,
                CREATE_DEFAULT_ERROR_MODE | REALTIME_PRIORITY_CLASS,
                NULL,NULL,
                &StartInfos,&ProzessInfo);
 
Original geschrieben von Astardes
Nein, er nutzt nur eine Win-Api. Delphi und C++ sind da sehr ähnlich.

Quatsch,
TProcessInformation und TStartupInfo gibts in der winapi gar nicht.
PROCESS_INFORMATION und STARTUPINFO sind hier schon eher angebracht.
Sachen wie TProcessInformation und TStartupInfo kann man benutzen wenn man mit dem Borland C++ Builder codet. (Was auch Tests Fall zu sein scheint)
 
Zuletzt bearbeitet:
Original geschrieben von rockbaer
Sachen wie TProcessInformation und TStartupInfo kann man benutzen wenn man mit dem Borland C++ Builder codet. (Was auch Tests Fall zu sein scheint)
...dann ist ja wieder alles im Lot und er ist mit seinem (Borland C++ Builder -) Problem hier richtig. Ich denke, wir sollten seine Frage selbst in dem Fall beantworten, dass er sein Problem in der falschen Rubrik gepostet hat. ;) Außerdem wird er ein solches Problem kaum mit Delphi haben, da man dort ja alle Funktionen zusammenklicken kann. :p
 
Immer noch da + was Neues

Ja ich nutze den Builder, doch leider hat es nicht funktioniert es ist immer noch da.

Ich soll den Inhalt eines Menüpunktes bzw. einer Editbox ermitteln. Hab schon GETWINDOWTEXT probiert aber ich erhalte nur Codemüll zurück jemand ne Idee?
 
Re: Immer noch da + was Neues

1. Hab's übersehen, sorry! Der korrekte Parameter wShowWindow ist:
Code:
StartInfos.wShowWindow=SW_MINIMIZE;
2. Das Auslesen eines Editfeldes realisierst Du über:
Code:
GetDlgItemText(HWND Windowhandle, int ItemID, LPTSTR Stringvariable, int Stringlänge);
Ein Tipp: du kannst auf verschiedenen Webseiten die Hilfe zur WinAPI runterladen (z.B. auf Friends-of-fpc.org). Die beschreibt alle Parameter und Aufrufe.
 
Zuletzt bearbeitet:
Also die Hilfe ist sehr gut gemacht, doch hilft sie mir leider nicht weiter.
GetDlgItemText gibt mir nur \0\0 zurück. Also hab ich es direkt per
Code:
char Inhalt[255]="";
SendMessage(EditBoxHandle,WM_GETTEXT,(WPARAM)Inhalt,255);
probiert aber wieder nichts erhalten. Woran kann denn das nur liegen?

Das mit dem Minimiert starten funktioniert jetzt zwar aber sobald ich den Datei öffnen Dialog aufrufe erscheint auch das Hauptfenster wieder. Kann man das irgendwie unterbinden?
 
Ok dummer Fehler hab GetDlgItemText mit WM_GETTEXT vermischt. Es muss natürlich so lauten:

Code:
SendMessage(EditBoxHandle, WM_GETTEXT, 255, (LPARAM)Inhalt);

Kann man eigentlich ein Handle zu einem MenüeintragItem ermitteln?

Ich komme nur bis zum entsprechenden Submenü:

Code:
HWND HandleHauptMenu=GetMenu(HandleDialog);
HWND HandleDateiMenue=GetSubMenu(HandleHauptMenue,0);
HWND HandleUnterMenue=GetSubMenu(HandleDateiMenue,0);
HWND HandleMenueItem1=?(HandleUnterMenue,?)
 
Zurück