Applikation keine Reaktion

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Applikation keine Reaktion

Beitragvon Rolf Ramacher » Do, 21. Apr 2016 7:03

Guten Morgen

ich habe bei einem Kunden ein Problem. Eine Applikation startet nicht. Es erscheint keine Maske gar nichts. Im Taksmanager taucht die exe 3x auf und kann auch nicht beendet werden.
Alle andere Module laufen ohne Probleme. Dieses Phänomen taucht nur bei diesem Kunden auf. Win7.

Hat jemand irgendeine Idee? Hier die proc main

Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Inkey.ch"

#Define CRLF Chr(13)+Chr(10)

Proc Main()

   LOCAL nEvent, mp1, mp2, aFelder:={}, aSpwatch, aDb:={}, cNr:=""
   LOCAL oDlg, oXbp, drawingArea, aEditControls := {}, cArdek:="", oCombo

   If File("sprinter32.exe")
       // Abfrage auf Festplatte ob OK
      lGo:=ZugriffSchutzLesen()
      If lGo=.f.
         Return
      EndIf
   Endif

   // Sperrdatenbank prüfen
   use Sperre New Exclusive
   Set Index to "Sperre.cdx"
   Sperre->(OrdSetFocus("db"))

   If Sperre->(DbSeek(padr("spkonst",20)))
      If Sperre->Ein_Aus="E"
         Msgbox("SPKONST ist in Bearbeitung! - Gesperrt","Datenbankprüfung")
         Close Sperre
         Quit
      Else
         Sperre->Ein_Aus:="E"
      EndIf
   Else
      Sperre->(DbAppend())
      Sperre->Datenbank:="spkonst"
      Sperre->Ein_Aus:="E"
   EndIf
   Close Sperre
   
   AAdd(aDb,"spkonst")

   // Aktualisierung Spwatch.Dbf
    aSpwatch:={"Konstanten","Endnummervergabe","E","",0}
   AnhangSpwatch(aSpwatch)

   oDlg := XbpDialog():new( SetAppWindow(), , {150,200}, {440,200}, , .F.)
   oDlg:taskList := .T.
   oDlg:title := "Endnummernvergabe"
   oDlg:setFontCompoundName( "9.Arial" )
   oDlg:create()
   CenterControl(oDlg)

   drawingArea := oDlg:drawingArea
   drawingArea:setFontCompoundName( "8.Arial" )

   use Spkonst New
   AAdd(aFelder,{"enrman",Spkonst->EnrMan})
   AAdd(aFelder,{"enr3st",Spkonst->Enr3st})
   Close Spkonst

   oStatic := XbpStatic():new( drawingArea,, {20, 120},  {320, 20} )
   oStatic:options := XBPSTATIC_TEXT_LEFT
   oStatic:caption := "Endnummervergabe 'Automatisch (A) oder Manuell (M)'"
   oStatic:Create()

   // Combobox mit aufklappbarer Listbox
   oCombo1 := XbpCombobox():new( drawingArea, , {360,80}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oCombo1:type := XBPCOMBO_DROPDOWNLIST
   oCombo1:tabStop := .T.
   oCombo1:create()

   // Datenlink von Eingabefeld zu LOCAL Variable
   oCombo1:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[1][2], aFelder[1][2] := x ) }
   oCombo1:XbpSLE:setData()
   bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }

   // Codeblock für Auswahl durch Up und Down Taste
   oCombo1:ItemMarked := bAction
   
   // Codeblock für Auswahl durch linken Mausklick in der Listbox
   oCombo1:ItemSelected := bAction
   
   // Daten aus Array in Combobox übertragen, Array verwerfen
   oCombo1:addItem( "A" )
   oCombo1:addItem( "M" )
   oCombo1:setdata(aFelder[1][2])
   
   oStatic := XbpStatic():new( drawingArea,, {20, 090},  {320, 20} )
   oStatic:options := XBPSTATIC_TEXT_LEFT
   oStatic:caption := "Die letzten Stellen der Artikelnummer ?stellig '2/3'"
   oStatic:Create()

   // Combobox mit aufklappbarer Listbox
   oCombo := XbpCombobox():new( drawingArea, , {360,50}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oCombo:type := XBPCOMBO_DROPDOWNLIST
   oCombo:tabStop := .T.
   oCombo:create()

   // Datenlink von Eingabefeld zu LOCAL Variable
   oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[2][2], aFelder[2][2] := x ) }
   oCombo:XbpSLE:setData()
   bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }

   // Codeblock für Auswahl durch Up und Down Taste
   oCombo:ItemMarked := bAction
   
   // Codeblock für Auswahl durch linken Mausklick in der Listbox
   oCombo:ItemSelected := bAction
   
   // Daten aus Array in Combobox übertragen, Array verwerfen
   oCombo:addItem( "2" )
   oCombo:addItem( "3" )
   oCombo:setdata(aFelder[2][2])

   oXbp := XbpPushButton():new( drawingArea, , {180,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
   oXbp:caption := "Abbruch"
   oXbp:tabStop := .T.
   oXbp:default:=.t.
   oXbp:create()
   oXbp:activate := {|| PostAppEvent( xbeP_Close ) }

   oXbp := XbpPushButton():new( drawingArea, , {280,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
   oXbp:caption := "Speichern"
   oXbp:tabStop := .T.
   oXbp:default:=.t.
   oXbp:create()
   oXbp:activate := {|| Speichern(aFelder,"",aSpwatch),PostAppEvent( xbeP_Close ) }

   oDlg:show()
   SetAppFocus(oCombo1)

   nEvent := xbe_None
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO
   Freigabe(aDb)
   oDlg:destroy()
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1807
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim

Re: Applikation keine Reaktion

Beitragvon georg » Do, 21. Apr 2016 7:21

Hallo, Rolf -


einmal mit Debug-Information compilieren und beim Kunden (per Fernwartung) mit xppdbg laufen lassen und sehen, was passiert.

Mehr fällt mir dazu im Moment nicht ein.
Liebe Grüsse aus der Eifel,

Georg
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: Applikation keine Reaktion

Beitragvon Scarmo » Do, 21. Apr 2016 7:23

Hallo Rolf

Ich würde ganz zu Beginn mal eine MsgBox("Start") reinmachen damit Du siehst, ob überhaupt etwas ausgeführt wird. Ansonsten mal testen, wie es sich ohne Virenscanner verhält.

Gruss
Marco
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 127
Registriert: Di, 24. Jul 2007 8:17

Re: Applikation keine Reaktion

Beitragvon brandelh » Do, 21. Apr 2016 7:29

Wird das Programm in C:\Programme ... ausgeführt ?
Dann versucht es eventuell eine Fehlermeldung zu schreiben, die aber wegen Schreibschutz ausfällt.
Genauso die XppFatal.log und somit sieht man nix.

direkt nach dem Start muss man das aktuelle Verzeichnis auf eines mit Schreibrechten umlegen oder gleich einen anderen Pfad nutzen.

XppError.PRG appSys etc. sind standard ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13271
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Applikation keine Reaktion

Beitragvon Herbert » Do, 21. Apr 2016 11:38

brandelh hat geschrieben:Wird das Programm in C:\Programme ... ausgeführt ?
Dann versucht es eventuell eine Fehlermeldung zu schreiben, die aber wegen Schreibschutz ausfällt.
Genauso die XppFatal.log und somit sieht man nix.

Denke auch, dass ein Zugriffsproblem besteht. Falls das Programm in c:\Programme läuft oder in c:\benutzer... gearbeitet wird, passt's nicht unmbedingt (User Access Control ist ab Win7 ja verschärft worden)
Nimm ein neutrales Verzeichnis für Programm und Daten und es wird wohl klappen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1764
Registriert: Mi, 13. Aug 2008 23:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Applikation keine Reaktion

Beitragvon Rolf Ramacher » Mo, 25. Apr 2016 10:09

guten Morgen Leute

so es ist ein neues Antivierenprogramm auf dem Rechner installiert worden Gdata

das Programm startet jetzt nicht mehr 3x, sondern nur 1x im Taskmanager - es wird NICHT in Programm ausgeführt. im Verzeichnis c:\orga32 - hier sind alle Dateien enthalten. alle DLL usw.
Der User ist ebenfalls auch als Admin registriert.

Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Inkey.ch"

#Define CRLF Chr(13)+Chr(10)

Proc Main()

   LOCAL nEvent, mp1, mp2, aFelder:={}, aSpwatch, aDb:={}, cNr:=""
   LOCAL oDlg, oXbp, drawingArea, aEditControls := {}, cArdek:="", oCombo, lGo:=.f.

msgbox("start")
   If File("sprinter32.exe")
       // Abfrage auf Festplatte ob OK
      lGo:=ZugriffSchutzLesen()
msgbox(var2lchar(lGo),"lGo")
      If lGo=.f.
         Return
      EndIf
   Endif

   // Sperrdatenbank prüfen
   use Sperre New Exclusive
   Set Index to "Sperre.cdx"
   Sperre->(OrdSetFocus("db"))

msgbox("sperre dbf geöffnet")
   If Sperre->(DbSeek(padr("spkonst",20)))
      If Sperre->Ein_Aus="E"
         Msgbox("SPKONST ist in Bearbeitung! - Gesperrt","Datenbankprüfung")
         Close Sperre
msgbox("führe gleich quit durch")
         Quit
      Else
         Sperre->Ein_Aus:="E"
      EndIf
   Else
      Sperre->(DbAppend())
      Sperre->Datenbank:="spkonst"
      Sperre->Ein_Aus:="E"
msgbox("sperre satz angehängt")
   EndIf
   Close Sperre
msgbox("sperre geschlossen")   
   AAdd(aDb,"spkonst")

   // Aktualisierung Spwatch.Dbf
    aSpwatch:={"Konstanten","Endnummervergabe","E","",0}
   AnhangSpwatch(aSpwatch)

msgbox("Maskenaufbau")
   oDlg := XbpDialog():new( SetAppWindow(), , {150,200}, {440,200}, , .F.)
   oDlg:taskList := .T.
   oDlg:title := "Endnummernvergabe"
   oDlg:setFontCompoundName( "9.Arial" )
   oDlg:create()
   CenterControl(oDlg)

   drawingArea := oDlg:drawingArea
   drawingArea:setFontCompoundName( "8.Arial" )

   use Spkonst New
   AAdd(aFelder,{"enrman",Spkonst->EnrMan})
   AAdd(aFelder,{"enr3st",Spkonst->Enr3st})
   Close Spkonst

   oStatic := XbpStatic():new( drawingArea,, {20, 120},  {320, 20} )
   oStatic:options := XBPSTATIC_TEXT_LEFT
   oStatic:caption := "Endnummervergabe 'Automatisch (A) oder Manuell (M)'"
   oStatic:Create()

   // Combobox mit aufklappbarer Listbox
   oCombo1 := XbpCombobox():new( drawingArea, , {360,80}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oCombo1:type := XBPCOMBO_DROPDOWNLIST
   oCombo1:tabStop := .T.
   oCombo1:create()

   // Datenlink von Eingabefeld zu LOCAL Variable
   oCombo1:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[1][2], aFelder[1][2] := x ) }
   oCombo1:XbpSLE:setData()
   bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }

   // Codeblock für Auswahl durch Up und Down Taste
   oCombo1:ItemMarked := bAction
   
   // Codeblock für Auswahl durch linken Mausklick in der Listbox
   oCombo1:ItemSelected := bAction
   
   // Daten aus Array in Combobox übertragen, Array verwerfen
   oCombo1:addItem( "A" )
   oCombo1:addItem( "M" )
   oCombo1:setdata(aFelder[1][2])
   
   oStatic := XbpStatic():new( drawingArea,, {20, 090},  {320, 20} )
   oStatic:options := XBPSTATIC_TEXT_LEFT
   oStatic:caption := "Die letzten Stellen der Artikelnummer ?stellig '2/3'"
   oStatic:Create()

   // Combobox mit aufklappbarer Listbox
   oCombo := XbpCombobox():new( drawingArea, , {360,50}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oCombo:type := XBPCOMBO_DROPDOWNLIST
   oCombo:tabStop := .T.
   oCombo:create()

   // Datenlink von Eingabefeld zu LOCAL Variable
   oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[2][2], aFelder[2][2] := x ) }
   oCombo:XbpSLE:setData()
   bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }

   // Codeblock für Auswahl durch Up und Down Taste
   oCombo:ItemMarked := bAction
   
   // Codeblock für Auswahl durch linken Mausklick in der Listbox
   oCombo:ItemSelected := bAction
   
   // Daten aus Array in Combobox übertragen, Array verwerfen
   oCombo:addItem( "2" )
   oCombo:addItem( "3" )
   oCombo:setdata(aFelder[2][2])

   oXbp := XbpPushButton():new( drawingArea, , {180,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
   oXbp:caption := "Abbruch"
   oXbp:tabStop := .T.
   oXbp:default:=.t.
   oXbp:create()
   oXbp:activate := {|| PostAppEvent( xbeP_Close ) }

   oXbp := XbpPushButton():new( drawingArea, , {280,40}, {90,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
   oXbp:caption := "Speichern"
   oXbp:tabStop := .T.
   oXbp:default:=.t.
   oXbp:create()
   oXbp:activate := {|| Speichern(aFelder,"",aSpwatch),PostAppEvent( xbeP_Close ) }

   oDlg:show()
   SetAppFocus(oCombo1)

   nEvent := xbe_None
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO
   Freigabe(aDb)
   oDlg:destroy()

   cNr:=LizenznrLesen()
   If cNr == "11"
      quit
   Endif
RETURN


es erscheint noch nicht mal die msgbox("start")
ich stehe vor einem Rätsel
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1807
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim

Re: Applikation keine Reaktion

Beitragvon Jan » Mo, 25. Apr 2016 10:24

Rolf,

das spricht doch sehr dafür, daß das Problem in ZugriffSchutzLesen() auftritt. Hast Du das mal durchkontrolliert?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11514
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Applikation keine Reaktion

Beitragvon Rolf Ramacher » Mo, 25. Apr 2016 10:31

Hallo Jan,

nein daran kann es nicht liegen. die msgbox("start") vorher kommt ja erst gar nicht.
und außerdem ist die Funktion Zugriffschutzlesen() in allen programmteilen enthalten. und die funktionieren ja ohne Probleme.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1807
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim

Re: Applikation keine Reaktion

Beitragvon satmax » Mo, 25. Apr 2016 10:37

Eingabeaufforderung als Admninistrator ausführen (egal was der Benutzer ist)
cd\orga32
Starten versuchen.

Wenn es nicht geht, mit
SET PATH=
(in der Eingabeaufforderung) die PATH Var auf leer setzen und nochmals veruschen.

Vorher immer im Taskmanager kontrollieren das keine Instanz Deines Programms aktiv ist.

Eventuell Virenscanner deaktivieren und wieder starten.
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 775
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich


Zurück zu Windows, API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast