pointer



  • Hi,

    mit diesen Ergänzungen habe ich keine Steuerzeichen mehr.

    Original erstellt von <Spector>:
    **>
    char pointer[255] = {'\0'};

    Und dann mal sehen ob die Zeichen immer noch kommen, wenn nicht liegt der Fehler ganz woanders, z.B. falscher Fenster Handle.**

    Aber,

    ShowMessage((char*)pointer);
    

    zeigt mir ein leeres Fenster. Das Handle muss stimmen, da ich mit

    SendMessage(hParent1, LB_GETcount,0,0);
    

    die Anzahl der Zeilen in der Listbox zurückbekomme.

    cookie_woman



  • MessageBox(NULL, pointer, NULL, MB_OK);



  • Hi,

    für eure schnelle Hilfe danke ich ersteinmal.

    Original erstellt von f00lish:
    **müsste es nicht

    SendMessage(hParent1, LB_GETTEXT,(WPARAM)0,(LPARAM)&pointer);
    

    heissen? und bist du sicher, das hParent1 eine listbox ist. nur vom namen her sieht es nicht so aus.. 😕
    **

    Glaube nicht.

    Original erstellt von f00lish:
    **
    egal, probier es doch so, ist schöner:

    LPTSTR pszText = NULL;
    LRESULT nLength = SendMessage(hParent1, LB_GETTEXTLEN, (WPARAM)nIndex, 0);
    pszText = new TCHAR[nLength];
    SendMessage(hParent1, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)pszText);
    [..]
    MessageBox(0,(char*)pointer, NULL, MB_OK);
    delete[] pszText;
    

    **

    Dies bringt mir auch ein leeres Fenster (Titel: Fehler) wie vorher auch. 😕 😕 😕

    cookie_woman



  • Hi,

    danke für eure Hilfe.
    Mein Code sieht nun so aus:

    char pointer[250]={'\0'}; 
    HWND hParent   = FindWindow("TEST","Titel"); 
    HWND hParent1 = FindWindowEx(hParent,0,"Listbox",0); 
    DWORD Index = SendMessage(hParent1,LB_GETCOUNT,0,0); 
    int i; 
    for (i=0; i<Index; i++) 
    { 
    SendMessage(hParent1,LB_GETTEXT, (WPARAM)i,(long)&pointer); 
    ShowMessage(pointer);
    

    Das funzt auch. Allerdings beinhaltet die Ausgabe am Anfang und mittendrinn ein Tab-zeichen. Nach dem letzten Tab sind normale Buchstaben, die bis zum EOL wegkönnen. Wie könnte ich diese Zeichen in der for-Schleife schon wegbekommen?
    Meine Überlegung war, "i" in eine variable zu schreiben und/oder die Daten in ein Textfile abzulegen.
    Ähnlich diesem hier:

    scanf("%[^\n]",name);
    

    Hier fehlt mir aber der zündende Gedanke.

    cookie_woman



  • Wenn du schon Borland benutzt, warum dann das ganze WinAPI-Zeugs???



  • Hi,

    Original erstellt von WebFritzi:
    Wenn du schon Borland benutzt, warum dann das ganze WinAPI-Zeugs???

    Das ist momentan nicht anders möglich, da ich auf eine externe Application zugreife. Oder hast du eine andere Möglichkeit??

    cookie_woman





  • Original erstellt von cookie_woman:
    **```cpp
    char pointer[250]={'\0'};
    HWND hParent = FindWindow("TEST","Titel");
    HWND hParent1 = FindWindowEx(hParent,0,"Listbox",0);
    DWORD Index = SendMessage(hParent1,LB_GETCOUNT,0,0);
    int i;
    for (i=0; i<Index; i++)
    {
    SendMessage(hParent1,LB_GETTEXT, (WPARAM)i,(long)&pointer);
    ShowMessage(pointer);

    
      
      
      
    Das funzt auch. Allerdings beinhaltet die Ausgabe am Anfang und mittendrinn ein Tab-zeichen. Nach dem letzten Tab sind normale Buchstaben, die bis zum EOL wegkönnen. Wie könnte ich diese Zeichen in der for-Schleife schon wegbekommen?  
    Meine Überlegung war, "i" in eine variable zu schreiben und/oder die Daten in ein Textfile abzulegen.  
    Ähnlich diesem hier:  
    
    ```cpp
    scanf("%[^\n]",name);
    

    Hier fehlt mir aber der zündende Gedanke.

    cookie_woman**

    Hi,

    hat nun jemand eine Idee???

    cookie-woman



  • Original erstellt von cookie_woman:
    **```cpp
    char pointer[250]={'\0'};
    // [...]
    SendMessage(hParent1,LB_GETTEXT, (WPARAM)i,(long)&pointer);

    Wie schon gesagt: &pointer ist falsch.
    lParam muss ein LPTSTR sein (siehe hier). &pointer ist ein zeiger auf einen Zeiger auf einen Buffer. Lass den Adressoperator & weg.

    [ Dieser Beitrag wurde am 16.06.2003 um 13:54 Uhr von cd9000 editiert. ]



  • Sorry,

    SendMessage(hParent1,LB_GETTEXT, (WPARAM)i,(LPARAM)pointer);
    

    ich hatte vergessen beim copy & paste das & wegzunehmen. Allerdings hat die Frage sich nicht geändert.

    cookie_woman


Anmelden zum Antworten