Foro | | | | - Página 1 - |
| liveFamilie | ¡Hola,
Yo verzweifle seit unos pocos Tagen a folgendem Problema. Posesiones con el DialogboxDesigner una Diálogo kreiert. In diesem Ventana Yo con startpaint, Usefont y Drawtext - Texto en el Dialogfenster producido. En Ausführen con el Interpretermodus en el Editor se alles schön adecuado. Erzeuge Yo una .exe voluntad el oberen 3 a 5 Zeilen geschluckt y no adecuado.
Weis alguien RAT ?
Saludo Toni |
| | | "Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 05.05.2012 ▲ |
| |
| | « Dieser Contribución wurde como Solución gekennzeichnet. » | | Andreas Miethe
| ¡Hola Toni,
todavía eins para Abfragen si el Programa ya se ejecuta. Es no optimal de Usted gelöst. Puedo lo mehrmals starten, solange Yo el Messagebox no wegklicke.
Hier veces una Tip como mejor va. Ab XProfan8
'##############################################
'# Autor : ampsoft (Andreas Miethe) #
'# Datum : 06.05.2012 #
'# Thema : sólo una Instanz #
'# XProfan-Versión : de XProfan 8 #
'##############################################
$H Windows.ph
$H Messages.ph
Proc IsProgRunning
'FileMapping-Objeto invertir
Declarar hMap&,FirstProg&
'Speicherbereich invertir
hMap& = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,4,"{D27FA9ED-55E4-4588-A10B-E4165BB37ED7}")
'Zeiger en Speicherbreich
MemPointer& = ~MapViewOfFile(hMap&,$000F001F,0,0,0)
'Ventana-Handle el ersten Instanz ermitteln
FirstProg& = Largo(MemPointer&,0)
'Ist el Ventana disponible, entonces
Caso negativo ~IsWindow(FirstProg&) = 0
'Wenn Ventana verkleinert es
If ~IsIconic(FirstProg&)
'Ventana vergrössern
SendMessage(FirstProg&,~WM_SYSCOMMAND,~SC_RESTORE,0)
EndIf
'Ventana en el Vordergrung
~SetForegroundWindow(FirstProg&)
'Speicherbereich liberación
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
'Programa final
End
EndIf
ENDPROC
Declarar MemPointer&,Ende&
'Überprüfung si Programa ya se ejecuta
IsProgRunning()
Windowstyle 539
CLS
'Handle des Haupt-Fensters en el Speicherbereich ablegen
Largo MemPointer&,0 = %hWnd
Ende& = 0
Sinestar encargado Ende&
WaitInput
If %Key = 2'Close_Button.
'Speicherbereich liberación
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
Ende& = 1
EndIf
EndWhile
end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.05.2012 ▲ |
| | |
| | Jörg Sellmeyer | Am besten siempre el Profanversion con angeben y una lauffähigen Code mitposten, sonst puede wir sólo raten, qué el problema es. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.05.2012 ▲ |
| |
| | liveFamilie | ¡Hola Jörg,
also Yo arbeite con Profano 9.1 en Vista y Win 7, en beiden el gleiche Problema.
Yo versuche veces una Bild con hochzuladen, así uno el Diferencia sieht.
'----- Beginn Ahnenblatt portable Anwender-Erweiterung -----
'-----
'----- programmiert en XProfan V9.1 -----
'----- Freeware, Vollversion con Compiler -----
'-----
'----- Programa Variabeln festlegen -----
'----- Programmverzeichnis festlegen (portable) -----
Declarar Programa$
Programm$ = GetDir$("@")
'----- Programa ini-Pfad festlegen -----
Declarar Progini$
Progini$ = Programa$+"\\Ahnblatt.ini"
'----- Programa ini auslesen y en Variables festlegen -----
'----- Ordnerpfade festlegen -----
Proc ABOainil
'----- AB = Ahnenblatt, O = Ordner, a = de, ini = Ahnblatt.ini, l = lesen
Declarar Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Declarar LastFileName$
Familien$ = (@ReadIni$ (Progini$, "Dateien", "Familien"))
Suchbegriffe$ = (@ReadIni$ (Progini$, "Dateien", "Suchbegriffe"))
Ausgaben$ = (@ReadIni$ (Progini$, "Dateien", "Ausgaben"))
Bilder$ = (@ReadIni$ (Progini$, "Dateien", "Bilder"))
Tafelbilder$ = (@ReadIni$ (Progini$, "Dateien", "Tafelbilder"))
LastFileName$ = (@ReadIni$ (Progini$, "Allgemein", "LastFileName"))
ENDPROC
'----- Programa ini auslesen y en Variables festlegen : Ende -----
'----- Ordner en ini-Expediente escribir -----
Proc OWriteini
Declarar Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Declarar LastFileName$
ABOainil
WriteIni Progini$,"Dateien","Familien"=Programa$+"\\"
WriteIni Progini$,"Dateien","Suchbegriffe"=Programa$+"\\"
WriteIni Progini$,"Dateien","Ausgaben"=Programa$+"\\"
WriteIni Progini$,"Dateien","Bilder"=Programa$+"\\"
WriteIni Progini$,"Dateien","Tafelbilder"=Programa$+"\\Tafelpics"
ENDPROC
'----- Ordner en ini-Expediente adaptar -----
Proc AWriteini
Declarar Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Declarar LastFileName$
ABOainil
WriteIni Progini$,"Dateien","Familien"=texto$+@Mid$(Familien$,4,255)
WriteIni Progini$,"Dateien","Suchbegriffe"=texto$+@Mid$(Suchbegriffe$,4,255)
WriteIni Progini$,"Dateien","Ausgaben"=texto$+@Mid$(Ausgaben$,4,255)
WriteIni Progini$,"Dateien","Bilder"=texto$+@Mid$(Bilder$,4,255)
WriteIni Progini$,"Dateien","Tafelbilder"=texto$+@Mid$(Tafelbilder$,4,255)+"\\Tafelpics"
ENDPROC
'----- Ordner en ini-Expediente adaptar -----
Proc ADeleteini
fehlt todavía
ENDPROC
'----- Unterprogramme y Variables festlegen -----
Declarar FensterTitel$
FensterTitel$ = "Ahnenblatt portable Anwender-Erweiterung V1.0"
Declarar ProgrammVersion$, Programmini$
ProgrammVersion$ = "AhnenblattPortable.exe"
Programmini$ = "Ahnblatt.ini"
Declarar texto$
text$=Left$(GetDir$("@"),3)
Declarar Ende%
Ende%=0
'----- Programa Ende festlegen -----
Proc Beenden
Ende%=1
If Ende% = 1
End
EndIf
ENDPROC
'----- Mehrfachstart verhindern -----
Proc einmalStart
if @Gt(FindWindow(FensterTitel$),0)
messagebox("Dieses Programa darf sólo una vez comenzó voluntad !","F E H L E R M E L D U N G",16)
end
endif
ENDPROC
'----- Ordner y Programmdateien en Vorhanden ser überprüfen -----
'----- prüft si una Expediente oder Directorio existiert
Def PathFileExists(1) ! "shlwapi","PathFileExistsA"
Proc PFExists
parámetros OFile$
volver PathFileExists(addr(OFile$))
ENDPROC
'----- Programmdateien abfragen -----
Proc ABPrüfen
Declarar Aini%, Aexe%
Aini% = PFExists(Programmini$)," "
Aexe% = PFExists(ProgrammVersion$)," "
If Aini% + Aexe% = 0
@MessageBox("!!! AhnenblattPortable.exe y Ahnblatt.ini !!!\n\nDateien fehlen en el Programmverzeichnis.\nBitte el Originalzustand otra vez herstellen.\nProgramm se final.","F E H L E R M E L D U N G",64)
Beenden
elseif Aexe% = 0
@MessageBox("!!! AhnenblattPortable.exe !!!\n\nDatei fehlt en el Programmverzeichnis.\nBitte el Originalzustand otra vez herstellen.\nProgramm se final.","F E H L E R M E L D U N G",64)
Beenden
elseif Aini% = 0
@MessageBox("!!! Ahnblatt.ini !!!\n\nDatei fehlt en el Programmverzeichnis.\nBitte el Originalzustand otra vez herstellen.\nProgramm se final.","F E H L E R M E L D U N G",64)
Beenden
EndIf
ENDPROC
'----- Ahnenblatt abfragen -----
Proc ABabfrage
If @Gt(FindWindow("Ahnenblatt 2"),0)
messagebox("!!! Ahnenblatt es aktiv !!!\n\nBitte Ahnenblatt final y dieses Programa neu starten.\nProgramm se final."," F E H L E R M E L D U N G",16)
Beenden
endif
ENDPROC
Proc ABiniPrüfen
Declarar Familien%, Familiens$
Familiens$ = (@ReadIni$ (Progini$, "Dateien", "Familien"))
Familien% = PFExists(Familiens$)," "
If Familien% = 0
@MessageBox("!!! Achtung !!!\n\nEs son todavía no Verzeichnisse en el ini-Expediente hinterlegt.\n\nSiehe bajo Ayuda después de.","F E H L E R M E L D U N G",64)
EndIf
ENDPROC
'Dialogfenster Ahnenblatt portable Anwender-Erweiterung aufrufen
Proc Dialog_Fenster
Declarar DialogHandle&,Dialogtaste%,DialogX%,DialogY%,DialogB%,DialogH%,ButtonX%,ButtonY%,ButtonB%,ButtonA%
Declarar Button1&,Button2&,Button3&,Button4&,Button5&,Button6&
'Dialogfenster installieren
DialogB% = 900'---Dialogbreite
DialogH% = 400'---Dialoghöhe
DialogX% = (%WinLeft+((%WinRight-%WinLeft)/2))-(DialogB%/2)'---Dialogposition X
DialogY% = (%WinTop+((%WinBottom-%WinTop)/2))-(DialogH%/2)'----Dialogposition Y
'DialogHandle& = Crear("Dialog",%hWnd,FensterTitel$,DialogX%,DialogY%,DialogB%,DialogH%)
DialogHandle& = create("dialog", %hWnd, FensterTitel$, ((%maxx - DialogB%)/2),((%maxy - DialogH%)/2),DialogB%,DialogH%)
SetStyle DialogHandle&,GetStyle(DialogHandle&)-$80000'---SystemX de
'Bildschirmausgabe
Edición
'Buttons installieren
ButtonX% = (DialogB%/2)-2'----Mitte des Dialogfensters. Daraus se el Spaltenposition errechnet
ButtonY% = DialogH%-60'-------Position el Línea para el Buttons
ButtonB% = 140'----------------Buttonbreite
ButtonA% = 5'-----------------Buttonabstand
ButtonX% = ButtonX%-(ButtonA%/2)-(ButtonA%*2)-(ButtonB%*3)
Button1& = Crear("Button",DialogHandle&,"Werte: keine",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button2& = Crear("Button",DialogHandle&,"Werte: Standard",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button3& = Crear("Button",DialogHandle&,"Werte: ändern",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button4& = Crear("Button",DialogHandle&,"Ahnenblatt starten",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button5& = Crear("Button",DialogHandle&,"Programm beenden",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button6& = Crear("Button",DialogHandle&,"Hilfe",ButtonX%,ButtonY%,ButtonB%,25)
'Ratón y Tastatur abfragen
Dialogtaste% = 0
Sinestar encargado Dialogtaste%
Waitinput
If Clicked(Button1&)
Dialogtaste% = 1
ElseIf Clicked(Button2&)
Dialogtaste% = 2
ElseIf Clicked(Button3&)
Dialogtaste% = 3
ElseIf Clicked(Button4&)
Dialogtaste% = 4
ElseIf Clicked(Button5&)
Dialogtaste% = 5
ElseIf Clicked(Button6&)
Dialogtaste% = 6
EndIf
EndWhile
'Buttons auswerten
If Dialogtaste% = 1'Button 1 gedrückt Werte: no
ADeleteini
ElseIf Dialogtaste% = 2'Button 2 gedrückt Werte: Standard
OWriteini
ElseIf Dialogtaste% = 3'Button 3 gedrückt Werte: ändern
AWriteini
ElseIf Dialogtaste% = 4'Button 4 gedrückt Ahnenblatt starten
WinExec("AhnenblattPortable.exe",1)
Beenden
ElseIf Dialogtaste% = 5'Button 5 gedrückt Programa final
Beenden
ElseIf Dialogtaste% = 6'Button 6 gedrückt Ayuda
'Button 6 gedrückt Ayuda
EndIf
DestroyWindow(DialogHandle&)
ENDPROC
'----- Ventana Edición -----
Proc Edición
Declarar AFamilien$, ASuchbegriffe$, AAusgaben$, ABilder$, ATafelbilder$
Declarar ALastFileName$
AFamilien$ = (@ReadIni$ (Progini$, "Dateien", "Familien"))
ASuchbegriffe$ = (@ReadIni$ (Progini$, "Dateien", "Suchbegriffe"))
AAusgaben$ = (@ReadIni$ (Progini$, "Dateien", "Ausgaben"))
ABilder$ = (@ReadIni$ (Progini$, "Dateien", "Bilder"))
ATafelbilder$ = (@ReadIni$ (Progini$, "Dateien", "Tafelbilder"))
ALastFileName$ = (@ReadIni$ (Progini$, "Allgemein", "LastFileName"))
StartPaint DialogHandle&
UseFont "ARIAL", 24, 0, 1, 0, 1
DrawText 50, 10, "Ahnenblatt portable - Erweiterung"
UseFont "ARIAL", 16, 0, 1, 0, 0
DrawText 50, 40, "Nur el Laufwerkszuordnung el Archivos ändern."
UseFont "ARIAL", 14, 0, 1, 0, 1
DrawText 50, 90, "aktueller Laufwerksbuchstabe : "
UseFont "ARIAL", 24, 0, 1, 0, 0
DrawText 250,80, texto$
UseFont "ARIAL", 14, 0, 1, 0, 1
DrawText 50, 110, "Ordner"
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 130, "Familien : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 130, AFamilien$
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 150, "Suchbegriffe : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 150, ASuchbegriffe$
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 170, "Ausgaben : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 170, AAusgaben$
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 190, "Bilder : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 190, ABilder$
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 210, "Tafelbilder : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 210, ATafelbilder$
UseFont "ARIAL", 14, 0, 1, 0, 1
DrawText 50, 230, "Datei"
UseFont "ARIAL", 14, 0, 0, 0, 0
DrawText 50, 250, "letzte geöffnete Expediente : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 250, ALastFileName$
EndPaint
ENDPROC
'--------------------------
'----- Haupt-Programa -----
'--------------------------
einmalStart
ABPrüfen
ABabfrage
ABiniprüfen
Claro Ende%
Sinestar encargado Ende%
If Ende% = 0
Dialog_Fenster
EndIf
EndWhile
'----- Ende -----
End
no encima el código meckern, bin todavía largo no así fertig. Yo hoffe el hilft.
Saludo Toni |
| | | "Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 05.05.2012 ▲ |
| |
| | Jörg Sellmeyer | Tja, el es nett gemeint aber desafortunadamente bekomme Yo außer uno Fehlermeldung encima fehlende Archivos nix a sehen. Reduzier doch veces el Code el nötigste. Tal vez findet se el Fehler entonces sí ya. Lo de hecho puede auch ser, dass no alles de Su Inidateien ausgelesen se, si el Programa como Exe startet. Tal vez se en el falschen Pfad después de algo gesucht. So Es el Fehlersuche para alguien Außenstehenden jedenfalls no sin weiteres posible.
Editar: En me sieht beides como en el Bild de. Entweder una Vista-/W7-Problema oder lo se qué no correcto ausgelesen.
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.05.2012 ▲ |
| |
| | liveFamilie | ¡Hola Jörg, el Yo como Versuche a Produzieren es folgendes : Aus una Prog el no de me stammt, Versuche Yo Werte de el ini a lesen y luego el Laufwerksbuchstaben a ändern, con pequeño Sicherheiten, como dieses no sólo para mich es pero auch para Bekannte que no tan bueno con el PC auskennen. Un dieser Sicherheiten Es el Abfrage si el Progs disponible son. Se puede also entweder en el Code el ' davor conjunto oder zwei Archivos erzeugen con el entsprechenden Namen. Yo habe veces el Code con allem qué dazu gehört gezippt y versuche ahora veces el zip-Expediente hier hochzuladen. Denn sólo como el Code ahora es Yo esta Fehler, veränderungen führen dazu el él veces como es y veces otra vez weg es. Wenn Yo el .exe (el en el zip Expediente drin es anklicke erscheint el Fehler), hoffentlich en euch auch, si sí klickt simplemente veces más en el Button Ayuda. Dei Meldung el erscheint simplemente bestätigen. Wenn no muss irgendetwas a media beiden Systemen "krum" ser. Lo kann auch no con el auslesen el ini a tun haben, como el Texto el bajo Proc Edición es no erscheint. Hoffentlich kommst du ahora así klar y yo weis si una fehler en mi Prog es oder a mi sistema.
Saludo Toni |
| 266 kB | | Versión: | 1 | | Kurzbeschreibung: | Expediente entzippen | | Hochgeladen: | 06.05.2012 | | Ladeanzahl: | | | | Descargar |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 06.05.2012 ▲ |
| |
| | Andreas Miethe
| Stell el Haupt-Programa en, entonces debería lo ir Beachte qué zwischen NEUSTART y NEUEND es
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.05.2012 ▲ |
| |
| | liveFamilie | ¡Hola Andreas,
Vorschlag es bien aber ha una Nachteil, el Yo no möchte.
Nach Auswahl uno Buttons final/schließt se el Programa. En meiner Versión se/se el DialogFenster neuaufgebaut voluntad con el neuen Einträgen y sólo en Button Ahnenblatt starten oder Programa final se lo geschlossen voluntad. Daher el einsetzen des DialogFensters en el Bucle.
Toni |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 06.05.2012 ▲ |
| |
| | Andreas Miethe
| ¡Hola Toni,
todavía eins para Abfragen si el Programa ya se ejecuta. Es no optimal de Usted gelöst. Puedo lo mehrmals starten, solange Yo el Messagebox no wegklicke.
Hier veces una Tip como mejor va. Ab XProfan8
'##############################################
'# Autor : ampsoft (Andreas Miethe) #
'# Datum : 06.05.2012 #
'# Thema : sólo una Instanz #
'# XProfan-Versión : de XProfan 8 #
'##############################################
$H Windows.ph
$H Messages.ph
Proc IsProgRunning
'FileMapping-Objeto invertir
Declarar hMap&,FirstProg&
'Speicherbereich invertir
hMap& = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,4,"{D27FA9ED-55E4-4588-A10B-E4165BB37ED7}")
'Zeiger en Speicherbreich
MemPointer& = ~MapViewOfFile(hMap&,$000F001F,0,0,0)
'Ventana-Handle el ersten Instanz ermitteln
FirstProg& = Largo(MemPointer&,0)
'Ist el Ventana disponible, entonces
Caso negativo ~IsWindow(FirstProg&) = 0
'Wenn Ventana verkleinert es
If ~IsIconic(FirstProg&)
'Ventana vergrössern
SendMessage(FirstProg&,~WM_SYSCOMMAND,~SC_RESTORE,0)
EndIf
'Ventana en el Vordergrung
~SetForegroundWindow(FirstProg&)
'Speicherbereich liberación
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
'Programa final
End
EndIf
ENDPROC
Declarar MemPointer&,Ende&
'Überprüfung si Programa ya se ejecuta
IsProgRunning()
Windowstyle 539
CLS
'Handle des Haupt-Fensters en el Speicherbereich ablegen
Largo MemPointer&,0 = %hWnd
Ende& = 0
Sinestar encargado Ende&
WaitInput
If %Key = 2'Close_Button.
'Speicherbereich liberación
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
Ende& = 1
EndIf
EndWhile
end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.05.2012 ▲ |
| |
| | liveFamilie | ¡Hola Andreas, como el para el lo determinado es no así professionell son reicht esta kleine Brücke el Abfrage de. Aber Yo voluntad me deinen Vorschlag veces a Herzen nehmen y veces schauen si esta Abfrage si el Prog ya se ejecuta para mich nachvollziehbar y umsetzbar es.
Das obige Problema ha se irgendwie en más Programación de incluso gelöst. Keine Idea como pero es ahora i.O. Daher Veo el Thema como se hace a.
Toni |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 19.05.2012 ▲ |
| |
|
RespuestaTema opciones | 13.313 Views |
ThemeninformationenDieses Thema ha 3 subscriber: |