Fehler konnte behoben werden.
Man muss in der DB unter wcfx_group_option_value, die Berechtigungen, unter Punkt 9 wieder nachtragen, somit war es möglich, als Angehöriger der Admingruppe, wieder auf das ACP zu zugreifen und sich alle weggefallenen Berechtigungen neu zu vergeben.
Beiträge von M9_Chris
-
-
Ich grüße euch,
ich bin gerade dabei ein wbb3.1.8 auf die Beine zu stellen.
Dies ist ein Projekt bei dem ich ein altes phpBoard mit 2k Mitgliedern auf ein WBB3 umziehe.Heute habe ich alle für mich brauchbaren Plugins auf das Forum geschoben u.A. auch eines, bei dem man die Benutzergruppenrechte zusammenfügen kann.
Durch einen DB Import gab es nun zweimal die Gruppe Administratoren (WBB Original) und die ADMINISTRATORS (Import aus dem php Board), ich fügte nun beide Gruppen zusammen, dabei passierte es das ich die Admingruppe aus dem ACP ausgesperrt habe.
Welchen Eintrag muss ich wo in der DB eintragen, damit "Administratoren" wiede rin das ACP dürfen, besser wäre noch das für beide Admingruppen zu bewerkstelligen?!Vielen liben Dank
LG
Chris -
Na das sieht doch mal klasse aus, da kann man ja richtig kreatiev werden, besten Dank für den Tipp.
-
Ja klar, es soll halt nur mit einer GUI aus der UDF gearbeitet werden, jeh nachdem was das eigentliche Programm können soll, kann man sich dann eine passende GUI holen.
Ich finde den Gedanken, nach wie vor, sehr reizvoll und denke es ist eine wunderbare Lernaufgabe.Daher möchte ich an dieser Stelle fragen ob jemand Interesse und Lust hat sich als Ansprechpartner/Mentor zur Verfügung zu stellen und mich damit zu unterstützen?
LG
-
Daher ja die Frage, der Aufwand eine UDF für GUI's zu schreiben dürfte damit wohl größer sein als sie immer neu zu schreiben, es sei denn einer unsere Superproggis schaft es eine Superfactorie zu bauen die es einen einfacher macht eine GUI über eine UDF aufzurufen.
Aber für mich als Rookie dürfte das wohl eine Nummer zu groß ein.Aber im Allgemeinen habe ich das mit UDF's schon richtig verstanden oder?
-
Ich grüße euch.
Wenn ich das richtig verstanden habe sind UDF's = User definied Funktions, ergo eine Sammlung von Konstrukten von Dingen die man öffters mal braucht.
Richtig?Mit den obigen Gedanken kam mir die Idee für eine weitere Unit um zu lernen.
Macht es Sinn sich eine UDF zu bauen dessen Inhalt aus verschiedenen, anpassbaren GUI's besteht?Möchtegerncodebeispiel
[autoit]_GUI_Smal_SPS () ;==> beinhaltet eine kleine GUI mit drei Buttons, Start, Pause und Stop
[/autoit]
_GUI_Medium_Menu() ;==> beinhaltet eine etwas größere GUI mit Basisbuttons und z.B. InputboxenMacht es Sinn eine UDF für GUI's zu basteln oder meint ihr das es zu umständlich zu händeln wäre?
LG
Chris -
Naja was soll ich sagen?
Hört selbst:Spoiler anzeigen
Hmmm:Spoiler anzeigen
Vielen lieben herzlichen Dank für eure wunderbare Hilfe.
Ich konnte dadurch eine Menge lernen und mit dem Gelernten öffnen sich gleich ganz neue Türen, ich bin gespannt was mir noch so einfällt was ich in meiner Unit einbauen kann.Ach ja fast vergessen, es war der
[autoit]GUICtrlSetOnEvent()
[/autoit]und vor allem der letzte Post Oscar's der mich auf den richtigen Weg brachten.
Ihr seid echt klasse, ich freue mich auf Weiteres.
Ich werde das Thema morgen noch auf "Gelöst" setzen, wenn ich es jetzt täte wäre der Witz weg, man möge mir verzeihen
Also nochmals vielen herzlichen Dank
LG
Chris -
Anhand deines Beispieles, scheint der "Groschen" endlich gefallen zu sein, ich bin zwar noch nicht fertig mit dem Umschreiben, aber erste Tests sind vielversprechend.
Es dauert noch ein bisschen, bin heute etwas langsam, ich melde mich ob es nun endlich geklappt hat oder nicht. -
Ich danke auch dir recht herzlich
-
Ich hätte da eventuell eine Idee.
Wenn man dein Tool ähnlich wie ein geläufiges Mailprogramm händelt sollte es funktionieren.
Meine Lösung jetzt wäre, das dein Tool beim PC-Start gestartet wird, prüft ob er was zu tun hat und wenn nicht er sich beendet.
Sollte so keine umständlich große Nummer sein.
Ähnliches hatte ich mal in meiner Probezeit umzusetzen, Massenmails für Firmenkunden etc. aber wir arbeiteten mit einen kostenpflichtigen externen Server zusammen der die Zeitspeziefische steuerung übernahm.
Meine Aufgabe war es, etwas zu entwickeln und es auf unseren eigenen Firmenserver luffähig zu machen um kosten zu sparen.Hoffe ich konnte helfen.
LG
Chris -
Ich wünsche mir eine „Starbucks-Company“ Filiale in meinem Büro *__*
Du bekommst deinen Starbucksfiliale im Büro doch der Kaffe ist koffeinfrei
Ich wünsche mir mehr Programmierskill
-
Ohne Mist, ich glaube das erste Thema, dass ich verfasst habe, hieß: "Wie der While-Schleife entkommen" oder so.
Ich hoffe, diese Hilfe-Anfrage war nicht das Tutorial, in dem du das gesehen hastÖhm, nein.
Wenn nicht mindestens 90% der Leute ein Tutorial für "gut" befunden haben, wird es eiskalt ignoriert, Halbwissen ist mir zuwieder
Es war ein TuT welches ich auf Y-Tube gefunden hatte und es nach meinen Beitritt hier wiederfand.Spoiler anzeigen
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Da musst du was falsch verstanden haben, die Buttons liegen in keiner Funktion oder Schleife, sie leigen genau da wo sie, laut Tuturials (hier aus dem Forum) liegen und deklariert werden sollen.
[autoit]AdlibRegister
[/autoit]..scheint Potential zu haben wenn ich die Unit umbaue.
-
Ich grüße euch,
[autoit]
ich habe es gestern mitGUISetAccelerators
[/autoit]versucht und im ersten Augenblick dachte ich, ich hätte es nun hinbekommen.
Leider lag ich falsch, aber Versuch macht klug und ich konnte feststellen das die GUI "tot" wird sobald ich einen Button oder einen Hotkey drücke.
Ich habe auch eine Vermutung was passiert bzw. warum es nicht geht.Ich habe oben meine GUI mit Labels Buttons etc. und alle Funktionen (egal wie ich sie in die Buttons zuweise) funktionieren wunderbar bis auf die "_START()", in der Funktion "_START()" befindet sich eine fleißige Whileschleife die nach gegebenheiten sucht und dann entsprechend agiert.
Die Schleife wird also niemals verlassen, soll sie auch nicht und genau da scheint, mMn. das Problem zu liegen.
Der Fehler liegt also im Aufbau des Scriptes, ich versuche heute den Aufbau zu ändern, sollte ich scheitern, würde ich euch das Ding hier gerne mal Posten, aber erstmal möchte ich versuchen das alleine zu schaffen.
Wenn ihr aber mit den schmalen Infos von oben etwas anfangen könnt und Ideen habt, bin ich natürlich offen für etwaige Denkanstöße. -
-
Ich grüße euch.
"autoiter" hat durchaus REcht, dies ist nur ein Codeschnipsel und der Kern meines Problems.
Ich hatte alles, bis spät in die Nacht noch getestet und rumgeschnipselt, zum Teil funktionierte der Funktionsaufruf, aber halt nur ein mal.
Neben "_EXIT()" finden in meiner Unit noch andere Funktionen ihren Platz wie z.B. "_setSoundVolume()" und "_showStatus()" etc.
JEde Funktion hat einen Hotkey und jede soll auch über eine GUI ansprechbar sein bzw. steuerbar sein.
Es traten, einige für mich sonderbare, Ereignisse auf.
Der Funktionsaufruf im Case hat fuunktioniert, aber nur ein mal, danach waren alle Buttons und Optionen in der GUI wie tot.
Da dieses Phänomen bei jedem Button gleich ist, kann es ja nur ein Logikfehler meinerseits sein und eine andere Herangehensweise muss her, ich weis halt nur nicht Welche.
Wenn mich meine Logik nicht verlassen hat, scheint es als wäre der "OnEventMode" genau das was ich suche, ich werde es gleich mal versuchen umzusetzen.Im Normalfall würde ich Anfängern erst später dazu raten sich den sogenannten "OnEventMode" für GUIs anzusehen, allerdings ist er für exakt den in deinem Script gezeigten Anwendungsfall konzipiert, weshalb ich ihn an dieser Stelle nur mal erwähnt haben möchte. Der OnEventMode ist wie der Name schon vermuten lässt ein Modus, in den du dein GUI versetzen kannst. Hast du dies getan brauchst du dich nicht mehr mit GUIGetMsg() und Co. herumzuschlagen. Stattdessen kannst du einfach festlegen "WENN zu irgend einem Zeitpunkt dieser Button gedrückt wird, DANN ruf doch bitte mal diese Funktion X hier auf" und alles andere erledigt Autoit für dich. Aber genug geredet mein kleiner Beispielcode sollte selbsterklärend sein...
Spoiler anzeigen
[autoit]#include ; Durch dieses Include können wir weiter unten die Variable $GUI_EVENT_CLOSE verwenden. Dies ist zwar nicht zwingend notwendig (du könntest auch einfach -3 schreiben, was dem Wert der Variable entspricht) allerdings ist es doch viel schöner und leserlicher wenn sofort klar ist um Welches Event es an einer bestimmten Stelle geht. Oder?
[/autoit] [autoit][/autoit] [autoit]Opt("GUIOnEventMode",1) ; GUIOnEventMode einschalten (1) da er standardmäßig deaktiviert ist
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Meine GUI", 400, 300, 1000,350) ; GUI erstellen
[/autoit] [autoit][/autoit] [autoit]
$hButtonExit = GUICtrlCreateButton("Close", 250, 250, 60,20) ; Button erstellenGUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") ; Wir legen fest was passieren soll, wenn in unserem GUI das Event $GUI_EVENT_CLOSED auftritt. Im zweiten Parameter geben wir den Namen einer Funktion an die im Falle eines Events - hier ein Klick auf das rote X des GUI - automatisch aufgerufen wird.
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($hButtonExit,"_Exit") ; Mit dem Button verfahren wir genau gleich. "WENN Button gedrückt DANN '_Exit' aufrufen"GUISetState(@SW_SHOW) ; GUI sichtbar machen
[/autoit] [autoit][/autoit] [autoit]while True ; Endlosschleife
[/autoit] [autoit][/autoit] [autoit]
Sleep(250) ; Da wir den OnEventMode benutzen müssen wir uns hier in der Hauptschleife nicht mehr um das Aufrufen der Funktionen kümmern. Das Sleep ist nur zur Entlastung des Prozessors da. (Ohne dieses Sleep würde die Schleife tausende male in der Sekunde durchlaufen)
WEndFunc _Exit()
[/autoit]
FileDelete (@TempDir & "\bing.wav")
MsgBox("","Info", "Programm beendet und geschlossen!")
Exit
EndFuncBis hierhin ersteinmal besten Dank, ich werde berichten ob es mein Problem lösen konnte.
LG
ChrisEdit:
Fast vergessen.
Warum ich beides mixen möchte ist der, das ich das einfach so will.
Ein Videoplayer z.B. kann ja auch über die GUI Buttons und Hotkeys gesteuert werden, warum sollte das meine Unit nicht können -
Ich danke euch, heute ists dann doch passiert das ich fragen musste, obwohl ich hier schon viel im Stillen erlesen konnte.
Ohne einige eurer Tutorials wäre ich noch ein Höhlenmensch, das Feuer habe ich zwar noch nicht erfunden, aber zumindest hau ich mir nicht mehr den Feuerstein auf den Fuß -
So nun ist es soweit, ich brauch mal eure Hilfe.
Ich versuche mich gerade mit GUI's und möchte das er eine Funktion ausführt wenn ich einen Button drücke.Spoiler anzeigen
[autoit]HotKeySet("{NUMPAD3}", "_EXIT")
[/autoit] [autoit][/autoit] [autoit]GUICreate("Meine GUI", 400, 300, 1000,350)
[/autoit] [autoit][/autoit] [autoit]
$scriptExit = GUICtrlCreateButton("Close", 250, 250, 60,20)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
while 1
$msg = GUIGetMsg() ; Prüft ob eine Aktion in der GUI erfolgte
Select
Case $msg = -3
Send("{NUMPAD3}")
Case $msg = $scriptExit
Send("{NUMPAD3}")
EndSelect
WEndFunc _EXIT()
[/autoit]
FileDelete (@TempDir & "\bing.wav")
Sleep(200)
MsgBox("","Info", "Programm beendet und geschlossen!")
Exit 0
EndFuncWenn ich nun Numpad3 drücke wird das File gelöscht und das Programm beendet, selbiges passiert wenn ich das "X" drücke, aber warum nicht wenn ich den "Close"-Button anklicke?
Auch hatte ich versucht "_Exit()" im Case ausführen zu lassen, aber ohne erfolg.Was mache ich falsch und wie kann ich das richtig machen?
Liebe Grüße und besten Dank
Chris -
Seid gegrüßt,
ich bin der Chris und zarte 30, ich durfte vor einigen Jahren mal in die Programmierung schnuppern und habe es sofort gemocht.
Seither suche ich mir immer so "Kleinprojekte" und Programmiere (sofern man das bei meinem Skill so nennen darf) um den Kopf frei zu bekommen.
Da ich in meinen Umfeld niemanden habe der auch nur im Entferntesten damit zu tun hat, muss ich halt euch mit meinen Fragen konfrontieren
Ich hoffe das ich bald auch etwas von dem zurückgeben kann, was ich hier noch lernen werde.Beste Grüße
Chris