die funktion zu finden die die Informationen einer Datei bearbeitet.
Von welchen Informationen sprichst du?
Im geposteten Code werden überall dort Werte gesetzt, wo DllStructSetData() verwendet wird ( sagt schon der Name
).
die funktion zu finden die die Informationen einer Datei bearbeitet.
Von welchen Informationen sprichst du?
Im geposteten Code werden überall dort Werte gesetzt, wo DllStructSetData() verwendet wird ( sagt schon der Name
).
Du kannst fertige Programme verwenden (z.B. Dateihash) oder auch selbst ein Programm zum Berechnen erstellen. Bsp. findest du per Google in reicher Auswahl. ![]()
Der Preis ist nicht so das Problem, und getrennt ist besser. Ich habe dort 4 PC und werde dann in jedem PC eine Karte mit VideoOut einbauen - brauche aber nur einen Grabber
Denn es wird im Bedarfsfall nur ein PC angeschaut werden. Ist eine Vorsichtsmaßnahme um ohne echtes Remote den User im abgeschotteten Netz "fernzusteuern" und zu supporten. Kann einiges an unnützer Fahrerei ersparen.
Genau für solche Zwecke ist es gedacht. Wenn man nicht mit FileCompare die Dateien vergleichen kann/will, erstellt man die Hashsumme vom Original und prüft diese gegen die Hashsumme der Kopie.
Der "weiterleitende" Rechner wird ein Notebook sein, also Entfernung spielt keine Rolle.
Es gibt auch VGA Grabber die dann die Daten an USB oder Ethernet zu Verfügung stellen. Das ist aber eine nicht gerade billige Lösung ca. 500 € aufwärts .
Na dann baue ich lieber eine GraKa mit VideoOut ein + Grabber. Das kostet ca. 30 € für die Karte und 20 € für den Grabber. Deutlich günstiger ![]()
Nein, ein Hashcode dient ausschließlich dazu, die Daten zu verifizieren. Also sicher zu gehen, dass die vorliegende Datei mit dem Original übereinstimmt.
Edit: Irgendwie schreibe ich heute zu langsam... ![]()
Du wirst dich wohl damit abfinden müssen, dass es nicht geht. ![]()
Hashcode umwandeln, und da wieder zurück
Hashcode ist keine Verschlüsselungs/Entschlüsselungsmethode. Der Code wird aus Dokumenten etc. nach einem festen Algorithmus erstellt und ist kein exaktes (verschlüsseltes) Abbild des Inhalts.
Du meinst sicher _StringEncrypt.
Edit: Da haben aber viele fast gleichzeitig geschrieben ![]()
Also erst mal Danke für die Tipps.
Aber Insight Board ist ja auch eine Remote Steuerung. Und es darf keine Steuerung möglich sein. Lediglich eine "Betrachtung" des Monitors darf möglich sein.
Ob man das Videosignal mit einem Grabber abfangen kann...? Dann brauchte man wohl eine Video-Out-Karte im PC, denn der Grabber benötigt ja ein FBAS-Signal. Mit VGA kann der nix anfangen.
Das geht einfach mit WinMove. Du hast ja keine echte Dynamik, sondern möchtest auf eine feste Größe verändern.
Bei Dynamik (aufziehen, zusammenschieben) besteht das Problem, dass die Anordnung + Größe der Controls angepaßt werden muß. Das ist ziemlich tricky.
Hi,
folgende Konstellation:
- Intranet mit mehreren PC
- keinerlei Verbindung an die Außenwelt (definitiv untersagt!)
Ich möchte nun gern die Desktopansicht von einem dieser PC "anzapfen" (unter der Berücksichtigung, dass dass Netzwerk nicht dafür genutzt werden darf - also eine optische Methode muß her). Dieses "Bild" möchte ich dann einem PC mit Internetzugang einspeisen, sodass z.B. per Teamviewer dieses aus der Ferne angeschaut werden kann.
- als Idee kam mir schon mal Webcam :wacko: grauselige Qualität
- vielleicht gibt es ja irgendeine Möglichkeit, das Videosignal "weiterzuleiten"
Vielleicht habt ihr ja technische Erfahrung oder Ideen?
Lies einfach alle Unterschlüssel von ....\Uninstall\ in ein Array. Dann das Array durchgehen mit: If StringInStr($array[$i], 'AutoItv') Then
Du kannst die Unterschlüssel z.B. mit _GetRegSubKeys($HKEY) auslesen: Registry-Funktionen per Objekt
until $i = $rounds
[/autoit]so nicht ==> aber so:
[autoit]until $i = GUICtrlRead($rounds)
[/autoit]He Danke, mit dem Dummy war 'ne gute Idee.
TVN_SELCHANGED hatte ich schon getestet, aber mit demselben Offset-Ergebnis.
Stimmt, darum hab ich jetzt ein Workaround gemacht unter Nutzung von $GUI_EVENT_PRIMARYUP.
Ich wäre aber trotzdem interessiert, eine Möglichkeit zu finden den Items direkt eine Funktion zuzuweisen.
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
Opt("MustDeclareVars", 1)
Opt("GuiOnEventMode", 1)
Global $gui, $hImage, $hTV, $aID_Sub[5], $ID_Table
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate('Test TreeView')
GUISetOnEvent($GUI_EVENT_CLOSE, '_end')
GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_PrimaryUp')
$hTV = GUICtrlCreateTreeView(10,10,300,350,BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, _
$TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage, "shell32.dll", 98)
_GUIImageList_AddIcon($hImage, "shell32.dll", 96)
_GUIImageList_AddIcon($hImage, "shell32.dll", 36)
_GUICtrlTreeView_SetNormalImageList($hTV, $hImage)
_GUICtrlTreeView_BeginUpdate($hTV)
$ID_Table = _GUICtrlTreeView_Add($hTV, 0, 'Table', 0, 0)
For $i = 1 To 5
$aID_Sub[$i-1] = _GUICtrlTreeView_AddChild($hTV, $ID_Table, 'Sub' & $i, 1, 1)
For $j = 1 To 3
_GUICtrlTreeView_AddChild($hTV, $aID_Sub[$i-1], 'Sub_Sub' & $j, 2, 2)
Next
Next
_GUICtrlTreeView_EndUpdate($hTV)
_GUICtrlTreeView_Expand($hTV, $ID_Table)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func _end()
Exit
EndFunc
Func _PrimaryUp()
Local $hTVItem = _GUICtrlTreeView_GetSelection($hTV)
If _GUICtrlTreeView_GetParentHandle($hTV, $hTVItem) <> $ID_Table Then Return
ConsoleWrite(_GUICtrlTreeView_GetText($hTV,$hTVItem) & @CRLF)
EndFunc
warum machen alle eig GuiSetState() und net GuiSetState(@SW_SHOW)?
Zitat von AutoIt Hilfe@SW_SHOW = Shows a previously hidden window (default)
==> deshalb ![]()
Dann fang doch die ID's in einem Array auf.
Hi,
hier mal ein Problem von mir. Ich erstelle ein TreeView und füge Einträge mit den UDF-Funktionen _GUICtrlTreeView_Add() und _GUICtrlTreeView_AddChild() hinzu. Da ich Icons zuordne, muß ich zwingend auf die UDF zugreifen.
Ich arbeite im OnEventMode und möchte bei Klick auf ein Item den Text des Items ausgeben. Bei Verwendung von GUICtrlCreateTreeViewItem() funktioniert das tadellos. Aber mit den UDF wird nicht die ID sondern das Handle zurückgegeben. Vermutlich läßt sich deshalb keine Funktion zuweisen.
Mein zweiter Versuch dann mit WM_NOTIFY. Das funktioniert zwar - aber mit einem Versatz von einem Klick. D.h. das jetzt angeklickte Item wird erst beim Folgeklick ausgewertet.
Hier mal das Skript, vielleicht habt ihr ja eine zündende Idee.
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)
Opt("GuiOnEventMode", 1)
Global $gui, $hImage, $hTV, $aID_Sub[5], $ID_Table
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate('Test TreeView')
GUISetOnEvent($GUI_EVENT_CLOSE, '_end')
$hTV = GUICtrlCreateTreeView(10,10,300,350,BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, _
$TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage, "shell32.dll", 98)
_GUIImageList_AddIcon($hImage, "shell32.dll", 96)
_GUIImageList_AddIcon($hImage, "shell32.dll", 36)
_GUICtrlTreeView_SetNormalImageList($hTV, $hImage)
_GUICtrlTreeView_BeginUpdate($hTV)
$ID_Table = _GUICtrlTreeView_Add($hTV, 0, 'Table', 0, 0)
For $i = 1 To 5
$aID_Sub[$i-1] = _GUICtrlTreeView_AddChild($hTV, $ID_Table, 'Sub' & $i, 1, 1)
GUICtrlSetOnEvent($aID_Sub[$i-1], 'click_TV') ; does'nt work (because have no ID and handle instead ?)
For $j = 1 To 3
_GUICtrlTreeView_AddChild($hTV, $aID_Sub[$i-1], 'Sub_Sub' & $j, 2, 2)
Next
Next
_GUICtrlTreeView_EndUpdate($hTV)
_GUICtrlTreeView_Expand($hTV, $ID_Table)
GUISetState()
;~ GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') ; by using WM_NOTIFY are strange results, are reading with an offset of 1 click!
While 1
Sleep(100)
WEnd
Func _end()
Exit
EndFunc
Func click_TV()
ConsoleWrite(_GUICtrlTreeView_GetText($hTV, _GUICtrlTreeView_GetSelection($hTV)) & @CRLF)
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTreeview
$hWndTreeview = $hTV
If Not IsHWnd($hTV) Then $hWndTreeview = GUICtrlGetHandle($hTV)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndTreeview
Switch $iCode
Case $NM_CLICK
click_TV()
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Edit: Habs jetzt zusätzlich ins EN-Forum gestellt http://www.autoitscript.com/forum/index.php?showtopic=88587&view=findpost&p=636501