Forum | | | | - page 1 - |
| liveFamilie | Salut,
je verzweifle depuis un paire Tagen à folgendem Problem. Habe avec dem DialogboxDesigner une Dialog kreiert. dans diesem la fenêtre habe je avec startpaint, Usefont et Drawtext - Text dans dem Dialogfenster erzeugt. chez Effectuer avec dem Interpretermodus im Editor wird alles joli angezeigt. Erzeuge je une .exe volonté qui oberen 3 jusqu'à 5 Zeilen geschluckt et pas angezeigt.
Weis quelqu'un une RAT ?
Salut Toni |
| | | "Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 05.05.2012 ▲ |
| |
| | « cette Beitrag wurde comme Solution gekennzeichnet. » | | Andreas Miethe
| allô Toni,
encore une zum Abfragen si cela Programme déjà fonctionne. c'est pas optimal de Dir gelöst. je peux es plusieurs fois starten, solange je qui Messagebox pas wegklicke.
ici la fois un Tip comme besser allez. Ab XProfan8
'##############################################
'# Autor : ampsoft (Andreas Miethe) #
'# date : 06.05.2012 #
'# Thema : seulement une Instanz #
'# XProfan-Version : ab XProfan 8 #
'##############################################
$H Windows.ph
$H Messages.ph
Proc IsProgRunning
'FileMapping-objet anlegen
Déclarer hMap&,FirstProg&
'Speicherbereich anlegen
hMap& = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,4,"{D27FA9ED-55E4-4588-A10B-E4165BB37ED7}")
'aiguille sur Speicherbreich
MemPointer& = ~MapViewOfFile(hMap&,$000F001F,0,0,0)
'la fenêtre-Handle qui ersten Instanz ermitteln
FirstProg& = Long(MemPointer&,0)
'Ist cela la fenêtre vorhanden, ensuite
Si non ~IsWindow(FirstProg&) = 0
'si la fenêtre verkleinert ist
Si ~IsIconic(FirstProg&)
'la fenêtre vergrössern
SendMessage(FirstProg&,~WM_SYSCOMMAND,~SC_RESTORE,0)
EndIf
'la fenêtre dans den Vordergrung
~SetForegroundWindow(FirstProg&)
'Speicherbereich freigeben
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
'Programme finissons
Fin
EndIf
ENDPROC
Déclarer MemPointer&,Ende&
'Überprüfung si Programme déjà fonctionne
IsProgRunning()
Windowstyle 539
CLS
'Handle des tête-Fensters im Speicherbereich enlever
Long MemPointer&,0 = %hWnd
Ende& = 0
WhileNot Ende&
WaitInput
Si %Key = 2'Close_Button.
'Speicherbereich freigeben
~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 toujours qui Profanversion avec angeben et une lauffähigen Code mitposten, sonst peut wir seulement deviner, quoi cela Problem ist. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.05.2012 ▲ |
| |
| | liveFamilie | allô Jörg,
alors je travaille avec Profan 9.1 sur Vue et Win 7, sur beiden cela gleiche Problem.
je versuche la fois un Bild avec hochzuladen, avec cela on den Unterschied sieht.
'----- Beginn Ahnenblatt portable Anwender-Erweiterung -----
'-----
'----- programmiert dans XProfan V9.1 -----
'----- Freeware, Vollversion avec Compiler -----
'-----
'----- Programme Variabeln festlegen -----
'----- Programmverzeichnis festlegen (portable) -----
Déclarer Programme$
Programm$ = GETDIR $("@")
'----- Programme ini-Pfad festlegen -----
Déclarer Progini$
Progini$ = Programme$+"\\Ahnblatt.ini"
'----- Programme ini auslesen et sur Variablen festlegen -----
'----- Ordnerpfade festlegen -----
Proc ABOainil
'----- AB = Ahnenblatt, O = Dossier, a = aus, ini = Ahnblatt.ini, l = lesen
Déclarer Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Déclarer 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
'----- Programme ini auslesen et sur Variablen festlegen : Ende -----
'----- Dossier dans ini-Dossier écrivons -----
Proc OWriteini
Déclarer Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Déclarer LastFileName$
ABOainil
WriteIni Progini$,"Dateien","Familien"=Programme$+"\\"
WriteIni Progini$,"Dateien","Suchbegriffe"=Programme$+"\\"
WriteIni Progini$,"Dateien","Ausgaben"=Programme$+"\\"
WriteIni Progini$,"Dateien","Bilder"=Programme$+"\\"
WriteIni Progini$,"Dateien","Tafelbilder"=Programme$+"\\Tafelpics"
ENDPROC
'----- Dossier dans ini-Dossier anpassen -----
Proc AWriteini
Déclarer Familien$, Suchbegriffe$, Ausgaben$, Bilder$, Tafelbilder$
Déclarer LastFileName$
ABOainil
WriteIni Progini$,"Dateien","Familien"=text$+@Mid $(Familien$,4,255)
WriteIni Progini$,"Dateien","Suchbegriffe"=text$+@Mid $(Suchbegriffe$,4,255)
WriteIni Progini$,"Dateien","Ausgaben"=text$+@Mid $(Ausgaben$,4,255)
WriteIni Progini$,"Dateien","Bilder"=text$+@Mid $(Bilder$,4,255)
WriteIni Progini$,"Dateien","Tafelbilder"=text$+@Mid $(Tafelbilder$,4,255)+"\\Tafelpics"
ENDPROC
'----- Dossier dans ini-Dossier anpassen -----
Proc ADeleteini
fehlt encore
ENDPROC
'----- Unterprogramme et Variablen festlegen -----
Déclarer FensterTitel$
FensterTitel$ = "Ahnenblatt portable Anwender-Erweiterung V1.0"
Déclarer ProgrammVersion$, Programmini$
ProgrammVersion$ = "AhnenblattPortable.exe"
Programmini$ = "Ahnblatt.ini"
Déclarer text$
text$=Left $(GETDIR $("@"),3)
Déclarer Ende%
Ende%=0
'----- Programme Ende festlegen -----
Proc finissons
Ende%=1
Si Ende% = 1
Fin
EndIf
ENDPROC
'----- Mehrfachstart verhindern -----
Proc einmalStart
si @Gt(FindWindow(FensterTitel$),0)
messagebox("Dieses Programme darf seulement einmal gestartet volonté !","F E H L E R M E L D U N G",16)
end
endif
ENDPROC
'----- Dossier et Programmdateien sur Vorhanden son überprüfen -----
'----- prüft si une Dossier ou bien Verzeichnis existiert
Def PathFileExists(1) ! "Shlwapi","PathFileExistsA"
Proc PFExists
parameters OFile$
return PathFileExists(addr(OFile$))
ENDPROC
'----- Programmdateien abfragen -----
Proc ABPrüfen
Déclarer Aini%, Aexe%
Aini% = PFExists(Programmini$)," "
Aexe% = PFExists(ProgrammVersion$)," "
Si Aini% + Aexe% = 0
@MessageBox("!!! AhnenblattPortable.exe et Ahnblatt.ini !!!\n\nDateien manquer im Programmverzeichnis.\nBitte den Originalzustand wieder herstellen.\nProgramm wird finissez.","F E H L E R M E L D U N G",64)
finissons
elseif Aexe% = 0
@MessageBox("!!! AhnenblattPortable.exe !!!\n\nDatei fehlt im Programmverzeichnis.\nBitte den Originalzustand wieder herstellen.\nProgramm wird finissez.","F E H L E R M E L D U N G",64)
finissons
elseif Aini% = 0
@MessageBox("!!! Ahnblatt.ini !!!\n\nDatei fehlt im Programmverzeichnis.\nBitte den Originalzustand wieder herstellen.\nProgramm wird finissez.","F E H L E R M E L D U N G",64)
finissons
EndIf
ENDPROC
'----- Ahnenblatt abfragen -----
Proc ABabfrage
Si @Gt(FindWindow("Ahnenblatt 2"),0)
messagebox("!!! Ahnenblatt ist aktiv !!!\n\nBitte Ahnenblatt finissons et cet Programme récente starten.\nProgramm wird finissez."," F E H L E R M E L D U N G",16)
finissons
endif
ENDPROC
Proc ABiniPrüfen
Déclarer Familien%, Familiens$
Familiens$ = (@ReadIni$ (Progini$, "Dateien", "Familien"))
Familien% = PFExists(Familiens$)," "
Si Familien% = 0
@MessageBox("!!! attention !!!\n\nEs sommes encore aucun Verzeichnisse dans qui ini-Dossier hinterlegt.\n\nSiehe sous Aider pour.","F E H L E R M E L D U N G",64)
EndIf
ENDPROC
'Dialogfenster Ahnenblatt portable Anwender-Erweiterung appel
Proc Dialog_Fenster
Déclarer DialogHandle&,Dialogtaste%,DialogX%,DialogY%,DialogB%,DialogH%,ButtonX%,ButtonY%,ButtonB%,ButtonA%
Déclarer Button1&,Button2&,Button3&,Button4&,Button5&,Button6&
'Dialogfenster installer
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& = Créer("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 aus
'Bildschirmausgabe
Ausgabe
'Buttons installer
ButtonX% = (DialogB%/2)-2'----Mitte des Dialogfensters. Daraus wird qui Spaltenposition errechnet
ButtonY% = DialogH%-60'-------Position qui la ligne pour qui Buttons
ButtonB% = 140'----------------Buttonbreite
ButtonA% = 5'-----------------Buttonabstand
ButtonX% = ButtonX%-(ButtonA%/2)-(ButtonA%*2)-(ButtonB%*3)
Button1& = Créer("Button",DialogHandle&,"Werte: keine",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button2& = Créer("Button",DialogHandle&,"Werte: Standard",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button3& = Créer("Button",DialogHandle&,"Werte: ändern",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button4& = Créer("Button",DialogHandle&,"Ahnenblatt starten",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button5& = Créer("Button",DialogHandle&,"Programm beenden",ButtonX%,ButtonY%,ButtonB%,25)
ButtonX% = ButtonX%+ButtonB%+ButtonA%
Button6& = Créer("Button",DialogHandle&,"Hilfe",ButtonX%,ButtonY%,ButtonB%,25)
'souris et clavier abfragen
Dialogtaste% = 0
WhileNot Dialogtaste%
Waitinput
Si 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
Si Dialogtaste% = 1'Button 1 gedrückt Werte: aucun
ADeleteini
ElseIf Dialogtaste% = 2'Button 2 gedrückt Werte: Standard
OWriteini
ElseIf Dialogtaste% = 3'Button 3 gedrückt Werte: changement
AWriteini
ElseIf Dialogtaste% = 4'Button 4 gedrückt Ahnenblatt starten
WinExec("AhnenblattPortable.exe",1)
finissons
ElseIf Dialogtaste% = 5'Button 5 gedrückt Programme finissons
finissons
ElseIf Dialogtaste% = 6'Button 6 gedrückt Aider
'Button 6 gedrückt Aider
EndIf
DestroyWindow(DialogHandle&)
ENDPROC
'----- la fenêtre Ausgabe -----
Proc Ausgabe
Déclarer AFamilien$, ASuchbegriffe$, AAusgaben$, ABilder$, ATafelbilder$
Déclarer 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"))
Début de peinture 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 qui Laufwerkszuordnung qui Fichiers changement."
UseFont "ARIAL", 14, 0, 1, 0, 1
DrawText 50, 90, "aktueller Laufwerksbuchstabe : "
UseFont "ARIAL", 24, 0, 1, 0, 0
DrawText 250,80, text$
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 Dossier : "
UseFont "ARIAL", 14, 0, 1, 0, 0
DrawText 200, 250, ALastFileName$
EndPaint
ENDPROC
'--------------------------
'----- tête-Programme -----
'--------------------------
einmalStart
ABPrüfen
ABabfrage
ABiniprüfen
Claire Ende%
WhileNot Ende%
Si Ende% = 0
Dialog_Fenster
EndIf
Endwhile
'----- Ende -----
Fin
pas sur den Code rouspéter, suis encore longtemps pas avec cela fertig. je hoffe cela hilft.
Salut Toni |
| | | "Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 05.05.2012 ▲ |
| |
| | Jörg Sellmeyer | Tja, c'est gentil gemeint mais malheureusement bekomme je sauf einer Fehlermeldung sur fehlende Fichiers nix trop voyons. Reduzier doch la fois den Code sur cela nötigste. peut-être findet sich qui faute ensuite oui déjà. Es peux oui aussi son, dass pas alles aus Deinen Inidateien ausgelesen wird, si cela Programme comme Exe startet. peut-être wird im falschen Pfad pour irgendwas gesucht. So ist qui Fehlersuche pour quelqu'un Außenstehenden jedenfalls pas sans weiteres possible.
Edit: chez mir sieht beides comment im Bild aus. Entweder un Vue-/W7-Problem ou bien es wird quoi pas richtig ausgelesen.
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.05.2012 ▲ |
| |
| | liveFamilie | allô Jörg, cela quoi je là Versuche trop Produzieren ist folgendes : Aus einem Prog cela pas de mir stammt, Versuche je Werte aus qui ini trop lesen et ensuite den Laufwerksbuchstaben trop changement, avec kleinen Sicherheiten, là cet pas seulement pour mich ist mais aussi pour Bekannte qui sich pas si bien avec dem PC auskennen. une cette Sicherheiten ist qui Abfrage si qui Progs vorhanden sommes. il peut alors entweder im Code cela ' devant mettons ou bien deux Fichiers erzeugen avec den entsprechenden Namen. j'ai la fois den Code avec allem quoi en supplément est gezippt et versuche maintenant fois le zip-Dossier ici hochzuladen. car seulement so comment qui Code maintenant ist habe je cette faute, veränderungen mener en supplément cela il la fois voilà et la fois wieder weg ist. si je qui .exe (qui dans qui zip Dossier drin ist anklicke erscheint qui faute), hoffentlich chez euch aussi, si oui klickt simple la fois plus sur den Button Aider. Dei annonce qui erscheint simple bestätigen. si pas muss irgendetwas à meinen beiden Systemen "krum" son. Es peux aussi pas avec dem auslesen qui ini trop 1faire avons, là qui Text qui sous Proc Ausgabe steht pas erscheint. Hoffentlich tu viens maintenant avec cela bien sûr et je weis si es un faute dans mon Prog ist ou bien à meinem System.
Salut Toni |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 06.05.2012 ▲ |
| |
| | Andreas Miethe
| Stell cela tête-Programme um, ensuite sollte es aller Beachte quoi entre NEUSTART et NEUEND steht
|
| | | 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 | allô Andreas,
Vorschlag ist bien mais hat une le tort, den je pas voudrais.
Pour sélection eines Buttons finissez/schließt sich cela Programme. chez meiner Version wird/soll cela DialogFenster neuaufgebaut volonté avec den neuen Entrées et seulement chez Button Ahnenblatt starten ou bien Programme finissons soll es geschlossen volonté. Daher cela einsetzen des DialogFensters dans qui Boucle.
Toni |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 06.05.2012 ▲ |
| |
| | Andreas Miethe
| allô Toni,
encore une zum Abfragen si cela Programme déjà fonctionne. c'est pas optimal de Dir gelöst. je peux es plusieurs fois starten, solange je qui Messagebox pas wegklicke.
ici la fois un Tip comme besser allez. Ab XProfan8
'##############################################
'# Autor : ampsoft (Andreas Miethe) #
'# date : 06.05.2012 #
'# Thema : seulement une Instanz #
'# XProfan-Version : ab XProfan 8 #
'##############################################
$H Windows.ph
$H Messages.ph
Proc IsProgRunning
'FileMapping-objet anlegen
Déclarer hMap&,FirstProg&
'Speicherbereich anlegen
hMap& = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,4,"{D27FA9ED-55E4-4588-A10B-E4165BB37ED7}")
'aiguille sur Speicherbreich
MemPointer& = ~MapViewOfFile(hMap&,$000F001F,0,0,0)
'la fenêtre-Handle qui ersten Instanz ermitteln
FirstProg& = Long(MemPointer&,0)
'Ist cela la fenêtre vorhanden, ensuite
Si non ~IsWindow(FirstProg&) = 0
'si la fenêtre verkleinert ist
Si ~IsIconic(FirstProg&)
'la fenêtre vergrössern
SendMessage(FirstProg&,~WM_SYSCOMMAND,~SC_RESTORE,0)
EndIf
'la fenêtre dans den Vordergrung
~SetForegroundWindow(FirstProg&)
'Speicherbereich freigeben
~UnmapViewOfFile(MemPointer&)
~CloseHandle(MemPointer&)
'Programme finissons
Fin
EndIf
ENDPROC
Déclarer MemPointer&,Ende&
'Überprüfung si Programme déjà fonctionne
IsProgRunning()
Windowstyle 539
CLS
'Handle des tête-Fensters im Speicherbereich enlever
Long MemPointer&,0 = %hWnd
Ende& = 0
WhileNot Ende&
WaitInput
Si %Key = 2'Close_Button.
'Speicherbereich freigeben
~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 | allô Andreas, là qui pour qui es bestimmt ist pas so professionell sommes reicht cet kleine Brücke qui Abfrage aus. mais je werde mir deinen Vorschlag la fois trop Herzen prendre et la fois regarder si cet Abfrage si cela Prog déjà fonctionne pour mich nachvollziehbar et umsetzbar ist.
cela obige Problem hat sich irgendwie chez qui weiteren Programmation de selbst gelöst. je n'en sais rien comment mais c'est maintenant i.O. Daher vois je cela Thema comme erledigt à.
Toni |
| | | XProfan 9"Profan das Besondere" was auch in einem gewissen Alter noch Spass macht und Fit hält. | 19.05.2012 ▲ |
| |
|
répondreOptions du sujet | 13.517 Views |
Themeninformationencet Thema hat 3 participant: |