Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

ASM (Windows) - GetCommandLine Problem unter EasyCode

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 10.12.2007, 12:35    Titel: ASM (Windows) - GetCommandLine Problem unter EasyCode Antworten mit Zitat

Ich entdeckte kützlich eine gute Assembler-IDE mit Form-Designer. Nur werden da manche Variablen initialisiert von denen ich dann nichts weiss jedenfalls habe ich den mci-Player-Code mal in diese IDE übertragen und habe folgendes Problem: Der mit GetCommandLine ermittelte String ist leer sobald das Programm ausserhalb der IDE gestartet wird; innerhalb der IDE wird der Dateiname übergeben (und korrekt verarbeitet was natürlich mit einem FALSE von der mciSendString-Funktion bestätigt wird).

Ausserdem schaffte ich es auf keine der bekannten Methoden einen Datei Öffnen-Dialog anzuzeigen (Fehler bei ofn, habe die Struktur initislisiert und wieder weggelassen falls sie im Hintergrund initialisiert würde etc.)

Hier der Code:
Code:
Include   winmm.inc
IncludeLib   winmm.lib

.Const

.Data?
cmdlne DD ?
.Data
fehler DB "Fehler", 0

open1 DB "open ", 1024 Dup(?), 0
open2 DB " type MPEGVideo alias MyAlias",0       
play DB "play MyAlias",0
stop DB "stop MyAlias",0
filename DB 1024 dup(?)
close DB "close MyAlias",0
mci3 DB 0
.Code

Window1Procedure Proc Private hWnd:HWND, uMsg:ULONG, wParam:WPARAM, lParam:LPARAM
   .If uMsg == WM_CREATE
 Invoke GetCommandLine
Mov cmdlne, Eax



abspielen:
            mov open1[5],0       ;open ,0 und nicht weiter, string leeren
            Invoke GetShortPathName, cmdlne, Addr filename, 255

Start:

 
  lea esi, open1
 FindLastByte:
  lodsb
  Or al, al
  jnz FindLastByte
 
  dec esi
  mov edi, esi
  lea esi, filename
  CatStrings:
  lodsb
  Or al, al
  jz Done
  stosb
  jmp CatStrings
 
 Done:
  mov al, 0
  stosb


                 ;Start:   
  lea esi, open1
 FindLastByte2:
  lodsb
  Or al, al
  jnz FindLastByte2
 
  dec esi
  mov edi, esi
  lea esi, open2
  CatStrings2:
  lodsb
  Or al, al
  jz Done2
  stosb
  jmp CatStrings2
 
 Done2:
  mov al, 0
  stosb
Invoke MessageBox, 0, Addr open1, Addr open1, MB_ICONINFORMATION

            lea eax, open1
                   
            invoke mciSendString, eax, ADDR mci3,0,0
                lea ebx, mci3
                lea eax, play
                invoke mciSendString, eax, ebx,0,0
                cmp eax, 0
                je ok
                Invoke MessageBox, hWnd, Addr fehler, Addr fehler, MB_OK Or MB_ICONERROR

               ok:

      Return TRUE
   .ElseIf uMsg == WM_CLOSE
      Invoke mciSendString, Addr stop, Addr mci3, 0, 0
    invoke mciSendString, ADDR close, ADDR mci3,0,0
      Invoke IsModal, hWnd
      .If Eax
         Invoke EndModal, hWnd, IDCANCEL
         Return TRUE
      .EndIf
      .ElseIf uMsg == WM_COMMAND
         Mov Eax, wParam
         .If Ax == IDC_WINDOW1_BUTTON1
            Shr Eax, 16
            .If Ax == BN_CLICKED


               .EndIf
               .EndIf
   .EndIf
   Return FALSE
Window1Procedure EndP

Window1Button1 Proc Private hWnd:HWND, uMsg:ULONG, wParam:WPARAM, lParam:LPARAM
   Return FALSE
Window1Button1 EndP


_________________
...längre blomstre gamle nord...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz